Ece 355 software engineering
Download
1 / 35

ECE 355: Software Engineering - PowerPoint PPT Presentation


  • 135 Views
  • Updated On :

ECE 355: Software Engineering. Bridge Material Object Oriented Design. Overview. What is OO Analysis & Design? Vending Machine Example Analysis Use case modeling Domain modeling Behavioral modeling Design Interaction diagrams Refined class diagram Concurrency and scheduling

Related searches for ECE 355: Software Engineering

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'ECE 355: Software Engineering' - dareh


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Ece 355 software engineering l.jpg

ECE 355: Software Engineering

Bridge Material

Object Oriented Design


Overview l.jpg
Overview

  • What is OO Analysis & Design?

  • Vending Machine Example

    • Analysis

      • Use case modeling

      • Domain modeling

      • Behavioral modeling

    • Design

      • Interaction diagrams

      • Refined class diagram

      • Concurrency and scheduling

  • Summary and Further Reading


Oo analysis design l.jpg
OO Analysis & Design

  • Analysis

    • Domain level - modeling “real world” objects

    • Really: part of requirements engineering

      • requirements development = elicitation + analysis + specification

    • Many domain objects will not make into the design

    • Domain structures usually make poor design structures

  • Design

    • Assigning responsibilities to object

    • Taking “illities” (maintainability, reusability, etc.) and portability into account

    • Devising mechanisms


Oo analysis design4 l.jpg
OO Analysis & Design

  • Many methods (OMT, Booch, Unified Process, etc.)

  • Similar goals and techniques


Oo analysis activities l.jpg
OO Analysis Activities

  • Use case analysis

    • Mostly focused on writing text - one overview context diagram is often enough

    • Use cases are just a part of functional requirements (only the interactive ones)

  • Structural analysis – domain modeling

    • Finding the “real-world” objects involved in the use cases and creating class diagrams to represent them

  • Behavioral analysis

    • Creating activity diagrams and sequence diagrams to capture use case details

      • Activity diagrams for business workflow

      • Sequence diagrams for reactive behavior (also with timing)

    • Possibly creating state charts to capture external reactive behavior of the system and other domain objects


Oo design activities l.jpg
OO Design Activities

  • Creating interaction diagrams and distributing responsibilities

    • Devising mechanisms and introducing design objects

    • Creating sequence diagrams

    • Creating collaboration diagrams

  • Creating refined class diagrams

  • Deciding on concurrency and scheduling model

  • Possibly modeling detailed behavior of design objects using state charts


Overview7 l.jpg
Overview

  • What is OO Analysis & Design?

  • Vending Machine Example

    • Analysis

      • Use case modeling

      • Domain modeling

      • Behavioral modeling

    • Design

      • Interaction diagrams

      • Refined class diagram

      • Concurrency and scheduling

  • Summary and Further Reading


Use case diagram as a context diagram l.jpg
Use Case Diagram As a Context Diagram

Vending Machine

Use Case 1

(Buy a drink)

Customer


Use case diagram as a context diagram9 l.jpg
Use Case Diagram As a Context Diagram

Vending Machine

Use Case 1

(Buy a drink)

Customer

Use Case 2

(Restock)

Agent


Different forms of use cases l.jpg
Different Forms of Use Cases

  • “Casual version”

    • User story

    • A narrative

  • Fully dressed

    • Formal sections

      • Preconditions

      • Main scenario

      • Exception list

  • See “Writing effective use cases” by Alistair Cockburn, 2000


Use case 1 casual version l.jpg
Use Case 1 (“Casual Version”)

Consider a simplified vending machine, which is used to dispense soft drinks. The vending machine consists of a coin slot for inserting coins, a return tray for returning the customer's money and three buttons used to select Pepsi (tm), Coke (tm) or Dr. Pepper (tm). If the customer inserts coins and does not press a button within one minute, the coins will be returned automatically (no coin-return lever). If the customer selects a beverage which is out-of-stock (none left), the coins will also be returned. This vending machine does not provide change - it is up to the customer to insert only enough money to purchase a drink. If sufficient coins are inserted and a button with available beverages is pressed, the appropriate drink is dispensed, the corresponding button is illuminated for five seconds, and the coin slot moves the coins to the general storage area (i.e. the purchase has finished).


Use case 1 fully dressed version l.jpg
Use Case 1 (“Fully Dressed” Version)

Primary actor: Customer

Goal in context: Customer buys a drink

Level: User level

Stakeholders and Interests:

Customer : wants to buy a drink

Vendor: wants to get paid for any goods dispensed

Preconditions: Machine is ready & awaiting interaction

Minimum guarantee: Customer gets his coins back if no drink dispensed

Success guarantees:

