0% found this document useful (0 votes)
7 views49 pages

08 - Uml

The document provides an overview of the Unified Modeling Language (UML), its purpose, history, and various types of diagrams used in software design. UML is an open standard that facilitates the specification, visualization, and documentation of software systems, particularly in object-oriented design. It includes basic modeling steps, such as use case and class diagrams, and emphasizes the importance of understanding system interactions and requirements.

Uploaded by

KL M
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views49 pages

08 - Uml

The document provides an overview of the Unified Modeling Language (UML), its purpose, history, and various types of diagrams used in software design. UML is an open standard that facilitates the specification, visualization, and documentation of software systems, particularly in object-oriented design. It includes basic modeling steps, such as use case and class diagrams, and emphasizes the importance of understanding system interactions and requirements.

Uploaded by

KL M
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 49

Lecture 08: UML

What is UML?

• Unified Modeling Language


– OMG Standard, Object Management Group
– Based on work from Booch, Rumbaugh, Jacobson
• UML is a modeling language to express and design
documents, software
– Particularly useful for OO design
– Not a process, but some have been proposed using UML
– Independent of implementation language
Why use UML

• Open Standard, Graphical notation for


– Specifying, visualizing, constructing, and documenting software systems
• Language can be used from general initial design to very specific detailed
design across the entire software development lifecycle
• Increase understanding/communication of product to customers and
developers
• Support for diverse application areas
• Support for UML in many software packages today (e.g. Rational, plugins for
popular IDE’s like NetBeans, Eclipse)
• Based upon experience and needs of the user community
Brief History

• Inundated with methodologies in early 90’s


– Booch, Jacobson, Yourden, Rumbaugh
• Booch, Jacobson merged methods 1994
• Rumbaugh joined 1995
• 1997 UML 1.1 from OMG includes input from others, e.g.
Yourden
• UML v2.0 current version
History of UML
Contributions to UML
Systems, Models and Views

• A model is an abstraction describing a subset of a system


• A view depicts selected aspects of a model
• A notation is a set of graphical or textual rules for depicting views
• Views and models of a single system may overlap each other

Examples:
• System: Aircraft
• Models: Flight simulator, scale model
• Views: All blueprints, electrical wiring, fuel system
Systems, Models and Views

Flightsimulator
Blueprints
Aircraft
Model 2
View 2
View 1
System
View 3

Model 1

Electrical
Wiring
Scale Model
UML Models, Views, Diagrams

• UML is a multi-diagrammatic language


– Each diagram is a view into a model
• Diagram presented from the aspect of a particular stakeholder
• Provides a partial representation of the system
• Is semantically consistent with other views
– Example views
Models, Views, Diagrams
How Many Views?

• Views should to fit the context


– Not all systems require all views
– Single processor: drop deployment view
– Single process: drop process view
– Very small program: drop implementation view
• A system might need additional views
– Data view, security view, …
UML: First Pass

• You can model 80% of most problems by using about 20


% UML
• We only cover the 20% here
Basic Modeling Steps

• Use Cases
– Capture requirements
• Domain Model
– Capture process, key classes
• Design Model
– Capture details and behaviors of use cases and domain objects
– Add classes that do the work and define the architecture
UML Baseline

• Use Case Diagrams


• Class Diagrams
• Package Diagrams
• Interaction Diagrams
– Sequence
– Collaboration
• Activity Diagrams
• State Transition Diagrams
• Deployment Diagrams
Use Case Diagrams

• Used during requirements elicitation to represent external behavior

• Actors represent roles, that is, a type of user of the system


• Use cases represent a sequence of interaction for a type of functionality; summary of
scenarios
• The use case model is the set of all use cases. It is a complete description of the
functionality of the system and its environment

PurchaseTicket
Passenger
Actors

• An actor models an external entity which communicates


with the system:
– User
– External system
Passenger
– Physical environment
• An actor has a unique name and an optional description.
• Examples:
– Passenger: A person in the train
– GPS satellite: Provides the system with GPS coordinates
Use Case

A use case represents a class of functionality provided by the system as


an event flow.

