SlideShare a Scribd company logo
EEL5881 Software Engineering I
UML Lecture
Acknowledgements
 Slides material are taken from different
sources including:
 the slides of Mr. Shiyuan Jin’s UML class, EEL 4884, Fall 2003.
 Object-Oriented and Classical Software Engineering, Sixth
Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach
 UML resource page http://www.uml.org/
Outline
 What is UML and why we use UML?
 How to use UML diagrams to design
software system?
 What UML Modeling tools we use
today?
What is UML and Why we use UML?
 UML → “Unified Modeling Language”
 Language: express idea, not a methodology
 Modeling: Describing a software system at a high
level of abstraction
 Unified: UML has become a world standard
Object Management Group (OMG): www.omg.org
What is UML and Why we use UML?
 More description about UML:
 It is a industry-standard graphical language for specifying, visualizing,
constructing, and documenting the artifacts of software systems
 The UML uses mostly graphical notations to express the OO analysis
and design of software projects.
 Simplifies the complex process of software design
What is UML and Why we use UML?
 Why we use UML?
 Use graphical notation: more clearly than natural language
(imprecise) and code (too detailed).
 Help acquire an overall view of a system.
 UML is not dependent on any one language or technology.
 UML moves us from fragmentation to standardization.
What is UML and Why we use UML?
1997: UML 1.0, 1.1
1996: UML 0.9 & 0.91
1995: Unified Method 0.8
Other methods
Booch ‘91
Booch ‘93 OMT - 2
OMT - 1
Year Version
2003: UML 2.0
2001: UML 1.4
1999: UML 1.3
How to use UML diagrams to
design software system?
 Types of UML Diagrams:
 Use Case Diagram
 Class Diagram
 Sequence Diagram
 Collaboration Diagram
 State Diagram
This is only a subset of diagrams … but are most widely used
Use-Case Diagrams
 A use-case diagram is a set of use cases
 A use case is a model of the interaction between
 External users of a software product (actors) and
 The software product itself
 More precisely, an actor is a user playing a specific role
 describing a set of user scenarios
 capturing user requirements
 contract between end user and software developers
Use-Case Diagrams
Library System
Borrow
Order Title
Fine Remittance
Client
Employee
Supervisor
Boundary
Actor
Use Case
Use-Case Diagrams
 Actors: A role that a user plays with respect to the system, including human
users and other systems. e.g., inanimate physical objects (e.g. robot); an
external system that needs some information from the current system.
 Use case: A set of scenarios that describing an interaction between a user
and a system, including alternatives.
 System boundary: rectangle diagram representing the boundary between
the actors and the system.
Use-Case Diagrams
 Association:
communication between an actor and a use case; Represented by a solid line.
 Generalization: relationship between one general use case and a special use
case (used for defining special alternatives) Represented by a line with a
triangular arrow head toward the parent use case.
Use-Case Diagrams
Extend: a dotted line labeled <<extend>> with an arrow toward
the base case. The extending use case may add behavior to the
base use case. The base class declares “extension points”.
<<extend>>
Include: a dotted line labeled <<include>> beginning at base
use case and ending with an arrows pointing to the include use
case. The include relationship occurs when a chunk of
behavior is similar across more than one use case. Use
“include” in stead of copying the description of that behavior.
<<include>>
Use-Case Diagrams
Figure 16.12
The McGraw-Hill Companies, 2005
Use-Case Diagrams
 Both Make Appointment
and Request Medication
include Check Patient
Record as a subtask
(include)
 The extension point is
written inside the base
case Pay bill; the
extending class Defer
payment adds the
behavior of this extension
point. (extend)
 Pay Bill is a parent use
case and Bill Insurance
is the child use case.
(generalization)
(TogetherSoft, Inc)
Class diagram
 A class diagram depicts classes and their interrelationships
 Used for describing structure and behavior in the use cases
 Provide a conceptual model of the system in terms of
entities and their relationships
 Used for requirement capture, end-user interaction
 Detailed class diagrams are used for developers
Class diagram
 Each class is represented by a rectangle subdivided into three
compartments
 Name
 Attributes
 Operations
 Modifiers are used to indicate visibility of attributes and
operations.

‘+’ is used to denote Public visibility (everyone)

‘#’ is used to denote Protected visibility (friends and derived)

‘-’ is used to denote Private visibility (no one)
 By default, attributes are hidden and operations are visible.