Customer has the drink; vending machine has the money for the drink; Vending machine provides no change

Trigger: Customer starts interaction with the machine


Use case 1 cont d l.jpg
Use Case 1 (Cont’d)

Main success scenario:

  • Customer inserts sufficient money into the coin slot

  • Customer pushes one of the three select buttons

  • The selected drink is dispensed.

  • The pushed select button lights up for 5 seconds.

  • Coins are taken by the machine.

    Extensions

    1a. Customer inserts no or insufficient money. Pushing a selection button has no effect.

    2a. Customer fails to push a button within 1 minute from insertion of the last coin. Coins are returned.

    2b. Customer selects beverage out of stock. Coins are returned.

    Frequency of use: several per day

    Priority: 1

    Implementation status: …

    Open issues: …


Overview14 l.jpg
Overview

  • What is OO Analysis & Design?

  • Vending Machine Example

    • Analysis

      • Use case modeling

      • Domain modeling

      • Behavioral modeling

    • Design

      • Interaction diagrams

      • Refined class diagram

      • Concurrency and scheduling

  • Summary and Further Reading


Noun analysis l.jpg
Noun analysis

Consider a simplified vending machine, which is used to dispense soft drinks. The vending machine consists of a coin slot for inserting coins, a return tray for returning the customer's money and three buttons used to select Pepsi (tm), Coke (tm) or Dr. Pepper (tm). If the customer inserts coins and does not press a button within one minute, the coins will be returned automatically (no coin-return lever). If the customer selects a beverage which is out-of-stock (none left), the coins will also be returned. This vending machine does not provide change - it is up to the customer to insert only enough money to purchase a drink. If sufficient coins are inserted and a button with available beverages is pressed, the appropriate drink is dispensed, the corresponding button is illuminated for five seconds, and the coin slot moves the coins to the general storage area (i.e. the purchase has finished).


Domain model initial class diagram l.jpg
Domain Model - Initial Class Diagram

Inserts

coins

into 

Contains

CoinSlot

amount

1

0..*

1

Contains

Drink

Shelf

3

1

1

Vending

Machine

1

Contains

1

Customer

1

1

Button

id

litUp

Contains

Pushes

3

Contains

1

ReturnTray


Overview17 l.jpg
Overview

  • What is OO Analysis & Design?

  • Vending Machine Example

    • Analysis

      • Use case modeling

      • Domain modeling

      • Behavioral modeling

    • Design

      • Interaction diagrams

      • Refined class diagram

      • Concurrency and scheduling

  • Summary and Further Reading


Sequence diagram for use case 1 main scenario extensions 1a 2b l.jpg
Sequence Diagram for Use Case 1(Main Scenario + Extensions 1a & 2b)

customer

machine

insertMoney(x)

insertMoney(y)

push(z)

m:=checkAmount(x+y)

a:=checkAvailability(z)

[!a] return()

[m&a]

dispenseDrink()

lightUp()

5 sec

moveCoins()

lightDown()


Activity diagram for use case 1 main scenario extension 1a l.jpg
Activity Diagram for Use Case 1(Main Scenario + Extension 1a)

Customer

VendingMachine

Insert money

Select drink

money

Sufficient

money?

no

yes

Dispense drink

drink


State chart for vending machine full behavior l.jpg
State Chart for Vending Machine(Full behavior)

Insert money (x)

Push button Z

[no drink Z]/

return money

after (60 seconds)/

return money

Ready

Push button Z [sufficient

money & drink Z in stock]

after (5 seconds)/light down

Dispensing

Entry/

dispense drink,

light up button,

take money


Hierarchical state chart l.jpg
Hierarchical State Chart

Insert money (x)

Coin slot

has money

Coin slot

empty

after (60 seconds)/return money

Push button Z [sufficient

money & drink Z in stock]

Push button Z [no drink Z]/return money

after (5 seconds)

Dispensing

Entry/

dispense drink,

light up button,

take money


Overview22 l.jpg
Overview

  • What is OO Analysis & Design?

  • Vending Machine Example

    • Analysis

      • Use case modeling

      • Domain modeling

      • Behavioral modeling

    • Design

      • Interaction diagrams

      • Refined class diagram

      • Concurrency and scheduling

  • Summary and Further Reading


Sequence diagram l.jpg

insertMoney(x)

insertMoney(y)

push()

Sequence Diagram

customer

coinSlot

button1

controller

shelfRel1

shelfSens1

request(1)

close()

m:=checkAmount()

getTotal()

a:=checkAvailability()

isEmpty()

[!a] return()

release()

[m&a]

lightUp()

moveCoins()

5 sec

open()

lightDown()


Extension 2a l.jpg

insertMoney(x)

