0% found this document useful (0 votes)
48 views

UML Tutorial 1

The document discusses UML (Unified Modeling Language), which is a general-purpose modeling language used to visualize, specify, construct, and document artifacts of a software system. UML was created in the 1990s by combining the three main object-oriented modeling languages at the time. It includes many types of diagrams for modeling different aspects of a system, such as use case diagrams, class diagrams, sequence diagrams, activity diagrams, and state diagrams.

Uploaded by

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

UML Tutorial 1

The document discusses UML (Unified Modeling Language), which is a general-purpose modeling language used to visualize, specify, construct, and document artifacts of a software system. UML was created in the 1990s by combining the three main object-oriented modeling languages at the time. It includes many types of diagrams for modeling different aspects of a system, such as use case diagrams, class diagrams, sequence diagrams, activity diagrams, and state diagrams.

Uploaded by

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

UML: Unified Modeling Language

1
Modeling

• Describing a system at a high level of


abstraction
– A model of the system
– Used for requirements and specification

• Many notations over time


– State machines
– Entity-relationship diagrams
– Dataflow diagrams
2
Recent History: 1980’s

• The rise of object-oriented programming

• New class of OO modeling languages

• By early ’90’s, over fifty OO modeling


languages

3
Recent History: 1990’s

• Three leading OO notations decide to combine


– Grady Booch (BOOCH)
– Jim Rumbaugh (OMT: Object Modeling Technique)
– Ivar Jacobsen (OOSE: OO Soft. Eng)

• Why?
– Natural evolution towards each other
– Effort to set an industry standard

4
UML

• UML stands for


Unified Modeling Language

• Design by committee
– Many interest groups participating
– Everyone wants their favorite approach to be “in”

5
UML

• UML stands for


Unified Modeling Language

• Design by committee
– Many interest groups participating
– Everyone wants their favorite approach to be “in”

6
UML (Cont.)

• Resulting design is huge


– Many features
– Many loosely unrelated styles under one roof

• Could also be called


Union of all Modeling Languages

7
Objectives of UML

• UML is a general purpose notation that is used


to
• visualize
• specify
• construct and
• document
the artifacts of a software system

8
This and Next Lectures

• We discuss
– Use Case Diagrams for functional models
– Class Diagrams for structural models
– Object Diagrams
– Sequence Diagrams
– Activity Diagrams for dynamic models
– State Diagrams

• This is a subset of UML


9
– But probably the most used subset
Development Process

• Requirements elicitation – High level capture of user/


system requirements
– Use Case Diagram
• Identify major objects and relationships
– Object and class diagrams
• Create scenarios of usage
– Class, Sequence and Collaboration diagrams
• Generalize scenarios to describe behavior
– Class, State and Activity Diagrams
• Refine and add implementation details
– Component and Deployment Diagrams 53
Structural Diagrams

• Class Diagram – set of classes and their relationships.


Describes interface to the class (set of operations
describing services)
• Object Diagram – set of objects (class instances) and
their relationships
• Component Diagram – logical groupings of elements
and their relationships
• Deployment Diagram - set of computational
resources (nodes) that host each component

10
Behavioral Diagram

• Use Case Diagram – high-level behaviors of the


system, user goals, external entities: actors
• Sequence Diagram – focus on time ordering of
messages
• Collaboration Diagram – focus on structural
organization of objects and messages
• State (Machine) Diagram – event driven state
changes of system
• Activity Diagram – flow of control between activities

11
Use Case Diagram

• Elements
– Actors
Use
– Use cases
case
– Relations
actor
• Use case diagram
shows relationship Use
case
between actors and
use cases
actor
12
Use Case Diagram Example

<<extends>>
Ride Business
Class Ride
passenger
Diagnose <<extends>>

<<uses>>
Economy
Class Ride
Repair
technician

13
Example:
Project and Resource Management System

• A resource manager manages resources


• A project manager manages projects
• A system administrator is responsible for
administrative functions of the system
• A backup system houses backup data for the
system