Class diagram
Account_Name
- Customer_Name
- Balance
+addFunds( )
+withDraw( )
+transfer( )
Name
Attributes
Operations
OO Relationships
 There are two kinds of Relationships
 Generalization (parent-child relationship)
 Association (student enrolls in course)
 Associations can be further classified
as
 Aggregation
 Composition
Subtype2
Supertype
Subtype1
OO Relationships: Generalization
-Inheritance is a required feature of object orientation
-Generalization expresses a parent/child relationship among related classes.
-Used for abstracting details in several layers
Regular
Customer
Loyalty
Customer
CustomerExample:
 Represent relationship between instances of classes
 Student enrolls in a course
 Courses have students
 Courses have exams
 Etc.
 Association has two ends
 Role names (e.g. enrolls)
 Multiplicity (e.g. One course can have many students)
 Navigability (unidirectional, bidirectional)
OO Relationships: Association
Association: Multiplicity and Roles
University Person
1
0..1
*
*
Multiplicity
Symbol Meaning
1 One and only one
0..1 Zero or one
M..N From M to N (natural language)
* From zero to any positive integer
0..* From zero to any positive integer
1..* From one to any positive integer
teacheremployer
Role
Role
“A given university groups many people;
some act as students, others as teachers.
A given student belongs to a single
university; a given teacher may or may not
be working for the university at a particular
time.”
student
Class diagram
[from UML Distilled Third Edition]
OO Relationships: Composition
Class W
Class P1 Class P2
Association
Models the part–whole relationship
Composition
Also models the part–whole relationship but, in
addition, Every part may belong to only one
whole, and If the whole is deleted, so are the
parts
Example:
A number of different chess boards: Each square
belongs to only one board. If a chess board is
thrown away, all 64 squares on that board go as
well.
Whole Class
Part Classes
Example
Figure 16.7
The McGraw-Hill Companies, 2005
[From Dr.David A. Workman]
OO Relationships: Aggregation
Class C
Class E1 Class E2
AGGREGATION
Container Class
Containee Classes
Bag
Apples Milk
Example
Aggregation:
expresses a relationship among instances of related
classes. It is a specific kind of Container-Containee
relationship.
express a more informal relationship than
composition expresses.
Aggregation is appropriate when Container and
Containees have no special access privileges to
each other.
[From Dr.David A. Workman]
Aggregation vs. Composition
CompositionComposition is really a strong form of association
components have only one owner
components cannot exist independent of their owner
components live or die with their owner
e.g. Each car has an engine that can not be shared with other cars.
Aggregations
may form "part of" the association, but may not be essential to it. They
may also exist independent of the aggregate. e.g. Apples may exist
independent of the bag.
Good Practice: CRC Card
Class Responsibility Collaborator
 easy to describe how classes work by moving cards around; allows to
quickly consider alternatives.
Interaction Diagrams
 show how objects interact with one another
 UML supports two types of interaction
diagrams
 Sequence diagrams
 Collaboration diagrams
Sequence Diagram(make a phone call)
Caller Phone Recipient
Picks up
Dial tone
Dial
Ring notification Ring
Picks up
Hello
Sequence Diagram:Object interaction
Self-CallSelf-Call: A message that an
Object sends to itself.
Condition: indicates when a
message is sent. The message is
sent only if the condition is true.
Iteration
Condition
A B
Synchronous
Asynchronous
Transmission
delayed
Self-Call
[condition] remove()
*[for each] remove()
Sequence Diagrams – Object Life Spans
 Creation
 Create message
 Object life starts at that point
 Activation
 Symbolized by rectangular
stripes
 Place on the lifeline where object
is activated.
 Rectangle also denotes when
object is deactivated.
 Deletion
 Placing an ‘X’ on lifeline
 Object’s life ends at that point
