09 OOADv2000 IM06
09 OOADv2000 IM06
Use-Case
Analysis Designer
Software Architecture
Glossary Use-Case Document
Modeling Guidelines Analysis Classes
Supplementary
Specifications
• The system
• The system retrieves and
displays a displays a list of
list of current course
course offerings from the
offerings. course catalog
legacy database.
create()
Operations save()
delete()
change()
Use Case
Class Diagrams
<<boundary>>
System <<control>>
boundary Use-case
behavior
coordination
System <<entity>>
information
<<control>>
<<boundary>>
Customer
<<boundary>>
<<entity>> <<entity>>
RegisterForCoursesForm CourseCatalogSystem
Glossary
Use Case
Business-Domain Model
Architectural Analysis
Abstractions
Environment Independent
Object Oriented Analysis and Design Using the UML v2000
Copyright © 2000 Rational Software, all rights reserved 18
The Role of an Entity Class
<<boundary>>
<<control>>
<<boundary>>
Customer
<<boundary>>
<<entity>> <<entity>>
CourseOffering Schedule
Student
<<control>>
<<boundary>>
Customer
<<boundary>>
<<entity>> <<entity>>
RegistrationController
Use-Case Model
Design Model
CourseOffering RegistrationController
Object Oriented Analysis and Design Using the UML v2000
Copyright © 2000 Rational Software, all rights reserved 25
Use-Case Analysis Steps
Supplement the Use-Case Descriptions
For each use-case realization
Find Classes from Use-Case Behavior
Distribute Use-Case Behavior to Classes
For each resulting analysis class
Describe Responsibilities
Describe Attributes and Associations
Qualify Analysis Mechanisms
Unify Analysis Classes
Checkpoints
:Client :Supplier
Object Lifeline
Reflexive Message
1: PerformResponsibility
This is a
sample script.
1.1: PerformAnother
Responsibility
Message
Hierarchical Message
Numbering
Focus of Control
Object Oriented Analysis and Design Using the UML v2000
Copyright © 2000 Rational Software, all rights reserved 30
Example: Sequence Diagram
: RegisterForCoursesForm : RegistrationController : CourseCatalogSystem : Schedule : Student : Course Catalog
: Student
1: // create schedule( )
2: // get course offerings( )
A blank schedule
is displayed for the 6: // display blank schedule( )
students to select
offerings
Client Object
Link Supplier Object
:Client
:Supplier
1: PerformResponsibility
Message
: Course Catalog
1: // create schedule( )
7: // select 4 primary and 2 alternate offerings( ) 3: // get course offerings(forSemester)
: RegistrationController
: Student
AF3
AF1
AF2
Alternate Flow 4 Alternate Flow 5 Alternate Flow n
:Client :Supplier
// PerformResponsibility
Class Diagram
Supplier
// PerformResponsibility
<<boundary>>
CourseCatalogSystem
<<entity>>
Schedule
// get course offerings()
// commit()
// select alternate()
// remove offering()
// level()
// cancel()
// get cost() <<boundary>>
// delete() RegisterForCoursesForm
// submit()
// save() // display course offerings()
// any conflicts?() // display blank schedule()
// create with offerings() // update offering selections()
// update with new selections()
<<stereotype>>
ClassName
Attribute : Type = InitValue
Attribute : Type = InitValue
Attribute : Type = InitValue
Class
Diagram Client 0..* 0..* Supplier
Prime suppliers
PerformResponsibility()
Association
Car Door
1 0..2,4
When in doubt use association
Object Oriented Analysis and Design Using the UML v2000
Copyright © 2000 Rational Software, all rights reserved 46
What are Roles?
The “face” that a class plays in the
association
<<entity>> instructor
<<entity>> <<entity>>
CourseOffering Professor Department
Department Head
Role Name
<<entity>>
Course
preRequisites
primaryCourses
<<entity>> <<entity>>
Schedule CourseOffering
alternateCourses
add student to
<<entity>> <<entity>>
Schedule remove student from CourseOffering
<<boundary>> <<control>>
RegisterForCoursesForm RegistrationController
1 1
0..1
currentSchedule
0..1
<<entity>> <<entity>> primaryCourses <<entity>>
Student Schedule CourseOffering
1 0..* 0..* 0..4
Glossary
Design Model
Supplementary
Specification
Use-Case Model
Analysis Classes
(continued)
Object Oriented Analysis and Design Using the UML v2000
Copyright © 2000 Rational Software, all rights reserved 64
Exercise: Use-Case Analysis
Identify the following for a particular
use case:
The analysis classes, along with their:
• Brief descriptions
• Stereotypes
• Responsibilities
The collaborations needed to
implement the use case
Analysis class attributes and
relationships
Analysis class analysis mechanisms (continued)
Object Oriented Analysis and Design Using the UML v2000
Copyright © 2000 Rational Software, all rights reserved 65
Exercise: Use-Case Analysis
Produce the following for a
particular use case:
Use-case realization interaction
diagram for at least one of the use-
case flows of events
VOPC class diagram, containing
the analysis classes, their
stereotypes, responsibilities,
attributes, and relationships
Analysis class to analysis
mechanism map