DEV475 06 UCAnalysis
DEV475 06 UCAnalysis
DEV475 06 UCAnalysis
Use-Case
Designer Analysis
Analyze Behavior
(Optional)
Refine the
Architecture
Use-Case
Supplementary
Specifications Analysis
Analysis Model
create()
Operations save()
delete()
change()
Collaboration Diagrams
Sequence Diagrams
Use Case
Class Diagrams
Use-Case Analysis
Mastering Object Oriented Analysis and Design with UML
Copyright © 2003 Rational Software, all rights reserved 11
Find Classes from Use-Case Behavior
The complete behavior of a use case has to
be distributed to analysis classes
<<boundary>> <<entity>>
System System
boundary information
<<control>> <<boundary>>
System
Use-case
boundary
behavior
coordination <<entity>>
System
information
Mastering Object Oriented Analysis and Design with UML
Copyright © 2003 Rational Software, all rights reserved 13
What Is a Boundary Class?
Intermediates between the interface and
something outside the system
Several Types
User interface classes
System interface classes
Device interface classes
One boundary class per actor/use-case pair
Analysis class
stereotype
<<control>>
<<boundary>> <<boundary>>
Actor 1 Actor 2
<<entity>> <<entity>>
RegisterForCoursesForm CourseCatalogSystem
Analysis
class
stereotype
Business-Domain
Use Case Model
Architectural Analysis
Abstractions Glossary
Environment Independent
Mastering Object Oriented Analysis and Design with UML
Copyright © 2003 Rational Software, all rights reserved 18
The Role of an Entity Class
<<control>>
<<boundary>> <<boundary>>
Actor 1 Actor 2
<<entity>> <<entity>>
CourseOffering Schedule
Student
<<control>>
<<boundary>> <<boundary>>
Actor 1 Actor 2
<<entity>> <<entity>>
RegistrationController
Mastering Object Oriented Analysis and Design with UML
Copyright © 2003 Rational Software, all rights reserved 24
Example: Summary: Analysis Classes
Use-Case Model
Design Model
CourseOffering RegistrationController
Mastering Object Oriented Analysis and Design with UML
Copyright © 2003 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
1.1: PerformAnother
Responsibility
Message
Hierarchical Message
Focus of Control Numbering
1: // create schedule( )
2: // get course offerings( )
A blank schedule
6: // display blank schedule( )
is displayed for the
students to select
offerings
Client Object
Link Supplier Object
:Client
:Supplier
PerformResponsibility
Message
: Course Catalog
1: // create schedule( )
3: // get course offerings(forSemester)
7: // select 4 primary and 2 alternate offerings( )
: RegistrationController
: Student
AF3
AF1
AF2
Alternate Flow 4 Alternate Flow 5 Alternate Flow n
:Client :Supplier
// PerformResponsibility
Class Diagram
Supplier
// PerformResponsibility
<<entity>> <<control>>
Student RegistrationController
<<entity>>
Schedule <<boundary>>
CourseCatalogSystem
// commit()
// select alternate() // get course offerings()
// remove offering()
// level()
// cancel()
// get cost()
// delete() <<boundary>>
// submit() RegisterForCoursesForm
// save()
// any conflicts?() // display course offerings()
// create with offerings() // display blank schedule()
// update with new selections() // update offering selections()
Class
Diagram Client 0..* 0..* Supplier
Prime suppliers
PerformResponsibility()
Association
1 0..2,4
1 0..2,4
Role Name
<<entity>>
Course
preRequisites
Zero or More *
<<entity>> <<entity>>
0..* 1
CourseOffering Course
0..*
preRequisites 0..3
primaryCourses
<<entity>> <<entity>>
Schedule CourseOffering
alternateCourses
<<boundary>> <<control>>
RegisterForCoursesForm RegistrationController
1 1
0..1
currentSchedule
0..1
<<entity>> <<entity>> <<entity>>
primaryCourses
Student Schedule CourseOffering
1 0..* 0..* 0..4
Student Student
Register for
Courses Course
Offering Course
Schedule Offering
Course
CloseRegistration Course
Catalog Schedule
Form Catalog
System System
Close CloseRegistration
Billing
Registration Controller
System CloseRegistration Student
Controller
Billing
Course CloseRegistration
System
Offering Form
Schedule
Mastering Object Oriented Analysis and Design with UML
Copyright © 2003 Rational Software, all rights reserved 58
Evaluate Your Results
Glossary
Design Model
Supplementary
Specification
(continued)
Mastering Object Oriented Analysis and Design with UML
Copyright © 2003 Rational Software, all rights reserved 64
Exercise: Use-Case Analysis (cont.)
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)
Mastering Object Oriented Analysis and Design with UML
Copyright © 2003 Rational Software, all rights reserved 65
Exercise: Use-Case Analysis (cont.)
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