Anda di halaman 1dari 30

UML: Unified Modeling Language

Story:
What UML is for Some of the main diagrams are and what you use them for
Class diagrams and class forms Use Case Diagrams Sequence (Event) Diagram State 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
Doesnt describe temporal aspects Doesnt describe individual objects: Only the overall structure of the system

There are object diagrams where the boxes represent instances


But rarely usedother 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 protected Can 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 requirements Document 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 book

Borrow book

Return 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 system Collectively define the boundaries of the system to be implemented Provide 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 level
What 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


Student
1 transcript major schedule registrar enrollInClass: gradeInCourse: takenCourse: * * 1 1

Transcript
courseGrades

Registrar Section
course daysAndTime roster addStudent removeStudent * 1 courses sections getSectionsFor: enrollInSection: dropFromSection: * 1

gradeForCourse: takenCourse: 1

CourseGrade
course grade termEnrolled

1 1

1 *
1..3 *

* 1 *

Department
courses requiredCourses

Course

name number 0..3 department creditHours prereqs prerequisites

Partial Use Case Diagram


Apply for Admission

Enroll in the University

Admissions

Student

Enroll in a Course

Withdraw from a Course

States of a Student
Apply [ Must be accepted first ]

Enrolled

EnrollInClass ( Add a Transcript )

Withdraw

Registered

AddCourse

Graduate [ All courses must be completed ]

Sequence Diagram: Registering for Course


aStudent
getSectionsFor: return sections
enrollInSection: takenCourse: prerequisite
takenCourse: prerequisite

theRegistrar

aSection

theTranscript

state of prereq have prereq


addStudent:

enrolled

enrolled

Process to Representations
OOA
CRC Cards (but theyre not officially UML) Use Cases

OOD
Just about all of the rest But variationssome 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 Company Copyright 1997, 1998, 1999 IBM Corporation Copyright 1997, 1998, 1999 ICON Computing Copyright 1997, 1998, 1999 i-Logix Copyright 1997, 1998, 1999 IntelliCorp Copyright 1997, 1998, 1999 Electronic Data Services Corporation Copyright 1997, 1998, 1999 Microsoft Corporation Copyright 1997, 1998, 1999 ObjecTime Limited Copyright 1997, 1998, 1999 Oracle Corporation Copyright 1997, 1998, 1999 Platinum Technology, Inc. Copyright 1997, 1998, 1999 Ptech Inc. Copyright 1997, 1998, 1999 Rational Software Corporation Copyright 1997, 1998, 1999 Reich Technologies Copyright 1997, 1998, 1999 Softeam Copyright 1997, 1998, 1999 Sterling Software Copyright 1997, 1998, 1999 Taskon A/S Copyright 1997, 1998, 1999 Unisys Corporation

Anda mungkin juga menyukai