uml: unified modeling language zstory: ywhat uml is for ysome of the main diagrams are and what you...
TRANSCRIPT
UML: Unified Modeling Language
Story: What UML is for Some of the main diagrams are and what you
use them forClass diagrams and class formsUse Case DiagramsSequence (Event) DiagramState Diagrams
An example
UML: Unified Modeling Language
Developed by the “Three Amigos”: Grady Booch, Jim Rumbaugh, Ivar Jacobson Each had their own development methodology More or less emphasis on notation and process
UML is a notation and a process Diagrams and notation from UML 1.3 Definition
(http://www.rational.com)
Diagrams
Class diagrams: Represents static structure
Use case diagrams: Sequence of actions a system performs to yield an observable result to an actor
Sequence diagrams:Shows how groups of objects interact in some behavior
State diagrams: Describes behavior of system by describing states of an object
Class Diagrams
Better name: “Static structure diagram” Doesn’t describe temporal aspects Doesn’t describe individual objects: Only the
overall structure of the systemThere are “object diagrams” where the boxes
represent instances But rarely used—other diagrams serve the role of
describing object interaction better When used, object diagrams describe static
structure, like a data structure
Different Levels of Specifying Classes
Notation in Class Boxes
Abstract classes (and operations) in italics+ is public, - is private, # is protectedCan also specify stereotypes or
compartments “constructors” or “query” “controller”
Other variations in Class specifications
Use of templates, interfaces, and types
Can even specify body of methods
Components of Class Diagrams
Multiplicities How many of
each?Labels to
indicate how reference is viewed
Role and Association classes
Navigability and Aggregations
Navigability Who owns/contains/has who? Arrows not strictly required
Aggregation: Open diamond “Part-of” relationship, but disagreement
Composition:closed diamond Part can only
belong to whole
Qualifiers
Serves to describe an instance variable that partitions the relationship.
Use Case Diagrams
Means of capturing requirementsDocument interactions between user(s)
and the system User (actor) is not part of the system itself But an actor can be another system
An individual use case represents a task to be done with support from the system (thus it is a ‘coherent unit of functionality’)
Simple Use Case Diagram
Reserve bookReserve book
Borrow bookBorrow book
Return bookReturn book
Use Case Diagram with Multiple Actors
Use Cases
Are actually defined as text, including descriptions of all of the normal and exception behavior expected
Do not reveal the structure of the systemCollectively define the boundaries of the
system to be implementedProvide the basis for defining
development iterations
Example Use Case Diagram (Advanced Features)
Sequence (Event) Diagrams
Shows individual objects and how they interact
Describes Lifelines of objects Who sends what messages when Can also describe sending messages to self
("self-delegation") Can describe guards, notes, etc.
Example Sequence Diagram
State Diagrams
Describe all the possible states a particular object can get into, and the events that lead to those changes
Also called a "statechart"
Example State Diagram
Other Kinds of UML Diagrams
Collaboration Diagrams An alternative to sequence diagrams for
describing the flow of messages between objects
Other kinds of UML Diagrams
Activity Diagrams Alternative to
statecharts
Other kinds of UML Diagrams
Implementation Diagrams Down at the detail
levelWhat piece of code
goes where?How are they
connected?
UML in Real Practice
You don't typically use all the diagrams You'll choose between them based on preference and
particular situation
You typically use many diagrams A single use case may not capture all scenarios If you are going to use statecharts, there are probably
lots of objects with states Each sequence/collaboration diagram only shows one
interaction
Example: Student Registration System
Not going to do all the diagrams Not all types, not even all that completely
specify the system
But this is an application you know, so the examples may help make sense
Student Registration Class Diagram
*
prereqs
0..30..30..3
prereqs
0..30..30..3
Course
namenumberdepartmentcreditHoursprerequisites
1
*****1
CourseGrade
coursegradetermEnrolled
Transcript
courseGrades
gradeForCourse:takenCourse:
1 ***
1
******
1..3 ******
*
111111
Department
coursesrequiredCourses
111Student
transcriptmajor
enrollInClass:gradeInCourse:takenCourse:
SectionSection
coursedaysAndTimedaysAndTimeroster
addStudentaddStudent
removeStudentremoveStudent **
1** sectionssections
Registrar
courses
getSectionsFor:getSectionsFor:
enrollInSection:enrollInSection:
dropFromSection:dropFromSection:
schedulescheduleregistrarregistrar
1**
1
Partial Use Case Diagram
Withdrawfrom a Course
Apply forAdmission
Student
Enroll inthe University
Enroll ina Course
Admissions
States of a Student
EnrollInClass ( Add a Transcript )
EnrolledApply [ Must be accepted first ]
Graduate [ All courses must be completed ]
AddCourseRegisteredWithdraw
Sequence Diagram: Registering for Course
theRegistrar aSection theTranscriptaStudent
state of prereqhave prereq
enrolled
enrollInSection:
return sections
getSectionsFor:
addStudent:
enrolled
takenCourse: prerequisite
takenCourse: prerequisite
Process to Representations
OOA CRC Cards (but they’re not officially UML) Use Cases
OOD Just about all of the rest But variations—some detail is later
OOP Can actually go UML->code with some tools!
UML v1.3 Copyright Notice
Copyright © 1997, 1998, 1999 Object Management Group, Inc.Copyright © 1997, 1998, 1999 Hewlett-Packard CompanyCopyright © 1997, 1998, 1999 IBM CorporationCopyright © 1997, 1998, 1999 ICON ComputingCopyright © 1997, 1998, 1999 i-LogixCopyright © 1997, 1998, 1999 IntelliCorpCopyright © 1997, 1998, 1999 Electronic Data Services CorporationCopyright © 1997, 1998, 1999 Microsoft CorporationCopyright © 1997, 1998, 1999 ObjecTime LimitedCopyright © 1997, 1998, 1999 Oracle CorporationCopyright © 1997, 1998, 1999 Platinum Technology, Inc.Copyright © 1997, 1998, 1999 Ptech Inc.Copyright © 1997, 1998, 1999 Rational Software CorporationCopyright © 1997, 1998, 1999 Reich TechnologiesCopyright © 1997, 1998, 1999 SofteamCopyright © 1997, 1998, 1999 Sterling SoftwareCopyright © 1997, 1998, 1999 Taskon A/SCopyright © 1997, 1998, 1999 Unisys Corporation