ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2.
-
Upload
maximillian-howard -
Category
Documents
-
view
216 -
download
0
Transcript of ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2.
![Page 1: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/1.jpg)
ECE450Software Engineering II
Lecture 4– Object Oriented Analysis part 2
![Page 2: ECE450 Software Engineering II Lecture 4– Object Oriented Analysis part 2.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/2.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/3.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/4.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/5.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/6.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/7.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/8.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/9.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/10.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/11.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/12.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/13.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/14.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/15.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/16.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/17.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/18.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/19.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/20.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/21.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/22.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/23.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/24.jpg)
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.](https://reader031.fdocuments.net/reader031/viewer/2022032708/56649e885503460f94b8d3cf/html5/thumbnails/25.jpg)
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);