صفحه 1:
Analysis and Design
with UML
صفحه 2:
What is the UML?
UML stands for Unified Modeling Language
The UML combines the best of the best from
Data Modeling concepts (Entity Relationship Diagrams)
Business Modeling (work flow)
Object Modeling
وستاع ه81 خعمهمهوع
The UML is the standard language for visualizing,
specifying, constructing, and documenting the
artifacts of a software-intensive system
معط اجمطوتم بط رععععم»هس اج ات 0عوته عظ صهه ۲۲
development life cycle, and across different
implementation technologies
صفحه 3:
UML Concepts
= The UML may be used to:
Display the boundary of a system & its major
functions using use cases and actors
Cee me Cee ا ane
diagrams
Represent a static structure of a system using
class diagrams
Model the behavior of objects with state
transition diagrams
Reveal the physical implementation architecture
with component & deployment diagrams
Extend your functionality with stereotypes
5501000
صفحه 4:
Putting the UML to Work
"= The ESU University wants to computerize their
registration system
- The Registrar sets up the curriculum for a semester
0 ل ter
1 ا 2 meet cet)
Prats
1۳ tse oe Rr onCccmms Ce Tint,
| Tite nC eta re ich B Crary
semester
- Students may use the system to add/drop courses for a
period of time after registration
- Professors use the system to receive their course offering
Bey
io oa cect tae oe ا
Po Nt even etic tity
Cees cette tor tee
oan ©
صفحه 5:
Actors
An actor is someone or some thing that must
interact with the system under development
i
a 8 9
مه
Crome
10 ett ee Co eee 1
صفحه 6:
Use Cases
= A use case is a pattern of behavior the
0
- Each use case is a sequence of related
transactions performed by an actor and the
system in a dialogue
= Actors are examined to determine their
needs
- Registrar -- maintain the curriculum
- Professor -- pea roster
Cent تأستهممد -- غصع4ك4
RG) 0 وصنلانط - ig System
Co) Mt ene ea Coton as 2
صفحه 7:
Documenting Use Cases
= A flow of events document is created for each
use cases
- Written from an actor point of view
Lee CMMI ACC Cc Ul Cm Rem AIT
Pe K amma ات
۰ ری contents
كله اسه كماد ععقه مكنا عط ه110
- Normal flow of events
Seow CeCe mY)
- Exceptional flow of events
صفحه 8:
Maintain Curriculum
Flow of Events
This use case begins when the Registrar logs onto the
Registration System and enters his/her password. The
system verifies that the password is valid (E-1) and prompts
the Registrar to select the current semester or a future
semester (E-2). The Registrar enters the desired semester.
۱ نعل عط غععاعد ما مدو 01م عط عأمرصسممم تصع
activity: ADD, DELETE, REVIEW, or QUIT.
۱ ingeo Cc Be) er Cac Eee GCE Monterey iGo
is performed.
If the activity selected is DELETE, the S-2: Delete a Course
subflow is performed.
If the activity selected is REVIEW, the S-3: Review
ا قلاف Cpe Ce Tuc aT
If the activity selected is QUIT, the use case ends.
10 ett ee Co eee 1
صفحه 9:
Use Case Diagram
Use case diagrams are created to visualize
the relationships between actors and use
cases
= 7
1 Dies
ere
مه
5 10 ett ee Co eee 1
صفحه 10:
Uses and Extends Use Case
Relationships
As the use cases are documented, other use
case relationships may be discovered.
SGC wao iam eMC aus m Atle)
COON aBC ecm Cor Coy
۳ ۱۱ e ل ا CNC el
errant
Cees cette tor tee
صفحه 11:
Use Case Realizations
The use case diagram presents an outside
view of the system
= Interaction diagrams describe how use cases
are realized as interactions among societies
of objects
= Two types of interaction diagrams
- Sequence diagrams
- Collaboration diagrams
02 مد لسع رو 99 6 لوط
صفحه 12:
Sequence Diagram
A sequence diagram displays object
interactions arranged in a time sequence
BS
55 تیه ae [01 sata
aera
9: مه
۲ LO)
اجه سرصی 9
جسسصتتت |
10 ett ee Co eee 1
صفحه 13:
Collaboration Diagram
(can ا ا ال ال ا ال ا ا
interactions organized around objects and
ل ما ععاصنا تما
صفحه 14:
Class Diagrams
= A class diagram shows the existence of
classes and their relationships in the logical
view of a system
= UML modeling elements in class diagrams
- Classes and their structure and behavior
- Association, aggregation, dependency, and
inheritance relationships
- Multiplicity and navigation indicators
- Role names
۳ موق
صفحه 15:
Classes
A class is a collection of objects with common
structure, common behavior, common
relationships and common semantics
= Classes are found by examining the objects in
sequence and collaboration diagram
۱ SCRE ال Mista accy
compartments
™ Classes should be named using the vocabulary
of the domain
- Naming standards should be created
- e.g., all classes are singular nouns starting with a
۳:۱۱ ات
صفحه 16:
ماه
eee
(eect
Classes
Orfeo
5 0ك ered
صفحه 17:
= The behavior of a class is represented by its
Operations
operations
= Operations may be found by examining
Se
| enn
interaction diagrams
eae [۱۳۳
em سح
تست
صفحه 18:
Le WC ور aK Mm Ly
Attributes
attributes
= Attributes may be found by examining class
definitions, the problem requirements, and
by applying domain knowledge
سم
اف هاگ م9
Each course offering
has a number, locations)
and time
02 مد لسع رو 99 6 لوط <a
صفحه 19:
ماه
|
[07
9
aa
بت ۳1
fr 00
سس
eee eee
poe =
۳
0
5 0ك ered 1
صفحه 20:
Relationships
1۳12 ج ۳۳۵۲۱06 وورتجاوطمنا ۵۵0۵ ۲
communication between objects
= Sequence and/or collaboration diagrams are
examined to determine what links between
ا ا ل ا للا مک
behavior -- if two objects need to “talk” there
must be a link between them
= Three types of relationships are:
۳۳۳۰۲ رای ری
- Aggregation
- Dependency
02 مد لسع رو 99 6 لوط
صفحه 21:
Relationships
PURO C EC SCE Be neta nn econ ase ones Cec
Seer CR EOE e Ete nnn ۳/۳ ۳/۹
| CSE ee SCO ON Roce CRE Co tty
PER AOR CTC Bc a rd
- An aggregation is shown as a line connecting the related classes with a diamond
0 gear
A dependency relationship is a weaker form of relationship showing a
امد عممل احعناه مطا معط بمنلووده د فصه غصعناه د جمعماوط ونطعدهتامامر
] semantic knowledge of the supplier
A dependency is shown as a dashed line pointing from the client to the
supplier
9 0 ee or er 1
صفحه 22:
Finding Relationships
= Relationships are discovered by examining
interaction diagrams
- If two objects must “talk” there must be a
pathway for communication
BegarsmnkD oxen
3۳ 4
—
ایح - =
Coen oe ete
صفحه 23:
Relationships
ماه
]
000000 |
۳1
ees)
i
Course 7
1
erecta)
55 10 ett ee Co eee 1
صفحه 24:
Multiplicity and Navigation
Multiplicity defines how many objects
participate in a relationships
- Multiplicity is the number of instances of one class
related to ONE instance of the other class
- For each association and aggregation, there are
two multiplicity decisions to make: one for each
end of the relationship
Although associations and aggregations are
bi-directional by default, it is often desirable
to restrict navigation to one direction
Lee bts rat wea الت ال
added to indicate the direction of the
navigation
عت مم
صفحه 25:
Multiplicity and Navigation
4
00
ماه
۳۹
id)
103
0
یوت
9
٩
0 ee or er
سس
یه
سح
صفحه 26:
Inheritance
د «هعساعط عوتحاعصهناهام 2 كذ معصماتمطص1
superclass and its subclasses
There are two ways to find inheritance: =
لا ”©
Specialization -
Common attributes, operations, and/or =
relationships are shown at the highest
applicable level in the hierarchy
Cees cette tor tee
صفحه 27:
Inheritance
ماه
]
000000
Diora د
Cee aa
oe e—__[e =
3
۱۳" 0
09 7
1
erecta)
55 10 ett ee Co eee 1
صفحه 28:
The State of an Object
= A state transition diagram shows
- The life history of a given class
- The events that cause a transition from one state
16 تعطامسة
0 ا ال ا ل ام Til Cd
= State transition diagrams are created for
objects with significant dynamic behavior
صفحه 29:
State Transition Diagram
00 > سد ]سيد لج
_ 0
2 سح 52
10 ett ee Co eee
صفحه 30:
The Physical World
= Component diagrams illustrate the
(۱ ۱ 22012
software components
= A component may be
- A-source code component
- Arun time components or
- An executable component
151111
oo)
صفحه 31:
Component Diagram
0 ee or er 1
صفحه 32:
Deploying the System
= The deployment diagram shows the
configuration of run-time processing
elements and the software processes living
on them
= The deployment diagram visualizes the
distribution of components across the
Conca tahoe
or & 10 ett ee Co eee 1
صفحه 33:
Deployment Diagram
هه
""
1
cere
03
0 ee or er
صفحه 34:
Extending the UML
Stereotypes can be used to extend the UML
notational elements
= Stereotypes may be used to classify and
extend associations, inheritance
relationships, classes, and components
= Examples:
- Class stereotypes: boundary, control, entity,
utility, exception
- Inheritance stereotypes: uses and extends
- Component stereotypes: subsystem
02 مد لسع رو 99 6 لوط
جم عم
Analysis and Design
with UML
Page 1
Copyright © 1997 by Rational Software Corporation
What is the UML?
UML stands for Unified Modeling Language
The UML combines the best of the best from
–
Data Modeling concepts (Entity Relationship Diagrams)
–
Business Modeling (work flow)
–
Object Modeling
–
Component Modeling
The UML is the standard language for visualizing,
specifying, constructing, and documenting the
artifacts of a software-intensive system
It can be used with all processes, throughout the
development life cycle, and across different
implementation technologies
Page 2
Copyright © 1997 by Rational Software Corporation
UML Concepts
Page 3
The UML may be used to:
–
Display the boundary of a system & its major
functions using use cases and actors
–
Illustrate use case realizations with interaction
diagrams
–
Represent a static structure of a system using
class diagrams
–
Model the behavior of objects with state
transition diagrams
–
Reveal the physical implementation architecture
with component & deployment diagrams
–
Extend your functionality with stereotypes
Copyright © 1997 by Rational Software Corporation
Putting the UML to Work
The ESU University wants to computerize their
registration system
Page 4
–
The Registrar sets up the curriculum for a semester
• One course may have multiple course offerings
–
Students select 4 primary courses and 2 alternate
courses
–
Once a student registers for a semester, the billing
system is notified so the student may be billed for the
semester
–
Students may use the system to add/drop courses for a
period of time after registration
–
Professors use the system to receive their course offering
rosters
–
Users of the registration system are assigned passwords
which are used at logon validation
Copyright © 1997 by Rational Software Corporation
Actors
An actor is someone or some thing that must
interact with the system under development
Registrar
Professor
Student
Billing System
Page 5
Copyright © 1997 by Rational Software Corporation
Use Cases
A use case is a pattern of behavior the
system exhibits
–
Each use case is a sequence of related
transactions performed by an actor and the
system in a dialogue
Actors are examined to determine their
needs
–
Registrar -- maintain the curriculum
–
Professor -- request roster
–
Student -- maintain schedule
Billing System -- receive billing information from
registration Request Course Roster
Maintain Curriculum
Maintain Schedule
–
Page 6
Copyright © 1997 by Rational Software Corporation
Documenting Use Cases
A flow of events document is created for each
use cases
–
Written from an actor point of view
Details what the system must provide to the
actor when the use cases is executed
Typical contents
Page 7
–
How the use case starts and ends
–
Normal flow of events
–
Alternate flow of events
–
Exceptional flow of events
Copyright © 1997 by Rational Software Corporation
Maintain Curriculum
Flow of Events
This use case begins when the Registrar logs onto the
Registration System and enters his/her password. The
system verifies that the password is valid (E-1) and prompts
the Registrar to select the current semester or a future
semester (E-2). The Registrar enters the desired semester.
The system prompts the professor to select the desired
activity: ADD, DELETE, REVIEW, or QUIT.
If the activity selected is ADD, the S-1: Add a Course subflow
is performed.
If the activity selected is DELETE, the S-2: Delete a Course
subflow is performed.
If the activity selected is REVIEW, the S-3: Review
Curriculum subflow is performed.
If the activity selected is QUIT, the use case ends.
...
Page 8
Copyright © 1997 by Rational Software Corporation
Use Case Diagram
Use case diagrams are created to visualize
the relationships between actors and use
cases
Request Course Roster
Professor
Student
Maintain Schedule
Billing System
Maintain Curriculum
Registrar
Page 9
Copyright © 1997 by Rational Software Corporation
Uses and Extends Use Case
Relationships
As the use cases are documented, other use
case relationships may be discovered
–
A uses relationship shows behavior that is
common to one or more use cases
–
An extends relationship shows optional behavior
<<uses>>
Register for courses
<<uses>>
Logon validation
Maintain curriculum
Page 10
Copyright © 1997 by Rational Software Corporation
Use Case Realizations
The use case diagram presents an outside
view of the system
Interaction diagrams describe how use cases
are realized as interactions among societies
of objects
Two types of interaction diagrams
Page 11
–
Sequence diagrams
–
Collaboration diagrams
Copyright © 1997 by Rational Software Corporation
Sequence Diagram
A sequence diagram displays object
interactions arranged in a time sequence
registration
form
: Student
registration
manager
math 101
math 101
section 1
1: fill in info
2: submit
3: add course(joe, math 01)
4: are you open?
5: are you open?
6: add (joe)
Page 12
Copyright © 1997 by Rational Software Corporation
7: add (joe)
Collaboration Diagram
A collaboration diagram displays object
interactions organized around objects and
their links to one another
1: set course info
2: process
course form :
CourseForm
3: add course
: Registrar
theManager :
CurriculumManager
aCourse :
Course
4: new course
Page 13
Copyright © 1997 by Rational Software Corporation
Class Diagrams
A class diagram shows the existence of
classes and their relationships in the logical
view of a system
UML modeling elements in class diagrams
Page 14
–
Classes and their structure and behavior
–
Association, aggregation, dependency, and
inheritance relationships
–
Multiplicity and navigation indicators
–
Role names
Copyright © 1997 by Rational Software Corporation
Classes
A class is a collection of objects with common
structure, common behavior, common
relationships and common semantics
Classes are found by examining the objects in
sequence and collaboration diagram
A class is drawn as a rectangle with three
compartments
Classes should be named using the vocabulary
of the domain
Page 15
–
Naming standards should be created
–
e.g., all classes are singular nouns starting with a
capital letter
Copyright © 1997 by Rational Software Corporation
Classes
ScheduleAlgorithm
RegistrationForm
RegistrationManager
Course
Student
Professor
CourseOffering
Page 16
Copyright © 1997 by Rational Software Corporation
Operations
The behavior of a class is represented by its
operations
Operations may be found by examining
interaction diagrams
registration
form
registration
manager
RegistrationManager
3: add course(joe, math 01)
Page 17
Copyright © 1997 by Rational Software Corporation
addCourse(Student,Course)
Attributes
The structure of a class is represented by its
attributes
Attributes may be found by examining class
definitions, the problem requirements, and
by applying domain knowledge
Each course offering
has a number, location
and time
Page 18
Copyright © 1997 by Rational Software Corporation
CourseOffering
number
location
time
Classes
ScheduleAlgorithm
RegistrationForm
RegistrationManager
addStudent(Course, StudentInfo)
Course
name
numberCredits
Student
open()
addStudent(StudentInfo)
name
major
Professor
CourseOffering
name
tenureStatus
location
open()
addStudent(StudentInfo)
Page 19
Copyright © 1997 by Rational Software Corporation
Relationships
Relationships provide a pathway for
communication between objects
Sequence and/or collaboration diagrams are
examined to determine what links between
objects need to exist to accomplish the
behavior -- if two objects need to “talk” there
must be a link between them
Three types of relationships are:
Page 20
–
Association
–
Aggregation
–
Dependency
Copyright © 1997 by Rational Software Corporation
Relationships
An association is a bi-directional connection between classes
–
An association is shown as a line connecting the related classes
An aggregation is a stronger form of relationship where the relationship
is between a whole and its parts
–
An aggregation is shown as a line connecting the related classes with a diamond
next to the class representing the whole
A dependency relationship is a weaker form of relationship showing a
relationship between a client and a supplier where the client does not
have semantic knowledge of the supplier
A dependency is shown as a dashed line pointing from the client to the
supplier
Page 21
Copyright © 1997 by Rational Software Corporation
Finding Relationships
Relationships are discovered by examining
interaction diagrams
–
If two objects must “talk” there must be a
pathway for communication
Registration
Manager
RegistrationManager
Math 101:
Course
3: add student(joe)
Course
Page 22
Copyright © 1997 by Rational Software Corporation
Relationships
ScheduleAlgorithm
RegistrationForm
RegistrationManager
addStudent(Course, StudentInfo)
Course
name
numberCredits
Student
open()
addStudent(StudentInfo)
name
major
Professor
CourseOffering
name
tenureStatus
location
open()
addStudent(StudentInfo)
Page 23
Copyright © 1997 by Rational Software Corporation
Multiplicity and Navigation
Multiplicity defines how many objects
participate in a relationships
–
Multiplicity is the number of instances of one class
related to ONE instance of the other class
–
For each association and aggregation, there are
two multiplicity decisions to make: one for each
end of the relationship
Although associations and aggregations are
bi-directional by default, it is often desirable
to restrict navigation to one direction
If navigation is restricted, an arrowhead is
added to indicate the direction of the
navigation
Page 24
Copyright © 1997 by Rational Software Corporation
Multiplicity and Navigation
ScheduleAlgorithm
RegistrationForm
0..*
1
RegistrationManager
addStudent(Course, StudentInfo)
Course
1
0..*
Student
name
numberCredits
open()
addStudent(StudentInfo)
major
1
3..10
Professor
tenureStatus
4
1
1..*
CourseOffering
location
0..4 open()
addStudent(StudentInfo)
Page 25
Copyright © 1997 by Rational Software Corporation
Inheritance
Inheritance is a relationships between a
superclass and its subclasses
There are two ways to find inheritance:
–
Generalization
–
Specialization
Common attributes, operations, and/or
relationships are shown at the highest
applicable level in the hierarchy
Page 26
Copyright © 1997 by Rational Software Corporation
Inheritance
ScheduleAlgorithm
RegistrationForm
RegistrationManager
addStudent(Course, StudentInfo)
Course
name
numberCredits
RegistrationUser
name
Student
open()
addStudent(StudentInfo)
major
Professor
CourseOffering
tenureStatus
location
open()
addStudent(StudentInfo)
Page 27
Copyright © 1997 by Rational Software Corporation
The State of an Object
A state transition diagram shows
–
The life history of a given class
–
The events that cause a transition from one state
to another
–
The actions that result from a state change
State transition diagrams are created for
objects with significant dynamic behavior
Page 28
Copyright © 1997 by Rational Software Corporation
State Transition Diagram
Add student[ count < 10 ]
Add Student /
Set count = 0
Initialization
Open
do: Initialize course
entry: Register student
exit: Increment count
Cancel
Cancel
[ count = 10 ]
Canceled
do: Notify registered students
Cancel
Page 29
Closed
do: Finalize course
Copyright © 1997 by Rational Software Corporation
The Physical World
Component diagrams illustrate the
organizations and dependencies among
software components
A component may be
Page 30
–
A source code component
–
A run time components or
–
An executable component
Copyright © 1997 by Rational Software Corporation
Component Diagram
Register.exe
Billing.exe
Billing
System
People.dll
User
Course.dll
Course
Student
Course
Page 31
Professor
Course
Offering
Copyright © 1997 by Rational Software Corporation
Deploying the System
The deployment diagram shows the
configuration of run-time processing
elements and the software processes living
on them
The deployment diagram visualizes the
distribution of components across the
enterprise.
Page 32
Copyright © 1997 by Rational Software Corporation
Deployment Diagram
Registration
Database
Main
Building
Library
Dorm
Page 33
Copyright © 1997 by Rational Software Corporation
Extending the UML
Stereotypes can be used to extend the UML
notational elements
Stereotypes may be used to classify and
extend associations, inheritance
relationships, classes, and components
Examples:
Page 34
–
Class stereotypes: boundary, control, entity,
utility, exception
–
Inheritance stereotypes: uses and extends
–
Component stereotypes: subsystem
Copyright © 1997 by Rational Software Corporation