SOOAD
Unit-II-
Introduction To UML
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
UML Basics
Design Model
Process Model
Deployment Model
®
What is a Model?
“Simplification of reality” – high level logical
representation of a system (from a perspective)
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.
Principles of Modeling
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)
UML Diagrams
• UML Diagrams are used to create different types of
models.
• Different diagrams represent different views of the system.
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.
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
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
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
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
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
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
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
Things in UML
4 types of things in UML
Structural things
Behavioral things
Grouping things
Annotational things
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
Different types of Models/Views in UML
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
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
UML Interface Notation
Structural Things in UML
Structural Things in UML (visio)
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
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
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.
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
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)
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
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
Behavioral Things in UML
2) State Machine
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
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
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
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
1) Dependency
E.g. Applet class Graphics class
Java servlet HttpServletRequest,
HttpServletResponse
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
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
3) Generalization
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
4) Realization
MS Visio
Right click on class – shape display options – show
realization link
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
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
Different Views/Models in UML
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
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
Different Views/Models in UML
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
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)
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
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
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
Diagrams in UML
Class Diagram
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
Diagrams in UML
Sequence diagram
Diagrams in UML
Collaboration diagram (Communication diagram)
emphasizes the structural org. of objects that send &
receive messages.
Used to created dynamic/behavioral model
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
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
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
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
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.
Iterative and Incremental
Rational Unified Process (RUP)
Is most popular iterative OO software development
methodology (by IBM)
Within each iteration, different SDLC tasks are
performed
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)
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

UNIFIED MODELING LANGUAGE

  • 1.
  • 2.
    Building blocks ofUML 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
  • 3.
    UML Basics Design Model ProcessModel Deployment Model ®
  • 4.
    What is aModel? “Simplification of reality” – high level logical representation of a system (from a perspective)
  • 5.
    Advantages of creatinga 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.
  • 6.
  • 7.
    What is UML? “UMLis 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 • UMLDiagrams are used to create different types of models. • Different diagrams represent different views of the system.
  • 9.
    What is UML? UMLused 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 UMLis 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? UMLis 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? UMLis 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 UMLfor 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 UMLfor 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 ofUML 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 BuildingBlocks 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 4types of things in UML Structural things Behavioral things Grouping things Annotational things
  • 18.
    Structural Things inUML 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
  • 19.
    Different types ofModels/Views in UML
  • 20.
    Structural Things inUML 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 inUML 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
  • 22.
  • 23.
  • 24.
  • 25.
    Structural Things inUML 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 inUML 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 inUML 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 inUML 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 inUML 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 inUML 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 inUML 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
  • 32.
    Behavioral Things inUML 2) State Machine
  • 33.
    Grouping Things inUML • Used to organize things in UML 1) Package Container (namespace) for organizing group of related things Notation: tabbed folder with name
  • 34.
    Annotational Things inUML 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 Usedto 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 relationshipbetween 2 things Change to one thing (independent thing) affects the other things (dependent thing) Graphical notation: dashed line (directed) from dependent to independent
  • 37.
    1) Dependency E.g. Appletclass Graphics class Java servlet HttpServletRequest, HttpServletResponse
  • 38.
    2) Association Structural relationshipamong 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
  • 40.
  • 41.
    4) Realization Semantic relationshipbetween 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
  • 42.
    4) Realization MS Visio Rightclick on class – shape display options – show realization link
  • 43.
    Different Views/Models inUML 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 inUML 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
  • 45.
  • 46.
    Different Views/Models inUML 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 inUML 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
  • 48.
  • 49.
    Different Views/Models inUML 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 Diagramis 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 Whatis 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 Usecase 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 ClassDiagram 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
  • 54.
  • 55.
    Diagrams in UML Sequencediagram Represents Interaction among Objects (when system is running) set of messages exchanged among set of objects (having links). Used to created dynamic/behavioral model
  • 56.
  • 57.
    Diagrams in UML Collaborationdiagram (Communication diagram) emphasizes the structural org. of objects that send & receive messages. Used to created dynamic/behavioral model
  • 58.
    Diagrams in UML Activitydiagram 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-orientedMethodology 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 - WaterfallModel 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 developedin 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.
  • 63.
  • 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