14
15
Do these Use Cases Pass the Tests?

• Boss test?
• EBP test?
• Size test?

16
Manage Project Use Case

• A project manager can add, remove, and


update a project
• Remove and update project requires to find
project
• A project update may involve
– Add, remove, or update activity
– Add, remove, or update task
– Assign resource to a task or unassign resource
from a task
17
18
Class Diagrams

Train
• Describe classes
lastStop
– In the OO sense
nextStop
• Class diagrams are
static -- they display velocity

what interacts but not doorsOpen?


what happens when they
do interact addStop(stop);
• Each box is a class startTrain(velocity);
– List fields stopTrain();
– List methods openDoors();
19
closeDoors();
Class Diagrams: Relationships

• Many different kinds of


edges to show different
relationships between
classes
• Any examples?

20
Relationships in UML

21
Association

• Association between two


classes Customer
– if an instance of one class 1
must know about the
other in order to perform
its work.
• Label endpoints of edge *
with cardinalities Order
– Use * for arbitrary
• Can be directional (use
arrows in that case)
22
Association

23
Examples of Association

24
Link Attributes

• Associations may have properties in the same manner


as objects/classes
• Salary and job title can be represented as

25
Association

26
Types of Association

Aggregation Composition

27
Aggregation Composition

• An association in which • An association in which


one class belongs to a one class belongs to a
collection collection
– Shared: An object can – No Sharing: An object
exist in more than one cannot exist in more than
collections one collections
– No ownership implied – Strong “has a”
relationship
• Denoted by hollow
– Ownership
diamond on the
“contains” side • Denoted by filled
diamond on the
“contains” side 28
Car Project
1 1

4 1..*
Wheels Consultant

29
Composition Aggregation

Car Project
1 1

4 1..*
Wheels Consultant

30
CS435 McGlothlin
1 1

* 1..*
Student classroom

31
Aggregation Composition

CS435 Millington
1 1

* 1..*
Student Classroom

32
Generalization

• Inheritance between
classes Button

• Denoted by open
triangle

RequestButton EmergencyButton

33
Generalization

34
Generalization

35
Generalization

• (Think subclassing)

Doctor

Hospital Doctor General


Practitioner

Cardiologist
36
Generalization

37
Generalization

•An is-a relationship


•Abstract class

38
Realization

39
Dependency

We use term dependencies for other relationships that


do not fit sharper categories

40
41
42
Example class diagram?

43
Which Relation is Right?

• Aggregation – aka is-part-of, is-made-of, contains


• Use association when specific (persistent) objects have
multiple relationships (e.g., there was only one Bill Gates
at MS and Steve Jobs at Apple)
• Use dependency when working with static objects, or if
there is only one instance
• Do not confuse part-of with is-a

44
Relationships in UML

45
46
47
48
Object Diagram

• Object diagram is an instantiation of a class


diagram
• Represents a static structure of a system at a
particular time

49
50
Sequence Diagrams

• Sequence diagrams
– Refine use cases
– Gives view of dynamic behavior of classes
• Class diagrams give the static class structure

• Not orthogonal to other diagrams


– Overlapping functionality
– True of all UML diagrams

52
Development Process

• Requirements elicitation – High level capture of user/


system requirements
– Use Case Diagram
• Identify major objects and relationships
– Object and class diagrams
• Create scenarios of usage
– Class, Sequence and Collaboration diagrams
• Generalize scenarios to describe behavior
– Class, State and Activity Diagrams
• Refine and add implementation details
– Component and Deployment Diagrams 53
UML Driven Process

54
UML Driven
Process Model

55
Work Products

• Functional Model – Use Case diagrams


• Analysis Object Model – simple object/class diagram
• Dynamic Model – State and Sequence diagrams
• Object Design Model – Class diagrams
• Implementation Model – Deployment, and Activity
diagrams

56
Acknowledgements

• Many slides courtesy of Rupak Majumdar

57

You might also like