2. Building blocks of UML
Things in UML - Structural things, Behavioral
things
Different types of models in UML
Different Diagrams in UML
OOAD Methodology/Rational Unified Process
(RUP)
Topic Outline
4. What is a Model?
“Simplification of reality” – high level logical
representation of a system (from a perspective)
5. Advantages of creating a Model
1. Permits you to specify the structure or behavior of a
system.
2. Helps you to visualize a system
3. Provides template that guides you in constructing a
system.
4. Helps to understand complex system – part by part
5. Document the decisions – that you have made.
7. What is UML?
“UML is a graphical language for building object-
oriented analysis & design – OOAD Models”
Standardized by Object Management Group (OMG)
in 1997 and in 2005 standardized by ISO
In 1990’s 3 different OOAD modeling techniques
prevalent (by 3 amigos/pioneers)
OMT (Object Modeling Technique) by James
Rumbaugh
OOAD by Grady Booch
OOSE by Ivar Jacobson
Unified into – 1 single/standardized UML (1997)
8. UML Diagrams
• UML Diagrams are used to create different types of
models.
• Different diagrams represent different views of the system.
9. What is UML?
UML used to model diverse range of system -
Enterprise Info. System, Web-based application, Mobile
Apps, Embedded systems
The UML is a language for
• Visualizing
• Specifying
• Constructing
• Documenting
the artifacts of a software-intensive system.
10. Advantage of UML
UML is a language
standardized modeling language
Rules - syntax & semantics of UML diagrams
Well-formed models (as per the Syntax)
Benefit: Diagram created by 1 company/person can
be understood by Other company/person
11. Advantage of UML?
UML is a language for Visualizing
Visualize a system from different angles – structure
and behavior, use-case view
High-level conceptual understanding
Understand the components of system – and their
interaction
12. Advantage of UML?
UML is a language for Specifying
• building models that are precise, unambiguous &
complete
• Specify all analysis, design decisions
• Specify requirements, structure, behavior and
implementation details
13. Advantage of UML
UML for Constructing
• UML Models – mapped – to different target
programming Languages like Java, C++ and .NET
• Code generation - Forward Engineering
• CASE tools like IBM Rational Software Architect
14. Advantage of UML
UML for Documenting
• Healthy software org. (CMM/ISO standards based)
• Produces all artifacts apart from executable code
• UML Models helps in documentation of
• Requirements, Software Architecture
• Analysis and Design decisions
15. Conceptual Model of UML
To learn UML language, requires 3 elements of UML
UML building blocks
Rules: that dictate how to put those building blocks
together
Common mechanism (techniques): that apply
throughout UML
16. Things in UML
Building Blocks
1. Things (abstractions of the model)
2. Relationships (tie things together)
3. Diagrams – contain UML things connected using
relationships
Basic OO Building Blocks
For Creating UML diagrams
17. Things in UML
4 types of things in UML
Structural things
Behavioral things
Grouping things
Annotational things
18. Structural Things in UML
Nouns (from problem definition)
Static parts of model, representing elements that are
either conceptual or physical
7 types of structural things in UML
Class
Interface
Collaboration
Use-case
Active class
Component
Node
20. Structural Things in UML
Class
is important OO building block
Used to create Class diagram (Structural Model)
Desc. of set of objects with same - attributes,
operations, relationships & Meaning
21. Structural Things in UML
Interface
collection of operations that specify service of a
class (externally visible behavior)
It is Specification of functionality – implemented
by Class
Clean separation between – Specification & Impl.
E.g. IFigure – operations- draw(), move(), color()
It can be implemented by different classes – Circle,
Rectangle, Triangle
25. Structural Things in UML
Collaboration
Represents - interaction of many things in UML
All elements of collaboration work together to
provide Overall behavior
E.g. To place order – many objects are required to
interact (collaborate) – Customer, Item, Shopping
Cart, Order
26. Structural Things in UML
Usecase
Distinct functional requirement
set of sequence of actions, that system performs –
with observable result of value to actor (end-user)
Notation: ellipse with solid lines, and its name
27. Structural Things in UML
Active Class
It is a physical thing (used in Dynamic Model)
is a class whose objects own or more processes or
threads
Active objects can start or control that flow.
28. Structural Things in UML
Component (Physical Thing)
Physical & replaceable part of system
Implements (realizes) of set of interfaces
It contains (represents physical packaging) – other
things like classes, interfaces, packages
UML Notation:
Rectangle with Tabs
29. Structural Things in UML
Node (Physical Thing)
is a physical element that exists at run-time &
represents a computational resource
Having some memory & processing capability
Implements (realizes) of set of interfaces
Linux Server SMTP server
(Mail server)
30. Behavioral Things in UML
Dynamic model - Represents behavior of system over
time and space
1) Interaction
consists of a set of messages exchanged among
objects to achieve a purpose OR functionality
links (the connection among objects) is shown
Notation: directed line including the name of
operation
31. Behavioral Things in UML
2) State Machine
Represents change in state of object over time
Dynamic behavior of a Class (with response to events)
State-Notation: is rounded rectangle with name
33. Grouping Things in UML
• Used to organize things in UML
1) Package
Container (namespace) for organizing group of related
things
Notation: tabbed folder with name
34. Annotational Things in UML
Comments you may apply to describes & remarks any
element in a model
explanatory parts of UML models
Note
Notation: rectangle with a dog-earned corner with a
textual comment
35. Relationships in UML
Used to connect/relate various things in UML to
create diagram/model of the proposed system
4 kinds of relationship in UML
1. Dependency
2. Association
3. Generalization
4. Realization
36. 1) Dependency
Semantic relationship between 2 things
Change to one thing (independent thing) affects the
other things (dependent thing)
Graphical notation: dashed line (directed) from
dependent to independent
38. 2) Association
Structural relationship among classes
Both classes are having equal status – dependent on
each other
Graphical Notation-solid line joining two classes
It can contain adornments like multiplicity e.g. 1-M
39. 3) Generalization
specialization (inheritance) relationship among 2
classes
Child class inherits the structure & behavior of the
parent
Graphical Notation - solid line with hollow arrowhead
pointing to parent
41. 4) Realization
Semantic relationship between 2 elements –
1 element specifies a contract, another element
implements (fulfills) contract
E.g. relation betwen Interface and implementing Class
Notation: dashed directing line with solid arrowhead
43. Different Views/Models in UML
Explain the different types of Model in UML?
OR
Explain the different views of System addressed by
UML
OR
Explain 4+1 views of System addressed by UML
44. Different Views/Models in UML
Structural View/Model
static structural model of the system using:
- packages, classes, objects, attributes, operations and
relationships between classes.
Used to identify imp. building blocks of the system
and relationship between them.
Created using UML diagrams – Class diagram,
Package diagram and Object diagram
46. Different Views/Models in UML
Dynamic View/Behavioral View/Model
emphasizes the dynamic / behavioral aspects of the
system
Behavior of system with respect to time – to handle
external events/provide functionality of software
Shows – interaction among objects
Change in state of objects and system
Created using UML diagrams – Sequence diagram,
Communication diagram, Activity diagram and State
Diagram
47. Different Views/Models in UML
Process
View
Deployme
nt View
Logical
View
Use-Case
View
Implementati
on View
End-user
Functionality
Programmers
Software management
Performance, scalability, throughput
System integrators
System topology, delivery,
installation, communication
System engineering
Analysts/Designers
Structure
49. Different Views/Models in UML
Implementation View
Represent the implementation details – components,
their interaction and relationships
System from a programmer's perspective
E.g. Java application – how many packages/modules
Deployment View
Installation/deployment details of system
Which component is going to run on which
server/machine with respect to system
topology/architecture
50. Diagrams in UML
Diagram is a graphical presentation of a set of UML
elements
• Drawn as connected graph of vertices (things) and
Arcs (relationships)
We draw diagram to visualize (model) a system from
different perspectives (angles)
51. Diagrams in UML
What is Relation between UML diagram and Model ?
UML Diagram – used to create a model of system
E.g. UML Use case diagram is used to create
Requirements model of the system.
No real-life complex system can be completely
understood from only 1 perspective
Different diagrams-different views of system
52. Diagrams in UML
Use case Diagram
Shows a set of use-cases & actors & their
relationships.
Used to create requirements view for end
users/customers.
Central, most important view, created first.
Other views/models are based on this model
53. Diagrams in UML
Class Diagram
Represents static-design view of system,
Shows building blocks and relationship between them
in object-orientated system.
Shows a set of classes, interfaces, packages,
collaborations & their relationships.
Used to create Structural Model
55. Diagrams in UML
Sequence diagram
Represents Interaction among Objects (when system
is running)
set of messages exchanged among set of objects
(having links).
Used to created dynamic/behavioral model
57. Diagrams in UML
Collaboration diagram (Communication diagram)
emphasizes the structural org. of objects that send &
receive messages.
Used to created dynamic/behavioral model
58. Diagrams in UML
Activity diagram
Shows flow of control from activity to activity within
system (similar to Flow-chart)
Represent high-level business processes, explain logic
involved in system
59. Software development – Best Practices
6 best Practices of Modern Software Engineering
(Based on experience of IT Companies on live
projects):
Develop Iteratively (incremental)
Manage requirements
Employ a component-based architecture (re-use)
Model software visually (using UML)
Continuously verify quality
Control changes
60. Object Oriented Methodology
Object-oriented Methodology using OOAD is a
popular technical approach to analyzing, designing
Software -
- By applying object oriented visual modeling through
out SDLC
Better stakeholder communication and product
quality.
Object-oriented Methodology uses an iterative and
incremental approach of system development
61. Traditional - Waterfall Model
Waterfall Model of System Development
When analysis is complete, then only design will
begin,
Problems remain hidden through Analysis, Design and
Implementation, discovered LATE
62. Iterative Development
Software developed in Iterations (parts/versions)
More flexible (and less risky) - go several times
through the various SDLC phases
Software lifecycle is a succession of iterations,
through which the software develops incrementally.
64. Rational Unified Process (RUP)
Is most popular iterative OO software development
methodology (by IBM)
Within each iteration, different SDLC tasks are
performed
65. Rational Unified Process (RUP)
System is developed into 4 phases, each consisting of
one or more executable iterations of the software
Inception Phase –
Feasibility study and scope of system
Use case model, project plan, initial risk assessment
Elaboration Phase –
Analysis and Design Model – structural &
behavioral model
Class Diagram, Activity Diagram, Sequence
Diagram
Prototype is Developed (limited coding)
66. Rational Unified Process (RUP)
Last 2 phases:
Construction Phase –
Main emphasis is coding/programming
With iterations – Use software component
Analysis, Design UML Diagrams/Models – more
details added/refined
Transition Phase –
from development into production (deployment)
include training the end users