Professional Documents
Culture Documents
[Inception
Iteration (Optional)]
Perform
Architectural
Synthesis
Define a Candidate
Architecture
Designer
Analyze Behavior
(Optional)
Refine the
Architecture
Define
Components
Design the
Database
Use-Case
Analysis
Glossary
Project Specific
Guidelines
Supplementary
Specifications
Software
Architecture
Document
Use-Case
Analysis
Use-Case Model
Mastering Object Oriented Analysis and Design with UML
Copyright 2003 Rational Software, all rights reserved
Use-Case Realization
Analysis Model
Analysis Classes
4
The system
displays a
list of
course
offerings.
The system
retrieves and
displays a list of
current course
offerings from the
course catalog
legacy database.
Review: Class
An abstraction
Describes a group of objects with common:
Properties (attributes)
Behavior (operations)
Relationships
Class Name
Semantics
Attributes
Operations
Professor
name
ProfessorId : UniqueId
create()
save()
delete()
change()
Design Model
Use Case
Use-Case Realization
Sequence Diagrams
Collaboration Diagrams
Use Case
Class Diagrams
Mastering Object Oriented Analysis and Design with UML
Copyright 2003 Rational Software, all rights reserved
10
11
Source
Code
Exec
12
<<boundary>>
System
information
System
boundary
<<control>>
Use-case
behavior
coordination
<<boundary>>
System
boundary
<<entity>>
System
information
13
Environment Dependent
14
<<control>>
Actor 1
<<boundary>>
<<boundary>>
Actor 2
<<entity>>
<<entity>>
15
RegisterForCoursesForm
CourseCatalogSystem
16
17
Architectural Analysis
Abstractions
Business-Domain
Model
Glossary
Environment Independent
Mastering Object Oriented Analysis and Design with UML
Copyright 2003 Rational Software, all rights reserved
18
<<control>>
Actor 1
<<boundary>>
<<boundary>>
Actor 2
<<entity>>
<<entity>>
19
20
CourseOffering
Schedule
Student
21
Analysis class
stereotype
Use Case
22
<<control>>
Actor 1
<<boundary>>
<<boundary>>
Actor 2
<<entity>>
<<entity>>
23
RegistrationController
Mastering Object Oriented Analysis and Design with UML
Copyright 2003 Rational Software, all rights reserved
24
Course Catalog
System
Student
Course Catalog
System
Use-Case Model
Design Model
RegisterForCoursesForm
CourseCatalogSystem
CourseOffering
Mastering Object Oriented Analysis and Design with UML
Copyright 2003 Rational Software, all rights reserved
Student
RegistrationController
25
Schedule
26
Sequence Diagrams
Use Case
Mastering Object Oriented Analysis and Design with UML
Copyright 2003 Rational Software, all rights reserved
Collaboration Diagrams
Use-Case Realization
27
28
29
Supplier Object
:Client
:Supplier
Object Lifeline
1: PerformResponsibility
Message
Focus of Control
Mastering Object Oriented Analysis and Design with UML
Copyright 2003 Rational Software, all rights reserved
30
Reflexive Message
1.1: PerformAnother
Responsibility
Hierarchical Message
Numbering
: RegisterForCoursesForm
: RegistrationController
: CourseCatalogSystem
: Schedule
: Student
: Course Catalog
1: // create schedule( )
2: // get course offerings( )
3: // get course offerings(forSemester)
Create a new
schedule
31
Supplier Object
:Client
PerformResponsibility
Message
32
:Supplier
: CourseCatalogSystem
1: // create schedule( )
7: // select 4 primary and 2 alternate offerings( )
: RegistrationController
: Student
33
Alternate Flow 1
Alternate Flow 2
Alternate Flow 3
Alternate Flow 4
Alternate Flow 5
Alternate Flow n
AF3
AF1
AF2
34
Sequence Diagrams
Show the explicit
sequence of messages
Better for visualizing
overall flow
Better for real-time
specifications and for
complex scenarios
Show relationships in
addition to interactions
Better for visualizing
patterns of collaboration
Better for visualizing all
of the effects on a given
object
Easier to use for
brainstorming sessions
35
36
Describe Responsibilities
What are responsibilities?
How do I find them?
Interaction Diagram
:Client
:Supplier
// PerformResponsibility
Class Diagram
Supplier
// PerformResponsibility
Mastering Object Oriented Analysis and Design with UML
Copyright 2003 Rational Software, all rights reserved
37
<<entity>>
Student
// get tuition()
// add schedule()
// get schedule()
// delete schedule()
// has pre-requisites()
<<entity>>
Schedule
<<boundary>>
CourseCatalogSystem
// commit()
// select alternate()
// remove offering()
// level()
// cancel()
// get cost()
// delete()
// submit()
// save()
// any conflicts?()
// create with offerings()
// update with new selections()
<<boundary>>
RegisterForCoursesForm
// display course offerings()
// display blank schedule()
// update offering selections()
38
39
40
ClassName
Attribute : Type = InitValue
Attribute : Type = InitValue
Attribute : Type = InitValue
attribute
41
Finding Attributes
Properties/characteristics of identified
classes
Information retained by identified classes
Nouns that did not become classes
Information whose value is the important thing
Information that is uniquely "owned by an
object
Information that has no behavior
42
<<entity>>
Schedule
43
<<entity>>
Course
Finding Relationships
PerformResponsibility
Collaboration
Diagram
:Client
:Supplier
Link
Client
Class
Diagram
Client
Supplier
0..*
0..*
Prime suppliers
Supplier
PerformResponsibility()
Association
44
Part
<<entity>>
Student
<<entity>>
Schedule 0..*
0..*
45
<<entity>>
0..2 CourseOffering
Association or Aggregation?
If two objects are tightly bound by a whole-part
relationship
The relationship is an aggregation.
Car
Door
0..2,4
Door
0..2,4
46
<<entity>>
Professor
instructor
<<entity>>
Department
Department Head
Role Name
<<entity>>
Course
preRequisites
47
Review: Multiplicity
Unspecified
Exactly One
Zero or More
0..*
Zero or More
One or More
1..*
0..1
Specified Range
2..4
48
2, 4..6
0..*
<<entity>>
Course
0..*
preRequisites
49
0..3
<<entity>>
CourseOffering
alternateCourses
<<entity>>
Schedule
add student to
remove student from
<<entity>>
CourseOffering
50
<<boundary>>
RegisterForCoursesForm
1
1
0..1
<<entity>>
Student
1
currentSchedule
0..1
<<entity>>
Schedule
0..*
0..*
51
primaryCourses
0..4
<<entity>>
CourseOffering
52
53
54
Analysis Mechanism(s)
Student
Persistency, Security
Schedule
Persistency, Security
CourseOffering
Course
RegistrationController
Distribution
55
56
57
RegisterFor
CoursesForm
RegisterFor
CoursesForm
Registration
Controller
Registration
Controller
Register for
Courses
Course
Offering
Course
Offering
Schedule
CloseRegistration
Form
Close
Registration
Student
Student
Course
Catalog
System
Billing
System CloseRegistration Student
Controller
Course
Offering
Schedule
58
Course
Catalog
System
Schedule
CloseRegistration
Controller
CloseRegistration
Form
Billing
System
Glossary
Design Model
Supplementary
Specification
Analysis Classes
Use-Case Model
59
60
(continued)
61
62
63
(continued)
Mastering Object Oriented Analysis and Design with UML
Copyright 2003 Rational Software, all rights reserved
64
65
66
Exercise: Review
Compare your Use-Case
Realization with the rest of the class
Do the Interaction diagrams carry out
the use-case flow of events?
Are the stereotypes behaving properly?
Is each association supported by a
link?
Does each association have multiplicity
assigned?
Have role names been assigned? Do
they accurately represent the face the
class plays in the relationship?
67
Payroll System
68