Activation bar
A
B
Create
X
Deletion
Return
Lifeline
Sequence Diagram
User Catalog Reservations
1: look up ()
2: title data ()
3: [not available] reserve title ()
4 : title returned ()
5: hold title ()
5 : title available ()
6 : borrow title ()
6 : remove reservation ()
•Sequence diagrams demonstrate
the behavior of objects in a use case
by describing the objects and the
messages they pass.
•The horizontal dimension shows the
objects participating in the interaction.
•The vertical arrangement of
messages indicates their order.
•The labels may contain the seq. # to
indicate concurrency.
Message
Interaction Diagrams: Collaboration diagrams
User
Catalog
Reservations
start
1: look up
2: title data
3 : [not available] reserve title
4 : title returned
5 : hold title
6 : borrow title
6: remove reservation
5: title available
Collaboration diagrams are equivalent to sequence diagrams. All the features of sequence
diagrams are equally applicable to collaboration diagrams
Use a sequence diagram when the transfer of information is the focus of attention
Use a collaboration diagram when concentrating on the classes
State Diagrams (Billing Example)
State Diagrams show the sequences of states an object goes through
during its life cycle in response to stimuli, together with its responses and
actions; an abstraction of all possible behaviors.
Unpaid
Start End
Paid
Invoice created paying Invoice destroying
State Diagrams (Traffic light example)
Yellow
Red
Green
Traffic Light
State
Transition
Event
Start
What UML Modeling tools we use today?
 List of UML tools http://en.wikipedia.org/wiki/List_of_UML_tools
 ArgoUML: http://argouml.tigris.org/
 Rational Rose (www.rational.com) by IBM
 UML Studio 7.1 ( http://www.pragsoft.com/) by Pragsoft Corporation:
Capable of handling very large models (tens of thousands of classes).
Educational License US$ 125.00; Freeware version.
 TogetherSoft Control Center; TogetherSoft Solo (
http://www.borland.com/together/index.html) by Borland
Conclusion
 UML is a standardized specification language
for object modeling
 Several UML diagrams:
 use-case diagram: a number of use cases (use case models the interaction
between actors and software)
 Class diagram: a model of classes showing the static relationships among them
including association and generalization.
 Sequence diagram: shows the way objects interact with one another as
messages are passed between them. Dynamic model
 State diagram: shows states, events that cause transitions between states.
Another dynamic model reflecting the behavior of objects and how they react to
specific event
 There are several UML tools available
Thank you
Questions?

More Related Content

What's hot (20)

PDF
Sequence diagram- UML diagram
Ramakant Soni
 
PPTX
Model driven architecture
Biruk Mamo
 
PPTX
Activity diagram
bhupendra kumar
 
PPTX
Psychology of usable things
junaid54321
 
PPT
Uml
Sulman Ahmed
 
PPTX
Interaction Modeling
Hemant Sharma
 
PPTX
Component Based Software Engineering
SatishDabhi1
 
PPT
10 component diagram
Baskarkncet
 
PPT
Use Case Diagram
Ashesh R
 
PPTX
Class based modeling
Md. Shafiuzzaman Hira
 
PPT
11 deployment diagrams
Baskarkncet
 
PPTX
operating system
kabul university
 
PDF
Lecture6 activity diagrams
Shahid Riaz
 
PPT
Unit 5
gopal10scs185
 
PPTX
Object oriented methodologies
naina-rani
 
PPTX
object oriented methodologies
Amith Tiwari
 
PDF
Software Engineering - chp3- design
Lilia Sfaxi
 
PDF
Hci md exam
Desalegn Aweke
 
Sequence diagram- UML diagram
Ramakant Soni
 
Model driven architecture
Biruk Mamo
 
Activity diagram
bhupendra kumar
 
Psychology of usable things
junaid54321
 
Interaction Modeling
Hemant Sharma
 
Component Based Software Engineering
SatishDabhi1
 
10 component diagram
Baskarkncet
 
Use Case Diagram
Ashesh R
 
Class based modeling
Md. Shafiuzzaman Hira
 
11 deployment diagrams
Baskarkncet
 
operating system
kabul university
 
Lecture6 activity diagrams
Shahid Riaz
 
Object oriented methodologies
naina-rani
 
object oriented methodologies
Amith Tiwari
 
Software Engineering - chp3- design
Lilia Sfaxi
 
Hci md exam
Desalegn Aweke
 

Viewers also liked (20)

PPT
UML for OOAD
Dang Tuan
 
PPTX
The Ultimate gift
Sebastien Juras
 
PDF
Computer Networks Module II
Ajit Nayak
 
PDF
Computer Networks Module I
Ajit Nayak
 
PPTX
I BELIEVE I CAN FLY
Sebastien Juras
 
PPTX
Enterprise Architecture for Dummies
Sebastien Juras
 
PDF
Software Engineering : Process Models
Ajit Nayak
 
PPTX
The Humming-bird’s share
Sebastien Juras
 
PPTX
Six things to know about your brain to become an expert
Sebastien Juras
 
PDF
Parallel programming using MPI
Ajit Nayak
 
PDF
NS2: AWK and GNUplot - PArt III
Ajit Nayak
 
PPTX
INNOVATION IS NOT AN OPTION
Sebastien Juras
 
PPT
Uml Omg Fundamental Certification 2
Ricardo Quintero
 
PDF
Software Engineering :Behavioral Modelling - II State diagram
Ajit Nayak
 
PDF
Software Engineering : OOAD using UML
Ajit Nayak
 
PDF
Introduction to database-Formal Query language and Relational calculus
Ajit Nayak
 
PDF
Computer Networks Module III
Ajit Nayak
 
PDF
Object Oriented Programming using C++ Part II
Ajit Nayak
 
PDF
Introduction to database-Transaction Concurrency and Recovery
Ajit Nayak
 
PPT
Omg Fundamental Certification 4
Ricardo Quintero
 
UML for OOAD
Dang Tuan
 
The Ultimate gift
Sebastien Juras
 
Computer Networks Module II
Ajit Nayak
 
Computer Networks Module I
Ajit Nayak
 
I BELIEVE I CAN FLY
Sebastien Juras
 
Enterprise Architecture for Dummies
Sebastien Juras
 
Software Engineering : Process Models
Ajit Nayak
 
The Humming-bird’s share
Sebastien Juras
 
Six things to know about your brain to become an expert
Sebastien Juras
 
Parallel programming using MPI
Ajit Nayak
 
NS2: AWK and GNUplot - PArt III
Ajit Nayak
 
INNOVATION IS NOT AN OPTION
Sebastien Juras
 
Uml Omg Fundamental Certification 2
Ricardo Quintero
 
Software Engineering :Behavioral Modelling - II State diagram
Ajit Nayak
 
Software Engineering : OOAD using UML
Ajit Nayak
 
Introduction to database-Formal Query language and Relational calculus
Ajit Nayak
 
Computer Networks Module III
Ajit Nayak
 
Object Oriented Programming using C++ Part II
Ajit Nayak
 
Introduction to database-Transaction Concurrency and Recovery
Ajit Nayak
 
Omg Fundamental Certification 4
Ricardo Quintero
 
Ad

Similar to Uml lecture (20)

PPTX
UML_Lecture.pptxnd bfdjjrnekdddkeeeenekejneje
ssusera6a60c1
 
PDF
UML Overview and Introduction functions.pdf
prathipaceec
 
PPT
Fundamentals of Software Engineering
Madhar Khan Pathan
 
PPTX
UML Chart Designing Methods - Lecture.pptx
lankanking4
 
PPT
Uml report
Franco Valdez
 
PPT
Intro Uml
Kris der Rose
 
PPT
Unified Modeling Language
Debajyoti Biswas
 
PPT
UML- Unified Modeling Language
Shahzad
 
PPT
Object Oriented Modeling and Design with UML
Malek Sumaiya
 
PPTX
Ch 2.1
mahammed rashid
 
PPT
CASE Tools lab.ppt
RAJESH S
 
PPT
Object oriented programming in C++ programming language
SurindraKumar
 
PPT
Introduction to software engineering in data science.ppt
SurindraKumar
 
PPT
Object oriented programming language in software engineering
SurindraKumar
 
PPT
Umldiagram
pavandeep11
 
PPTX
Uml
Vishwa Mohan
 
PPT
Software Engineering1-0-UML.ppt
naqibullah2022faryab
 
PDF
UML, ER and Dimensional Modelling
Stefano Dalla Palma
 
UML_Lecture.pptxnd bfdjjrnekdddkeeeenekejneje
ssusera6a60c1
 
UML Overview and Introduction functions.pdf
prathipaceec
 
Fundamentals of Software Engineering
Madhar Khan Pathan
 
UML Chart Designing Methods - Lecture.pptx
lankanking4
 
Uml report
Franco Valdez
 
Intro Uml
Kris der Rose
 
Unified Modeling Language
Debajyoti Biswas
 
UML- Unified Modeling Language
Shahzad
 
Object Oriented Modeling and Design with UML
Malek Sumaiya
 
CASE Tools lab.ppt
RAJESH S
 
Object oriented programming in C++ programming language
SurindraKumar
 
Introduction to software engineering in data science.ppt
SurindraKumar
 
Object oriented programming language in software engineering
SurindraKumar
 
Umldiagram
pavandeep11
 
Software Engineering1-0-UML.ppt
naqibullah2022faryab
 
UML, ER and Dimensional Modelling
Stefano Dalla Palma
 
Ad

More from Inocentshuja Ahmad (20)

PDF
Bottom up parser
Inocentshuja Ahmad
 
PPTX
7th lec overview - latest
Inocentshuja Ahmad
 
PPTX
6th lec infrared slides
Inocentshuja Ahmad
 
PPTX
5th lec ofdm
Inocentshuja Ahmad
 
PPTX
3rd lec fcss
Inocentshuja Ahmad
 
PPTX
2nd lec wireless terminologies
Inocentshuja Ahmad
 
PPTX
1st lec generations
Inocentshuja Ahmad
 
PPT
4rth lec dsss
Inocentshuja Ahmad
 
DOCX
Long questions
Inocentshuja Ahmad
 
DOCX
Lecture notes on mobile communication
Inocentshuja Ahmad
 
PPTX
Lecture5 mobile communication_short
Inocentshuja Ahmad
 
PPT
8th lec flow and error control
Inocentshuja Ahmad
 
PDF
Chapter 10:Risk and Refinements In Capital Budgeting
Inocentshuja Ahmad
 
PDF
Chapter 9:Capital Budgeting Techniques
Inocentshuja Ahmad
 
PDF
Chapter 5:Risk and Return
Inocentshuja Ahmad
 
DOCX
Question and answer Programming
Inocentshuja Ahmad
 
PDF
Email security &amp; threads
Inocentshuja Ahmad
 
PPT
Chapter03 Top Down Design with Function
Inocentshuja Ahmad
 
Bottom up parser
Inocentshuja Ahmad
 
7th lec overview - latest
Inocentshuja Ahmad
 
6th lec infrared slides
Inocentshuja Ahmad
 
5th lec ofdm
Inocentshuja Ahmad
 
3rd lec fcss
Inocentshuja Ahmad
 
2nd lec wireless terminologies
Inocentshuja Ahmad
 
1st lec generations
Inocentshuja Ahmad
 
4rth lec dsss
Inocentshuja Ahmad
 
Long questions
Inocentshuja Ahmad
 
Lecture notes on mobile communication
Inocentshuja Ahmad
 
Lecture5 mobile communication_short
Inocentshuja Ahmad
 
8th lec flow and error control
Inocentshuja Ahmad
 
Chapter 10:Risk and Refinements In Capital Budgeting
Inocentshuja Ahmad
 
Chapter 9:Capital Budgeting Techniques
Inocentshuja Ahmad
 
Chapter 5:Risk and Return
Inocentshuja Ahmad
 
Question and answer Programming
Inocentshuja Ahmad
 
Email security &amp; threads
Inocentshuja Ahmad
 
Chapter03 Top Down Design with Function
Inocentshuja Ahmad
 

Recently uploaded (20)

PPTX
Life and Career Skills Lesson 2.pptxProtective and Risk Factors of Late Adole...
ryangabrielcatalon40
 
PPTX
ENGLISH 8 REVISED K-12 CURRICULUM QUARTER 1 WEEK 1
LeomarrYsraelArzadon
 
PPTX
How to Configure Refusal of Applicants in Odoo 18 Recruitment
Celine George
 
DOCX
Lesson 1 - Nature and Inquiry of Research
marvinnbustamante1
 
PDF
CAD25 Gbadago and Fafa Presentation Revised-Aston Business School, UK.pdf
Kweku Zurek
 
PDF
Indian National movement PPT by Simanchala Sarab, Covering The INC(Formation,...
Simanchala Sarab, BABed(ITEP Secondary stage) in History student at GNDU Amritsar
 
PDF
IMPORTANT GUIDELINES FOR M.Sc.ZOOLOGY DISSERTATION
raviralanaresh2
 
PPTX
Ward Management: Patient Care, Personnel, Equipment, and Environment.pptx
PRADEEP ABOTHU
 
PDF
COM and NET Component Services 1st Edition Juval Löwy
kboqcyuw976
 
PPTX
How to Add a Custom Button in Odoo 18 POS Screen
Celine George
 
PPTX
Iván Bornacelly - Presentation of the report - Empowering the workforce in th...
EduSkills OECD
 
PPTX
Elo the Hero is an story about a young boy who became hero.
TeacherEmily1
 
PDF
Lean IP - Lecture by Dr Oliver Baldus at the MIPLM 2025
MIPLM
 
PDF
Cooperative wireless communications 1st Edition Yan Zhang
jsphyftmkb123
 
PPTX
How to Manage Wins & Losses in Odoo 18 CRM
Celine George
 
PDF
Wikinomics How Mass Collaboration Changes Everything Don Tapscott
wcsqyzf5909
 
PPTX
Natural Language processing using nltk.pptx
Ramakrishna Reddy Bijjam
 
PDF
DIGESTION OF CARBOHYDRATES ,PROTEINS AND LIPIDS
raviralanaresh2
 
PDF
TechSoup Microsoft Copilot Nonprofit Use Cases and Live Demo - 2025.06.25.pdf
TechSoup
 
PDF
I3PM Case study smart parking 2025 with uptoIP® and ABP
MIPLM
 
Life and Career Skills Lesson 2.pptxProtective and Risk Factors of Late Adole...
ryangabrielcatalon40
 
ENGLISH 8 REVISED K-12 CURRICULUM QUARTER 1 WEEK 1
LeomarrYsraelArzadon
 
How to Configure Refusal of Applicants in Odoo 18 Recruitment
Celine George
 
Lesson 1 - Nature and Inquiry of Research
marvinnbustamante1
 
CAD25 Gbadago and Fafa Presentation Revised-Aston Business School, UK.pdf
Kweku Zurek
 
Indian National movement PPT by Simanchala Sarab, Covering The INC(Formation,...
Simanchala Sarab, BABed(ITEP Secondary stage) in History student at GNDU Amritsar
 
IMPORTANT GUIDELINES FOR M.Sc.ZOOLOGY DISSERTATION
raviralanaresh2
 
Ward Management: Patient Care, Personnel, Equipment, and Environment.pptx
PRADEEP ABOTHU
 
COM and NET Component Services 1st Edition Juval Löwy
kboqcyuw976
 
How to Add a Custom Button in Odoo 18 POS Screen
Celine George
 
Iván Bornacelly - Presentation of the report - Empowering the workforce in th...
EduSkills OECD
 
Elo the Hero is an story about a young boy who became hero.
TeacherEmily1
 
Lean IP - Lecture by Dr Oliver Baldus at the MIPLM 2025
MIPLM
 
Cooperative wireless communications 1st Edition Yan Zhang
jsphyftmkb123
 
How to Manage Wins & Losses in Odoo 18 CRM
Celine George
 
Wikinomics How Mass Collaboration Changes Everything Don Tapscott
wcsqyzf5909
 
Natural Language processing using nltk.pptx
Ramakrishna Reddy Bijjam
 
DIGESTION OF CARBOHYDRATES ,PROTEINS AND LIPIDS
raviralanaresh2
 
TechSoup Microsoft Copilot Nonprofit Use Cases and Live Demo - 2025.06.25.pdf
TechSoup
 
I3PM Case study smart parking 2025 with uptoIP® and ABP
MIPLM
 

Uml lecture

  • 2. Acknowledgements  Slides material are taken from different sources including:  the slides of Mr. Shiyuan Jin’s UML class, EEL 4884, Fall 2003.  Object-Oriented and Classical Software Engineering, Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach  UML resource page http://www.uml.org/
  • 3. Outline  What is UML and why we use UML?  How to use UML diagrams to design software system?  What UML Modeling tools we use today?
  • 4. What is UML and Why we use UML?  UML → “Unified Modeling Language”  Language: express idea, not a methodology  Modeling: Describing a software system at a high level of abstraction  Unified: UML has become a world standard Object Management Group (OMG): www.omg.org
  • 5. What is UML and Why we use UML?  More description about UML:  It is a industry-standard graphical language for specifying, visualizing, constructing, and documenting the artifacts of software systems  The UML uses mostly graphical notations to express the OO analysis and design of software projects.  Simplifies the complex process of software design
  • 6. What is UML and Why we use UML?  Why we use UML?  Use graphical notation: more clearly than natural language (imprecise) and code (too detailed).  Help acquire an overall view of a system.  UML is not dependent on any one language or technology.  UML moves us from fragmentation to standardization.
  • 7. What is UML and Why we use UML? 1997: UML 1.0, 1.1 1996: UML 0.9 & 0.91 1995: Unified Method 0.8 Other methods Booch ‘91 Booch ‘93 OMT - 2 OMT - 1 Year Version 2003: UML 2.0 2001: UML 1.4 1999: UML 1.3
  • 8. How to use UML diagrams to design software system?  Types of UML Diagrams:  Use Case Diagram  Class Diagram  Sequence Diagram  Collaboration Diagram  State Diagram This is only a subset of diagrams … but are most widely used
  • 9. Use-Case Diagrams  A use-case diagram is a set of use cases  A use case is a model of the interaction between  External users of a software product (actors) and  The software product itself  More precisely, an actor is a user playing a specific role  describing a set of user scenarios  capturing user requirements  contract between end user and software developers
  • 10. Use-Case Diagrams Library System Borrow Order Title Fine Remittance Client Employee Supervisor Boundary Actor Use Case
  • 11. Use-Case Diagrams  Actors: A role that a user plays with respect to the system, including human users and other systems. e.g., inanimate physical objects (e.g. robot); an external system that needs some information from the current system.  Use case: A set of scenarios that describing an interaction between a user and a system, including alternatives.  System boundary: rectangle diagram representing the boundary between the actors and the system.
  • 12. Use-Case Diagrams  Association: communication between an actor and a use case; Represented by a solid line.  Generalization: relationship between one general use case and a special use case (used for defining special alternatives) Represented by a line with a triangular arrow head toward the parent use case.
  • 13. Use-Case Diagrams Extend: a dotted line labeled <<extend>> with an arrow toward the base case. The extending use case may add behavior to the base use case. The base class declares “extension points”. <<extend>> Include: a dotted line labeled <<include>> beginning at base use case and ending with an arrows pointing to the include use case. The include relationship occurs when a chunk of behavior is similar across more than one use case. Use “include” in stead of copying the description of that behavior. <<include>>
  • 14. Use-Case Diagrams Figure 16.12 The McGraw-Hill Companies, 2005
  • 15. Use-Case Diagrams  Both Make Appointment and Request Medication include Check Patient Record as a subtask (include)  The extension point is written inside the base case Pay bill; the extending class Defer payment adds the behavior of this extension point. (extend)  Pay Bill is a parent use case and Bill Insurance is the child use case. (generalization) (TogetherSoft, Inc)
  • 16. Class diagram  A class diagram depicts classes and their interrelationships  Used for describing structure and behavior in the use cases  Provide a conceptual model of the system in terms of entities and their relationships  Used for requirement capture, end-user interaction  Detailed class diagrams are used for developers
  • 17. Class diagram  Each class is represented by a rectangle subdivided into three compartments  Name  Attributes  Operations  Modifiers are used to indicate visibility of attributes and operations.  ‘+’ is used to denote Public visibility (everyone)  ‘#’ is used to denote Protected visibility (friends and derived)  ‘-’ is used to denote Private visibility (no one)  By default, attributes are hidden and operations are visible.
  • 18. Class diagram Account_Name - Customer_Name - Balance +addFunds( ) +withDraw( ) +transfer( ) Name Attributes Operations
  • 19. OO Relationships  There are two kinds of Relationships  Generalization (parent-child relationship)  Association (student enrolls in course)  Associations can be further classified as  Aggregation  Composition
  • 20. Subtype2 Supertype Subtype1 OO Relationships: Generalization -Inheritance is a required feature of object orientation -Generalization expresses a parent/child relationship among related classes. -Used for abstracting details in several layers Regular Customer Loyalty Customer CustomerExample:
  • 21.  Represent relationship between instances of classes  Student enrolls in a course  Courses have students  Courses have exams  Etc.  Association has two ends  Role names (e.g. enrolls)  Multiplicity (e.g. One course can have many students)  Navigability (unidirectional, bidirectional) OO Relationships: Association
  • 22. Association: Multiplicity and Roles University Person 1 0..1 * * Multiplicity Symbol Meaning 1 One and only one 0..1 Zero or one M..N From M to N (natural language) * From zero to any positive integer 0..* From zero to any positive integer 1..* From one to any positive integer teacheremployer Role Role “A given university groups many people; some act as students, others as teachers. A given student belongs to a single university; a given teacher may or may not be working for the university at a particular time.” student
  • 23. Class diagram [from UML Distilled Third Edition]
  • 24. OO Relationships: Composition Class W Class P1 Class P2 Association Models the part–whole relationship Composition Also models the part–whole relationship but, in addition, Every part may belong to only one whole, and If the whole is deleted, so are the parts Example: A number of different chess boards: Each square belongs to only one board. If a chess board is thrown away, all 64 squares on that board go as well. Whole Class Part Classes Example Figure 16.7 The McGraw-Hill Companies, 2005 [From Dr.David A. Workman]
  • 25. OO Relationships: Aggregation Class C Class E1 Class E2 AGGREGATION Container Class Containee Classes Bag Apples Milk Example Aggregation: expresses a relationship among instances of related classes. It is a specific kind of Container-Containee relationship. express a more informal relationship than composition expresses. Aggregation is appropriate when Container and Containees have no special access privileges to each other. [From Dr.David A. Workman]
  • 26. Aggregation vs. Composition CompositionComposition is really a strong form of association components have only one owner components cannot exist independent of their owner components live or die with their owner e.g. Each car has an engine that can not be shared with other cars. Aggregations may form "part of" the association, but may not be essential to it. They may also exist independent of the aggregate. e.g. Apples may exist independent of the bag.
  • 27. Good Practice: CRC Card Class Responsibility Collaborator  easy to describe how classes work by moving cards around; allows to quickly consider alternatives.
  • 28. Interaction Diagrams  show how objects interact with one another  UML supports two types of interaction diagrams  Sequence diagrams  Collaboration diagrams
  • 29. Sequence Diagram(make a phone call) Caller Phone Recipient Picks up Dial tone Dial Ring notification Ring Picks up Hello
  • 30. Sequence Diagram:Object interaction Self-CallSelf-Call: A message that an Object sends to itself. Condition: indicates when a message is sent. The message is sent only if the condition is true. Iteration Condition A B Synchronous Asynchronous Transmission delayed Self-Call [condition] remove() *[for each] remove()
  • 31. Sequence Diagrams – Object Life Spans  Creation  Create message  Object life starts at that point  Activation  Symbolized by rectangular stripes  Place on the lifeline where object is activated.  Rectangle also denotes when object is deactivated.  Deletion  Placing an ‘X’ on lifeline  Object’s life ends at that point Activation bar A B Create X Deletion Return Lifeline
  • 32. Sequence Diagram User Catalog Reservations 1: look up () 2: title data () 3: [not available] reserve title () 4 : title returned () 5: hold title () 5 : title available () 6 : borrow title () 6 : remove reservation () •Sequence diagrams demonstrate the behavior of objects in a use case by describing the objects and the messages they pass. •The horizontal dimension shows the objects participating in the interaction. •The vertical arrangement of messages indicates their order. •The labels may contain the seq. # to indicate concurrency. Message
  • 33. Interaction Diagrams: Collaboration diagrams User Catalog Reservations start 1: look up 2: title data 3 : [not available] reserve title 4 : title returned 5 : hold title 6 : borrow title 6: remove reservation 5: title available Collaboration diagrams are equivalent to sequence diagrams. All the features of sequence diagrams are equally applicable to collaboration diagrams Use a sequence diagram when the transfer of information is the focus of attention Use a collaboration diagram when concentrating on the classes
  • 34. State Diagrams (Billing Example) State Diagrams show the sequences of states an object goes through during its life cycle in response to stimuli, together with its responses and actions; an abstraction of all possible behaviors. Unpaid Start End Paid Invoice created paying Invoice destroying
  • 35. State Diagrams (Traffic light example) Yellow Red Green Traffic Light State Transition Event Start
  • 36. What UML Modeling tools we use today?  List of UML tools http://en.wikipedia.org/wiki/List_of_UML_tools  ArgoUML: http://argouml.tigris.org/  Rational Rose (www.rational.com) by IBM  UML Studio 7.1 ( http://www.pragsoft.com/) by Pragsoft Corporation: Capable of handling very large models (tens of thousands of classes). Educational License US$ 125.00; Freeware version.  TogetherSoft Control Center; TogetherSoft Solo ( http://www.borland.com/together/index.html) by Borland
  • 37. Conclusion  UML is a standardized specification language for object modeling  Several UML diagrams:  use-case diagram: a number of use cases (use case models the interaction between actors and software)  Class diagram: a model of classes showing the static relationships among them including association and generalization.  Sequence diagram: shows the way objects interact with one another as messages are passed between them. Dynamic model  State diagram: shows states, events that cause transitions between states. Another dynamic model reflecting the behavior of objects and how they react to specific event  There are several UML tools available