A use case consists of:


• Unique name PurchaseTicket

• Participating actors
• Entry conditions
• Flow of events
• Exit conditions
• Special requirements
Use Case Diagram: Example

Name: Purchase ticket Event flow:


1. Passenger selects the
Participating actor: Passenger number of zones to be
traveled.
Entry condition: 2. Distributor displays the amount
due.
• Passenger standing in front of ticket distributor.
3. Passenger inserts money, of
• Passenger has sufficient money to purchase ticket.
at least the amount due.
4. Distributor returns change.
Exit condition:
5. Distributor issues ticket.
• Passenger has ticket.
Anything missing?

Exceptional cases!
The <<extends>> Relationship

• <<extends>> relationships
represent exceptional or Passenger
seldom invoked cases.
• The exceptional event flows
are factored out of the main
event flow for clarity. PurchaseTicket
• Use cases representing
exceptional flows can extend <<extends>>
more than one use case.
• The direction of a <<extends>>
<<extends>> relationship is to <<extends>>
the extended use case OutOfOrder TimeOut
<<extends>>

Cancel NoChange
The <<includes>> Relationship

• <<includes>> relationship represents


behavior that is factored out of the use
case. Passenger
• <<includes>> behavior is factored out for
reuse, not because it is an exception.
PurchaseMultiCard
• The direction of a <<includes>>
relationship is to the using use case PurchaseSingleTicket
(unlike <<extends>> relationships). <<includes>>
<<includes>>

CollectMoney
<<extends>> <<extends>>

NoChange Cancel
Use Cases are useful to…

• Determining requirements
– New use cases often generate new requirements as the system is
analyzed and the design takes shape.
• Communicating with clients
– Their notational simplicity makes use case diagrams a good way for
developers to communicate with clients.
• Generating test cases
– The collection of scenarios for a use case may suggest a suite of test
cases for those scenarios.
Use Case Diagrams: Summary

• Use case diagrams represent external behavior


• Use case diagrams are useful as an index into the use
cases
• Use case descriptions provide meat of model, not the use
case diagrams.
• All use cases need to be described for the model to be
useful.
Class Diagrams

• Gives an overview of a system by showing its classes and


the relationships among them.
– Class diagrams are static
– they display what interacts but not what happens when they do
interact
• Also shows attributes and operations of each class
• Good way to describe the overall architecture of system
components
Class Diagram Perspectives

• We draw Class Diagrams under three perspectives


– Conceptual
• Software independent
• Language independent
– Specification
• Focus on the interfaces of the software
– Implementation
• Focus on the implementation of the software
Classes – Not Just for Code

• A class represent a concept


• A class encapsulates state (attributes) and behavior (operations).
• Each attribute has a type.
• Each operation has a signature.
• The class name is the only mandatory information.

TariffSchedule
Table zone2price
Enumeration getZones()
Name Price getPrice(Zone)

TariffSchedule
zone2price Attributes Signature
getZones()
getPrice()
Operations TariffSchedule
Instances

• An instance represents a phenomenon.


• The name of an instance is underlined and can contain the class
of the instance.
• The attributes are represented with their values.

tarif_1974:TariffSchedule
zone2price = {
{‘1’, .20},
{‘2’, .40},
{‘3’, .60}}
UML Class Notation
• A class is a rectangle divided into three parts Employee
– Class name
-Name : string
– Class attributes (i.e. data members, variables)
– Class operations (i.e. methods) +ID : long
• Modifiers #Salary : double
– Private: - +getName() : string
– Public: + +setName()
– Protected: # -calcInternalStuff(in x : byte, in y : decimal)
– Static: Underlined (i.e. shared among all members of the class)
• Abstract class: Name in italics
UML Class Notation
• Lines or arrows between classes indicate relationships
– Association
• A relationship between instances of two classes, where one class must know about the other to
do its work, e.g. client communicates to server
• indicated by a straight line or arrow
– Aggregation
• An association where one class belongs to a collection, e.g. instructor part of Faculty
• Indicated by an empty diamond on the side of the collection
– Composition
• Strong form of Aggregation
• Lifetime control; components cannot exist without the aggregate
• Indicated by a solid diamond on the side of the collection
– Inheritance
• An inheritance link indicating one class a superclass relationship, e.g. bird is part of mammal
• Indicated by triangle pointing to superclass
Binary Association