insertMoney(x)

insertMoney(y)

insertMoney(y)

push()

Extension 2a

customer

coinSlot

button1

controller

timer

set(60)

set(60)

60 sec

checkTime()

checkTime()

timeOut()

return()

set(60)

set(60)

< 60 sec

request(1)

close()

reset()


Collaboration diagram l.jpg
Collaboration Diagram

2: push()

button1

2.1: request(1)

timer1

2.1.5 [m&a]: lightUp()

2a: timeOut()

2.1.1: close()

1.1: set(60)

3.2.2: lightDown()

2.1.2.1: getTotal()

2.1.1.1: reset()

2.1.4a [!a]: return()

2.1.4 [m&a]: release()

2.1.7 [m&a]: moveCoins()

shelfRel

3.1.1: open()

coinSlot

controller

2.1.3.1: isEmpty()

1: insertMoney(x)

«self»

2.1.2: m:=checkAmount()

shelfSens

2.1.6: set(5)

2.1.3: a:=checkAvailability()

3: timeOut()

timer2


Additional design technique crc cards l.jpg
Additional Design Technique: CRC Cards

  • CRC (class-responsibility-collaborator) cards

    • Index cards

    • Written in a design session

    • Focus on assigning responsibilities

    • Can be used in addition to interaction diagrams

    • Pioneered by ward Cunningham & Kent beck


Overview27 l.jpg
Overview

  • What is OO Analysis & Design?

  • Vending Machine Example

    • Analysis

      • Use case modeling

      • Domain modeling

      • Behavioral modeling

    • Design

      • Interaction diagrams

      • Refined class diagram

      • Concurrency and scheduling

  • Summary and Further Reading


Refined class diagram l.jpg
Refined Class Diagram

Timer

set()

reset()

checkTime()

Signals

timeOut()

CoinSlot

amount: Integer

opened: Bool

insertMoney(Int)

close()

open()

getTotal()

return()

moveCoins()

1

ShelfSens

empty: Bool

isEmpty()

3

1

1

1

Controller

price: Integer

request(Integer)

checkAmount()

checkAvailability()

1

1

Button

id: Integer

litUp: Bool

push()

lightUp()

lightDown()

1

1

ShelfRel

release()

3

3


Overview29 l.jpg
Overview

  • What is OO Analysis & Design?

  • Vending Machine Example

    • Analysis

      • Use case modeling

      • Domain modeling

      • Behavioral modeling

    • Design

      • Interaction diagrams

      • Refined class diagram

      • Concurrency and scheduling

  • Summary and Further Reading


Single thread with passive objects l.jpg
Single Thread With Passive Objects

  • Requires a top level control loop

    • Read input, compute, write output

  • Calls to procedures performing the processing steps need to be scheduled manually

  • Simple: no synchronization of concurrent threads or processes necessary

  • May waste computing resources

    • “Polling style”


Passive objects design with a main control loop l.jpg
Passive objects design with a main control loop

// main control loop

while(true)

{

If (coinSlotSensor.coinInserted()) coinSlot.insertMoney(coinSlotSensor.amount()) ;

If (buttonSensor1.pressed()) button1.push();

If (buttonSensor2.pressed()) button2.push();

If (buttonSensor3.pressed()) button3.push();

timer1.checkTime();

timer2.checkTime();

}


Active objects l.jpg
Active Objects

  • Define a statechart for each object

  • Communication through signals

    • E.g., SDL: asynchronous send, synchronous receive

    • Synchronous communication requires sending a request and waiting for the response

    • Avoid variables shared between processes

  • No direct support by most programming languages

    • Need a framework/library

  • Better utilization of computing resources

  • Automatic scheduling


Overview33 l.jpg
Overview

  • What is OO Analysis & Design?

  • Vending Machine Example

    • Analysis

      • Use case modeling

      • Domain modeling

      • Behavioral modeling

    • Design

      • Interaction diagrams

      • Refined class diagram

      • Concurrency and scheduling

  • Summary and Further Reading


Summary l.jpg
Summary

  • Analysis

    • Use case analysis - writing user stories

    • Structural analysis/domain modeling - finding “real-world” objects

    • Behavioral analysis

      • Creating activity diagrams and sequence diagrams to capture use case details

      • Creating state charts to capture external reactive behavior of the system and other domain objects

  • Design

    • Creating interaction diagrams and distributing responsibilities

    • Creating refined class diagrams

    • Deciding on concurrency and scheduling model

    • Possibly modeling detailed behavior of design objects using state charts


Further reading l.jpg
Further Reading

  • Recommended OO Analysis & Design book:

    • Applying UML & Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process” by Craig Larman, 2nd edition, Prentice Hall, 2002


ad