2. Introduction
Object:
Real world entities.
Heart of object oriented approach
Object orientation:
Viewing and modeling the world or system as a set of
interacting & interrelated objects.
Object oriented modeling:
Focuses on the designing of object oriented systems.
Model:
It can be defined as an abstraction of something before it is
actually developed ,installed or put into practice.
A model is an abstraction of something for the purpose of
understanding it before building it.
2/7/2017 2jaya kolekar
3. Introduction
OOA(Object Oriented Analysis):
It is discovery and documentation of the key problem
domain classes which are related with developing and
OOM of the problem domain.
Benefits of OOA
Maintainability
Reusability
Productivity
OOD(Object Oriented Design):
It is concerned with developing OOM of s/w to
implement the requirement identified by OOA
2/7/2017 3jaya kolekar
4. OO Themes
Abstraction:
It represents behavior of real world entity.
Manages complexity by concentrating on essential or
important aspects making an entity different from others
Encapsulation:
Wrapping of data
Separates implementation from users or clients
Modularity(combining data & behavior):
Break up complex systems into small, self contained and
easily understandable pieces.
Binding data together & hiding them outside world.
2/7/2017 4jaya kolekar
5. OO Themes
Sharing
Inheritance.
Common structure to be shared among several similar
subclasses without redundancy.
Synergy
Identity, classification, polymorphism and inheritance
characterize OO language & use all together.
2/7/2017 5jaya kolekar
6. Importance of modeling
Models help us to visualize the system as it is or as we
want it to be.
Models permit us to specify the structure or behavior
or a system.
Model gives us a template that guides us in
constructing a system.
Models document the decision we have made.
2/7/2017 6jaya kolekar
7. Four principles of modeling
The choice of what models to create has a profound
influence on how a problem is attacked & how a
solution is shaped.
Every model may be expressed at different levels of
precision.
The best models are connected to reality
No single model is sufficient .Every
2/7/2017 7jaya kolekar
9. RUMBAUGH ETAL’S OBJECT MODELING
TECHNIQUE
Developed in 1991
Describes a method for the analysis, design and
implementation of a system using an object-oriented
techniques.
OMT is a fast , intuitive approach for identifying &
modeling all the objects making up a system
Shows dynamic behavior of objects within system
2/7/2017 9jaya kolekar
10. RUMBAUGH ETAL’S OBJECT MODELING
TECHNIQUE
OMT consists of 4 phases, which can be performed
iteratively
Analysis: analyst builds a model of the real-world situation showing its
important properties
System design: target system is organized into subsystems based on
analysis structure & proposed architecture
Object design: focus of the object design is the data structures &
algorithms needed to implement each class
Implementation: object classes & relationships developed during
object design finally translated into programming language, database
or h/w implementation.
2/7/2017 10jaya kolekar
11. RUMBAUGH ETAL’S OBJECT MODELING
TECHNIQUE
OMT consists of 3 model:
An Object model:
Describes the structure of objects in a system
represented graphically with an object diagram
Object diagram contains
Class
Attribute
Operation
Inheritance
2/7/2017 11jaya kolekar
12. RUMBAUGH ETAL’S OBJECT MODELING
TECHNIQUE
An Object model: bank system
Client
Firstname
lastname
Account
Number
Balance
Deposit
withDraw
Create Transaction
Transaction
transDate
Amount
postBalance
Saving Account
Checking Account
withDraw Checking
SavingAccount
Client
Account
classes
Specialization
Account
Transaction
Association
2/7/2017 12jaya kolekar
13. RUMBAUGH ETAL’S OBJECT MODELING
TECHNIQUE
OMT consists of 3 model:
Dynamic model:
Depicts the dynamic aspects of the system
Portrays the changes occurring in the states of various objects with
the events
It is represented using a state transition diagram
State diagram contains
State
Sub/superstate
Event
Action
Activity
2/7/2017 13jaya kolekar
14. RUMBAUGH ETAL’S OBJECT MODELING
TECHNIQUE
Dynamic model: bank system
Nothing is
selected
Selected checking
or saving account
Select transaction
type (withdrawal,
deposit)
confirmation
Enter the
amount
Select checking
account
Account has
been selected
Initial state
Event
States
Transition Action
2/7/2017 14jaya kolekar
15. RUMBAUGH ETAL’S OBJECT MODELING
TECHNIQUE
OMT consists of 3 model:
Functional model:
Describes the data transformations of the system
Describes the flow of data & changes that occur to the data
throughout the system
Described using DFD(Data Flow Diagram)
DFD contains
Process
Data store
Dataflow
External entity
2/7/2017 15jaya kolekar
16. RUMBAUGH ETAL’S OBJECT MODELING
TECHNIQUE
Functional model:
ATM card
reader
User
User keyboard
entry
User screen
selection
Select bank
Select card
Verify pwd
Select account
Update account
Carsatium
Account
Bank code
process
password
Account type
Dataflow
Amount, transaction
type
Bank
database
Bad Bank code
Invalid card code
Card auth
Bad pwd
Bad
account
balance
Cash receipt
Transaction failed
External entity
Card code
ATM SYSTEM
2/7/2017 16jaya kolekar
17. Conceptual model of UML
As UML, describes the real time systems it is very
important to make a conceptual model & then process
gradually .
Conceptual model of UML can be mastered by
learning the following three major elements
UML building blocks
Rules
Common mechanisms
2/7/2017 17jaya kolekar
18. Conceptual model of UML
Building Blocks
The vocabulary of the UML encompasses three kinds of
building blocks
Things
Basic element of UML
Relationships
Ties the things together
Diagrams
group interesting collections of things.
2/7/2017 18jaya kolekar
19. Conceptual model of UML
Things in UML
Basic elements in a model in Object Oriented
the abstractions that are first-class citizens in a model
Use them to write well formed models
Things can be
Structural Things
Behavioral Things
Grouping Things
Annotational Things
2/7/2017 19jaya kolekar
20. Conceptual model of UML
Structural Things
nouns of UML models
Represents physical or conceptual elements
Static part of the model
List of structural things
Class
Active class
Interface
Collaboration
Use case
Component
Node
artifacts
2/7/2017 20jaya kolekar
21. Conceptual model of UML
Class
It is a description of a set of objects that share the same
attributes, operations, relationships, and semantics.
It implements one or more interfaces
Graphically, a class is rendered as a rectangle, including
its name, attributes, and operations.
Notation and example of class window
Class name
Attributes
operations
2/7/2017 21jaya kolekar
22. Conceptual model of UML
Active Class
Its object own one or more processes or threads which
initiate control activity.
Graphically, an active class is rendered as a class with
double lines on the left and right
Notation and example of active class EventManager
Class name
Attributes
operations
2/7/2017 22jaya kolekar
23. Conceptual model of UML
Interface
It is a collection of operations that specify a service of a
class or component
An interface might represent the complete behavior of a
class or component or only a part of that behavior.
Graphically, an interface rendered as class with the
keyword «interface» above the name or circle.
Notation and example of interface IWindow
<<interface>>
Name
Attributes
operations
Provided
Required
2/7/2017 23jaya kolekar
24. Conceptual model of UML
Collaboration
defines an interaction and is a society of roles and other elements
that work together to provide some cooperative behavior that's
bigger than the sum of all the elements.
represent the implementation of patterns that make up a system.
Graphically, a collaboration is rendered as an ellipse with dashed
lines with its name.
Notation and example of Collaboration chain or responsibility
Collaboration
2/7/2017 24jaya kolekar
25. Conceptual model of UML
Use case
Represents a set of actions performed by a system for a specific
goal
A use case is realized by a collaboration
Graphically, a use case is rendered as an ellipse with solid lines,
including only its name
Notation & example of use case Place order
Use case
2/7/2017 25jaya kolekar
26. Conceptual model of UML
Component
Describes physical part of a system.
It is a modular part of the system design that hides its implementation
behind a set of external interfaces.
Within a system, components sharing the same interfaces can be
substituted while preserving the same logical behavior
Graphically, a component is rendered like a class with a special icon in
the upper right corner( two tabs)
Notation & example of component Abc
Component
name
Abc.java
2/7/2017 26jaya kolekar
27. Conceptual model of UML
Node
It is a physical element that exists at run time and represents a
computational resource, generally having at least some memory and,
often, processing capability.
A set of components may reside on a node and may also migrate from
node to node.
Graphically, a node is rendered as a cube, including only its name
Notation & example of node
servernode
2/7/2017 27jaya kolekar
28. Conceptual model of UML
Artifact
It is a physical and replaceable part of a system that contains physical
information ("bits").
artifacts are source code files, executables, and scripts.
An artifact typically represents the physical packaging of source or run-
time information.
Graphically, an artifact is rendered as a rectangle with the keyword
«artifact» above the name
Notation & example of artifact
<<artifact>>
name
2/7/2017 28jaya kolekar
29. Conceptual model of UML
Behavioral Things
The dynamic parts of UML models
These are the verbs of a model, representing behavior
over time and space.
List of Behavioral Things
Interaction
State Machine
Activity
2/7/2017 29jaya kolekar
30. Conceptual model of UML
Interaction
It is a behavior that comprises a set of messages exchanged
among a set of objects or roles within a particular context
to accomplish a specific purpose.
An interaction involves a number of other elements,
including messages, actions, and connectors .
Graphically, a message is rendered as a directed line, with
the name of its operation.
Example
Message name
2/7/2017 30jaya kolekar
31. Conceptual model of UML
State Machine
It is a behavior that specifies the sequences of states an object or
an interaction goes through during its lifetime in response to
events.
The behavior of an individual class or a collaboration of classes
may be specified with a state machine.
A state machine involves a number of other elements, including
states, transitions, events, and activities
Graphically, a state is rendered as a rounded rectangle,
including its name and its substates, if any.
Example
State name
2/7/2017 31jaya kolekar
32. Conceptual model of UML
Activity
It is a behavior that specifies the sequence of steps a computational
process performs.
The focus is on the flows among steps without regard to which object
performs each step.
A step of an activity is called an action.
Graphically, an activity is rendered as a rounded rectangle with a
name indicating its purpose.
Example
Activity name
2/7/2017 32jaya kolekar
33. Conceptual model of UML
Grouping Things
The organizational parts of UML .
Boxes into which a model can be decomposed.
List of Grouping Thing
Package
2/7/2017 33jaya kolekar
34. Conceptual model of UML
Package
It is the only one grouping thing available for gathering
structural & behavioral things.
It exists only at development time.
Graphically, a package is rendered as a tabbed folder,
including only its name and, sometimes, its contents.
Example
Package name
2/7/2017 34jaya kolekar
35. Conceptual model of UML
Annotational Things
The explanatory parts of UML models.
Used to describe, illuminate, and remark about any
element in a model.
There is one primary kind of annotational thing, called
a note.
2/7/2017 35jaya kolekar
36. Conceptual model of UML
Note
It is used to render comments, constraints etc of an UML
element.
Graphically, a note is rendered as a rectangle with a dog-
eared corner, together with a textual or graphical
comment.
Example
2/7/2017 36jaya kolekar
37. Conceptual model of UML
Relationship
It shows how elements are associated with each other.
Describes the functionality of an application.
Types of relationships
Dependency
Association
Generalization
Realization
Aggregation
Composition
Multiplicity
2/7/2017 37jaya kolekar
38. Conceptual model of UML
Dependency
It is a semantic relationship between two model
elements in which a change to one (independent) may
affect the semantics of the other (dependent) element .
Graphically, a dependency is rendered as a dashed line,
possibly directed, and including a label.
Example
Indepen
dent
class
Depend
ent class
Person
Has
read(book)
Book
2/7/2017 38jaya kolekar
39. Conceptual model of UML
Association
It is a structural relationship among classes that
describes a set of links.
A link being a connection among objects that are
instances of the classes.
Graphically, an association is rendered as a solid line,
including a label, adornments, such as multiplicity and
end names
Example
Class1 Class2 Person
Company
Association name
Works for
Employee employer
* 1
2/7/2017 39jaya kolekar
40. Conceptual model of UML
Generalization
It a specialization/generalization relationship in which
the specialized element (child) builds on the specification
of the generalized element (parent).
Graphically, a generalization relationship is rendered as a
solid line with a hollow arrowhead pointing to the parent.
Example
child2child1
parent
SavingCurrent
Account
2/7/2017 40jaya kolekar
41. Conceptual model of UML
realization
It is a semantic relationship between classifiers, wherein
one classifier specifies a contract that another classifier
guarantees to carry out.
It is rendered as a cross between a generalization &
dependency relationship.
Graphically, a realization relationship is rendered as a
cross between a generalization and a dependency
relationship
Example
classifier2
classifier1
Printer
Printer
setup
2/7/2017 41jaya kolekar
42. Conceptual model of UML
aggregation
Aggregation is a special kind of association,
representing a structural relationship between a whole
and its parts.
The contained classes are not strongly dependent on the
life cycle of the container.
Graphically , aggregation rendered as a line from the
parent class to child class with diamond shape near
parent class
Example
Parent
Child
College
Depart
ment
2/7/2017 42jaya kolekar
43. Conceptual model of UML
composition
very similar to aggregation relationship.
The contained class will be obliterated when the
container class destroyed
Graphically, a composition is rendered as a solid line,
with filled diamond shape, and including a label.
Example
Parent
Child
Library
Books
2/7/2017 43jaya kolekar
44. Conceptual model of UML
Multiplicity
It is the active logical association when the cardinality
of a class in relation to another is being depicted.
It is also called as cardinality.
Example
Person company
1..* works for 1
2/7/2017 44jaya kolekar
45. Conceptual model of UML
Diagrams
It is the graphical presentation of a set of elements.
Rendered as a connected graph of vertices (things) and
paths (relationships).
In theory, a diagram may contain any combination of
things and relationships.
Used to visualize a system from different perspectives.
Three classification of UML diagram
Behavior Diagrams
Interaction Diagrams
Structure Diagrams
2/7/2017 45jaya kolekar
46. Conceptual model of UML
Diagram
Structure Diagram Behavior Diagram
Class
Diagram
Component
Diagram
Package
Diagram
Deployment
Diagram
Composite
structure
Diagram
Object
Diagram
Activity
Diagram
Use case
Diagram
State
Machine
Diagram
Sequence
Diagram
Interaction
Overview
Diagram
Communication
Diagram
Timing
Diagram
Interaction
Diagram
2/7/2017 46jaya kolekar
47. Conceptual model of UML
Class diagram
shows a set of classes, interfaces, and collaborations and their
relationships.
It address the static design view of a system.
Object diagram
It shows a set of objects and their relationships.
Object diagrams represent static snapshots of instances of the
things found in class diagrams.
Component diagram
It shows an encapsulated class and its interfaces, ports, and
internal structure consisting of nested components and
connectors.
Component diagrams address the static design
implementation view of a system.
They are important for building large systems from smaller
parts.
2/7/2017 47jaya kolekar
48. Conceptual model of UML
Use case diagram
It shows a set of use cases and actors (a special kind of class)
and their relationships.
Use case diagrams address the static use case view of a system.
These diagrams are especially important in organizing and
modeling the behaviors of a system.
Interaction diagram
It shows an interaction, consisting of a set of objects or roles,
including the messages that may be dispatched among them.
Interaction diagrams address the dynamic view of a system.
Sequence diagram
It is an interaction diagram that emphasizes the time-ordering
of messages
2/7/2017 48jaya kolekar
49. Conceptual model of UML
Communication diagram
It is an interaction diagram that emphasizes the structural
organization of the objects or roles that send and receive
messages.
State diagram
It shows a state machine, consisting of states, transitions,
events, and activities.
It shows the dynamic view of an object.
useful in modeling reactive systems.
Activity diagram
It shows the structure of a process or other computation as the
flow of control and data from step to step within the
computation.
It address the dynamic view of a system.
They are especially important in modeling the function of a
system and emphasize the flow of control among objects
2/7/2017 49jaya kolekar
50. Conceptual model of UML
Deployment diagram
It shows the configuration of run-time processing nodes and
the components that live on them.
Deployment diagrams address the static deployment view of an
architecture.
Package diagram
It shows the decomposition of the model itself into
organization units and their dependencies.
Timing diagram
is an interaction diagram that shows actual times across
different objects or roles, as opposed to just relative sequences
of messages.
Interaction overview diagram
is a hybrid of an activity diagram and a sequence diagram.
2/7/2017 50jaya kolekar
51. Conceptual model of UML
Rules of the UML
It specify what a well-formed model should look like. A well-formed model is one that is
semantically self-consistent and in harmony with all its related models.
The UML has syntactic and semantic rules for
Names
What you can call things, relationships, and diagrams
Scope
The context that gives specific meaning to a name
Visibility
How those names can be seen and used by others
Integrity
How things properly and consistently relate to one another
Execution
What it means to run or simulate a dynamic model
Models viewed by many stakeholders in different ways and at different times. For this reason,
it is common for the development team to not only build models that are well-formed, but also
to build models that are
Elided
Certain elements are hidden to simplify the view
Incomplete
Certain elements may be missing
Inconsistent
The integrity of the model is not guaranteed
The rules of the UML encourage you but do not force you to address the most important
analysis, design, and implementation questions that push such models to become well-formed
over time.
2/7/2017 51jaya kolekar
52. Conceptual model of UML
Common Mechanisms in the UML
It is made simpler by the presence of four common
mechanisms that apply consistently throughout the
language.
Specifications
Adornments
Common divisions
Extensibility mechanisms
2/7/2017 52jaya kolekar
53. Conceptual model of UML
Specifications
The UML is a graphical language in every part of its graphical
notation there is a specification that provides a textual
statement of the syntax and semantics of that building block.
For example, behind a class icon is a specification that
provides the full set of attributes, operations, and behaviors
that the class embodies.
visually, that class icon might only show a small part of this
specification.
we use the UML's graphical notation to visualize a system and
the UML's specification to state the system's details.
Build up a model incrementally by drawing diagrams and
then adding semantics to the model's specifications, or
reverse engineering.
2/7/2017 53jaya kolekar
54. Conceptual model of UML
Adornments
Every element in the UML's notation starts with a basic symbol, to
which can be added a variety of adornments specific to that symbol.
For example , the class notation also exposes the most important
aspects of a class, namely its name, attributes, and operations.
A class's specification may include other details, such as whether
it is abstract or the visibility of its attributes and operations. Many
of these details can be rendered as graphical or textual adornments
to the class's basic rectangular notation.
2/7/2017 54jaya kolekar
55. Conceptual model of UML
Common Divisions
In modeling object-oriented systems, the world often gets divided
in several ways.
The division of class and object.
A class is an abstraction; an object is one concrete manifestation of
that abstraction. Graphically, the UML distinguishes an object by
using the same symbol as its class and then simply underlying the
object's name.
2/7/2017 55jaya kolekar
56. Conceptual model of UML
Separation of interface and implementation.
An interface declares a contract, and an implementation represents
one concrete realization of that contract, responsible for faithfully
carrying out the interface's complete semantics.
Separation of type and role.
The type declares the class of an entity, such as an object, an
attribute, or a parameter. A role describes the meaning of an entity
within its context, such as a class, component, or collaboration
2/7/2017 56jaya kolekar
57. Conceptual model of UML
Extensibility Mechanisms
The UML provides a standard language for writing software blueprints, but it is
not sufficient to express all possible nuances of all models across all domains
across all time. For this reason, the UML is opened-ended, making it possible
for you to extend the language in controlled ways.
Extensibility mechanisms allow you to shape and grow the UML to your
project's needs.
You can add new building blocks, modify the specification of existing ones, and
even change their semantics.
The UML's extensibility mechanisms include
Stereotypes
extends the vocabulary of the UML, allowing you to create new kinds of building
blocks that are derived from existing ones but that are specific to your problem.
Tagged values
extends the properties of a UML stereotype, allowing you to create new
information in the stereotype's specification.
Constraints
extends the semantics of a UML building block, allowing you to add new rules or
modify existing ones.
2/7/2017 57jaya kolekar
58. Modeling System's Architecture
Different stakeholders bring different agendas to a
project, and looks at that system in different ways at
different times over the project's life.
Used to manage these different viewpoints and thus
control the iterative and incremental development of a
system throughout its life cycle.
2/7/2017 58jaya kolekar
59. Modeling System's Architecture
Architecture is the set of significant decisions about
The organization of a software system.
The selection of the structural elements and their interfaces by which
the system is composed.
Their behavior.
The composition of these structural and behavioral elements into
progressively larger subsystems.
The architectural style that guides this organization: the static and
dynamic elements and their interfaces, their collaborations, and their
composition.
Software architecture is not only concerned with structure and
behavior but also with usage, functionality, performance, resilience,
reuse, comprehensibility, economic and technology constraints and
trade-offs, and aesthetic concerns.
2/7/2017 59jaya kolekar
61. Modeling System's Architecture Use case view
Encompasses the use cases that describe the behavior of the system as seen
by its end users, analysts, and testers.
This view doesn't really specify the organization of a software system. Rather,
it exists to specify the forces that shape the system's architecture.
With the UML, the static aspects of this view are captured in use case
diagrams; the dynamic aspects of this view are captured in interaction
diagrams, state diagrams, and activity diagrams.
Design view
Encompasses the classes, interfaces, and collaborations that form the
vocabulary of the problem and its solution.
This view primarily supports the functional requirements of the system,
meaning the services that the system should provide to its end users.
With the UML, the static aspects of this view are captured in class diagrams
and object diagrams; the dynamic aspects of this view are captured in
interaction diagrams, state diagrams, and activity diagrams. The internal
structure diagram of a class is particularly useful.
2/7/2017 61jaya kolekar
62. Modeling System's Architecture Interaction view
Shows the flow of control among its various parts, including possible
concurrency and synchronization mechanisms.
This view primarily addresses the performance, scalability, and
throughput of the system.
With the UML, the static and dynamic aspects of this view are captured
in the same kinds of diagrams as for the design view, but with a focus on
the active classes that control the system and the messages that flow
between them.
2/7/2017 62jaya kolekar
63. Modeling System's Architecture
Implementation view
Encompasses the artifacts that are used to assemble and release the physical system.
This view primarily addresses the configuration management of the system's
releases, made up of somewhat independent files that can be assembled in various
ways to produce a running system.
It is also concerned with the mapping from logical classes and components to
physical artifacts.
With the UML, the static aspects of this view are captured in artifact diagrams; the
dynamic aspects of this view are captured in interaction diagrams, state diagrams,
and activity diagrams.
Deployment view
Encompasses the nodes that form the system's hardware topology on which the
system executes.
This view primarily addresses the distribution, delivery, and installation of the parts
that make up the physical system.
With the UML, the static aspects of this view are captured in deployment diagrams;
the dynamic aspects of this view are captured in interaction diagrams, state
diagrams, and activity diagrams.
Each of these five views can stand alone so that different stakeholders can focus on the
issues of the system's architecture that most concern them. T
2/7/2017 63jaya kolekar
65. Software Development Life Cycle
Inception
The seed idea for the development is brought up to the point.
Elaboration
When the product requirements and architecture are defined.
In this phase, the requirements are articulated, prioritized, and base lined.
Construction
When the software is brought from an executable architectural baseline to
being ready to be transitioned to the user community.
Here also, the system's requirements and especially its evaluation criteria
are constantly reexamined against the business needs of the project, and
resources are allocated as appropriate to actively attack risks to the project.
Transition
The software is delivered to the user community.
During this phase, the system is continuously improved, bugs are
eradicated, and features that didn't make an earlier release are added.
Iteration
It is a distinct set of work tasks, with a base lined plan and evaluation
criteria that results in an executable system that can be run, tested, and
evaluated.
2/7/2017 65jaya kolekar