Upload
maximillian-howard
View
215
Download
0
Tags:
Embed Size (px)
Citation preview
ECE450Software 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.
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
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
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
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..*
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
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
05 - OOA 9
Example
Project
namedescriptionstartDate: date
Customercontracts ◄
Activity
namedescriptionstartDate: dateestHours: intdeliverable: string
Task
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.
05 - OOA 11
Example
Worker
name: string
SalariedWorker
salary: realvacationDays: int
HourlyWorker
hourlyWage: real
SkillLevel
level: intrateMultiplier: real
Taskassigned to
Skill
name: string
has
05 - OOA 12
Example
Time
start: dateTimeend: dateTimehours: real
Assignment
Task Workerassigned to
spent on
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
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”
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
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
05 - OOA 17
Use Case Diagrams
Time & Resource Management System(TRMS)
projectmanager
resourcemanager
worker
<<actor>>BackupSystem
ManageResources
Log Time
ManageProjects
AdministerSystem
systemadministrator
05 - OOA 18
Resource Manager Use Cases
resourcemanager
AddSkill
RemoveSkill
UpdateSkill
FindSkill
<<uses>>
<<uses>>
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>>
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
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
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
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();
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);
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);