Binary Association: Both entities “Know About” each other

myB.service(); myA.doSomething();

Optionally, may create an Associate Class


Unary Association

A knows about B, but B knows nothing about A

myB.service(); Arrow points in direction


of the dependency
Aggregation

Aggregation is an association with a “collection-member” relationship

void doSomething() Hollow diamond on


aModule.service();
the Collection side

No sole ownership implied


Composition
Composition is Aggregation with:
Lifetime Control (owner controls construction, destruction)
Part object may belong to only one whole object

Employee
Team
-Name : string
-members : Employee +ID : long
1 #Salary : double
-adfaf : bool
*
+getName() : string
+setName()
-calcInternalStuff(in x : byte, in y : decimal)
members[0] =
new Employee();
… Filled diamond on
delete members[0]; side of the Collection
Inheritance
Standard concept of inheritance

Base Class

Derived Class

class B() extends A



UML Multiplicities

Multiplicities Meaning
Links on associations to specify more details about the relationship
zero or one instance. The notation n . . m indicates n to m
0..1
instances.

0..* or * no limit on the number of instances (including none).

1 exactly one instance


1..* at least one instance
UML Class Example
Association Details

• Can assign names to the ends of the association to give


further information Employee
Team - group
- Name : string
- members : Employee - individual + ID : long

1 # Salary : double
- adfaf : bool
*
+ getName () : string
+ setName ()
- calcInternalStuff ( in x : byte , in y : decimal )
Static vs. Dynamic Design

• Static design describes code structure and object relations


– Class relations
– Objects at design time
– Doesn’t change
• Dynamic design shows communication between objects
– Similarity to class relations
– Can follow sequences of events
– May change depending upon execution scenario
– Called Object Diagrams
Object Diagrams

• Shows instances of Class Diagrams and links among


them
– An object diagram is a snapshot of the objects in a system
• At a point in time
• With a selected focus
– Interactions – Sequence diagram
– Message passing – Collaboration diagram
– Operation – Deployment diagram
Object Diagrams

• Format is
– Instance name : Class name
– Attributes and Values

– Example:
Objects and Links

Can add association type and also message type


Package Diagrams

• To organize complex class diagrams, you can group classes into


packages. A package is a collection of logically related UML
elements
• Notation
– Packages appear as rectangles with small tabs at the top.
– The package name is on the tab or inside the rectangle.
– The dotted arrows are dependencies. One package depends on another if
changes in the other could possibly force changes in the first.
– Packages are the basic grouping construct with which you may organize
UML models to increase their readability
Interaction Diagrams

• Interaction diagrams are dynamic -- they describe how


objects collaborate.
• A Sequence Diagram:
– Indicates what messages are sent and when
– Time progresses from top to bottom
– Objects involved are listed left to right
– Messages are sent left to right between objects in sequence
Sequence Diagram Format

Actor from
Use Case Objects

2
Activation 3

Lifeline Calls = Solid Lines


Returns = Dashed Lines
Sequence Diagram : Destruction

Shows Destruction of b
(and Construction)
Sequence Diagram : Timing

Slanted Lines show propagation delay of messages


Good for modeling real-time systems

If messages cross this is usually problematic – race conditions


Sequence Example: Alarm System

• When the alarm goes off, it rings the alarm, puts a message on
the display, notifies the monitoring service
Sequence Diagram Example
Hotel Reservation
Summary and Tools

• UML is a modeling language that can be used independent of development


• Adopted by OMG and notation of choice for visual modeling
– http://www.omg.org/uml/
• Creating and modifying UML diagrams can be labor and time intensive.
• Lots of tools exist to help
– Tools help keep diagrams, code in sync
– Repository for a complete software development project
– Examples here created with TogetherSoft ControlCenter, Microsoft Visio, Tablet UML
Exercises

• Time to practices

You might also like