ece450 software engineering ii lecture 4– object oriented analysis part 2

25
ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

Upload: maximillian-howard

Post on 30-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

ECE450Software Engineering II

Lecture 4– Object Oriented Analysis part 2

Page 2: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 2

Example• We are asked to build a system for keeping track

of the time our workers spend working on customer projects.

• We divide projects into activities, and the activities into tasks. A task is assigned to a worker, who could be a salaried worker or an hourly worker.

• Each task requires a certain skill, and resources have various skills at various level of expertise.

Page 3: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 3

Steps

• Analyze the written requirements– Extract nouns: make them classes– Extract verbs: make them associations– Draw the OOA UML class diagrams– Determine attributes– Draw object diagrams to clarify class diagrams

• Determine the system’s use cases– Identify Actors– Identify use case– Relate use cases

• Draw sequence diagrams– One per use case– Use to assign responsibilities to classes

• Add methods to OOA classes

Page 4: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 4

Example• We are asked to build a system for keeping track

of the time our workers spend working on customer projects.

Worker

Customer

Project

Time

assigned to

againstspends *

1*

*

*

**

1 contracts

Page 5: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 5

Example• We divide projects into activities, and the

activities into tasks. A task is assigned to a worker, who could be a salaried worker or an hourly worker.

Project

Worker

SalariedWorker HourlyWorker

Activity1..*

Task

1..**

1Assignment

Timespent on ◄

assigned to

Page 6: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 6

Example• Each task requires a certain skill, and workers

have various skills at various level of expertise.

Worker

Skill

Task

requires ◄has

SkillLevel

1..*

* *

1..*

Page 7: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 7

Steps

• Analyze the written requirements– Extract nouns: make them classes– Extract verbs: make them associations– Draw the OOA UML class diagrams– Determine attributes– Draw object diagrams to clarify class diagrams

• Determine the system’s use cases– Identify Actors– Identify use case– Relate use cases

• Draw sequence diagrams– One per use case– Use to assign responsibilities to classes

• Add methods to OOA classes

Page 8: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 8

Example

Customer

companyNameprimeContactaddressphonefax

Projectcontracts

N.B.• Project has no attribute in Customer

• association is enough• no database id for Customer shown

• in an OOA, only include an id if visible to users• may include such things during database design or OOD

Page 9: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 9

Example

Project

namedescriptionstartDate: date

Customercontracts ◄

Activity

namedescriptionstartDate: dateestHours: intdeliverable: string

Task

Page 10: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 10

Example

Task

descriptionstartDate: dateestHours: int

Activity

Skill

Worker

requires

assigned to

has

Constraint: A task may only be assigned to a worker whohas the required skill.

Page 11: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 11

Example

Worker

name: string

SalariedWorker

salary: realvacationDays: int

HourlyWorker

hourlyWage: real

SkillLevel

level: intrateMultiplier: real

Taskassigned to

Skill

name: string

has

Page 12: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 12

Example

Time

start: dateTimeend: dateTimehours: real

Assignment

Task Workerassigned to

spent on

Page 13: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 13

Steps

• Analyze the written requirements– Extract nouns: make them classes– Extract verbs: make them associations– Draw the OOA UML class diagrams– Determine attributes– Draw object diagrams to clarify class diagrams

• Determine the system’s use cases– Identify Actors– Identify use case– Relate use cases

• Draw sequence diagrams– One per use case– Use to assign responsibilities to classes

• Add methods to OOA classes

Page 14: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 14

Object Diagrams

:Time

start: Jan.23, 2002, 8:00end: Jan.23, 2002, 18:00hours: 4.2

:Assignment

:Taskdescription: “develop class diagrams”

:Workername: “Matt”

Page 15: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 15

Steps

• Analyze the written requirements– Extract nouns: make them classes– Extract verbs: make them associations– Draw the OOA UML class diagrams– Draw object diagrams to clarify class diagrams– Determine attributes

• Determine the system’s use cases– Identify Actors– Identify use case– Relate use cases

• Draw sequence diagrams– One per use case– Use to assign responsibilities to classes

• Add methods to OOA classes

Page 16: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 16

Use Cases

• Actors:– Represent users of a system

• human users• other systems

• Use cases– Represent functionality or services

provided by a system to its users

Page 17: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 17

Use Case Diagrams

Time & Resource Management System(TRMS)

projectmanager

resourcemanager

worker

<<actor>>BackupSystem

ManageResources

Log Time

ManageProjects

AdministerSystem

systemadministrator

Page 18: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 18

Resource Manager Use Cases

resourcemanager

AddSkill

RemoveSkill

UpdateSkill

FindSkill

<<uses>>

<<uses>>

Page 19: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 19

More Resource Manager Use Cases

resourcemanager

AddWorker

RemoveWorker

UpdateWorker

FindWorker

FindSkill

<<uses>>

Assign Skillto Worker

Unassign Skillfrom Worker

<<extends>><<extends>>

<<uses>>

<<uses>>

Page 20: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 20

Steps

• Analyze the written requirements– Extract nouns: make them classes– Extract verbs: make them associations– Draw the OOA UML class diagrams– Draw object diagrams to clarify class diagrams– Determine attributes

• Determine the system’s use cases– Identify Actors– Identify use case– Relate use cases

• Draw sequence diagrams– One per use case– Use to assign responsibilities to classes

• Add methods to OOA classes

Page 21: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 21

Sequence Diagram – Assign Skill to Worker Use Case

resourcemanager

Res. Mgr. Win: UI :Worker :Skill :SkillLevel

find worker

find skill

assign skillto worker

find workerby name

find skill by name

[worker does not currently have skill]assign skill to worker

Page 22: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 22

Steps

• Analyze the written requirements– Extract nouns: make them classes– Extract verbs: make them associations– Draw the OOA UML class diagrams– Draw object diagrams to clarify class diagrams– Determine attributes

• Determine the system’s use cases– Identify Actors– Identify use case– Relate use cases

• Draw sequence diagrams– One per use case– Use to assign responsibilities to classes

• Add methods to OOA classes

Page 23: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 23

Add Methods

• Read sequence diagrams to identify necessary methods

Worker

name: string

+ static Worker findWorker(String name);+ static list of Workers getWorkers();

Page 24: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 24

In Design

• Bring methods closer to implementation

Worker

name: string

+ static Worker findWorker(String name);+ static int getNWorkers();+ static Worker getWorker(int);

Page 25: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2

05 - OOA 25

In Design

• Bring methods closer to implementation

Worker

name: string

+ static Worker findWorker(String name);

WorkListInt getNumListElements();String getListElement(int n);

ListModelint getNumListElements();String getListElement(int n);