Object Oriented Analysis and Design Using UML
Object Oriented Analysis and Design Using UML
1
Importance of modeling
What is a model?
– A model is a simplification of reality
Why do we model?
– help visualizing
– permit specification
– provides a template
– document decisions
2
4 Principles of Modeling
Choose your models well
Every model may be expressed at various
levels of precision
The best models are connected to reality
No single model is sufficient
3
What is Software Engineering?
DEFINITION:The application of systematic, disciplined and
qualifiable approach to the development, operation and maintenance
of a software system is software engineering.
Software development life cycle has following stages:
REQUIREMENT
ANALYSIS
DESIGN
IMPLEMENTATION
TESTING 4
Effort Distribution for each stage:
Analysis & design 40 %
Development 20 %
Testing 40 %
5
Major benefits of OOAD:
The object oriented approach is a way of thinking about a problem using
real world concepts instead using adhoc function concepts.
6
What is Notation?
Notation:
It is collection of graphical symbols for expressing model of the
system.
The Unified Modeling Language [UML] provides a very robust set
of notation which grows from analysis to design.
This brings end of the method wars as far as notation is concerned
with adoption of the language [UML]
By unifying the notations used by these object oriented methods, the unified
modeling language provides the basis for a de facto standard in the domain
of object oriented analysis and design founded on a wide base of user
experience
7
What is UML?
It is a Unified Modeling Language, which is mainly a collection of
graphical notation that methods use to express the designs.
The UML is language for visualizing, specifying, constructing and
documenting the artifacts of software system.
UML is visual modeling language for modeling systems and is non
proprietary
It is an evolutionary step, which is more expressive and more uniform
than individual notations.
Whitehead says
“ By relieving the brain of unnecessary work, a good notation, sets it
free to concentrate on more advance and creative problems “ UML is
not a method or process but is the means to express the same.
8
Where can you use the UML?
System of several different kinds, absolutely anywhere everywhere.
Primarily for software intensive systems like:
Systems software
Business processes
9
Advantages of UML:
Captures business processes
10
OO model:
DYNAMIC MODEL
STATIC MODEL
LOGICAL MODEL
PHYSICAL MODEL
11
Models and Views:
4+1 view of OO model.
– Process view
– Deployment view
– Logical view
– Dynamic view
+
– Use case view
12
LOGICAL VIEW
It describe the existence and meaning of the
key abstractions and mechanism that form
the problem space or that define the
system’s architecture.
13
Physical model
It describe concrete software and hardware
composition of the system’s context or
implementation.
14
UML diagrams:
15
Semantics of Diagrams:
Use case diagrams represent the functions of a system from the user’s
point of view.
Sequence diagrams are a temporal representation of objects and their
interactions.
Collaboration diagrams are a spatial representation of objects, links,
and interactions.
Object diagrams represent objects and their relationships, and
correspond to simplified collaboration diagrams that do not represent
message broadcasts.
Class diagrams represent the static structure in terms of classes and
relationships.
16
Semantics of Diagrams:
Contd...
State chart diagrams represent the behavior of a class in terms of states
Activity diagrams are to represent the parallel behavior of an operation
as a set of actions.
Component diagrams represent the logical components of an
application.
Deployment diagrams represent the deployment of components on
particular pieces of hardware.
17
What is USE CASE diagram?
A use case diagram establish the capability of the system as a whole.
18
ACTOR:
What is an actor?
An actor is some one or something that must interact with the system
under development
UML notation for actor is stickman, shown below.
20
ACTOR:
Contd…
Those are responsible for its use and maintain as well as other systems
that interact with the developed system.
An actor may
- input information to the system.
- receive information from the system.
- input to and out from the system.
21
ACTOR:
4-Categories of an actor:
22
USE CASE:
24
USE CASE:
Generic format for documenting the use case:
25
USE CASE:
26
Grouping USE CASES:
27
OOAD --- USE CASE driven
28
SYSTEM BOUNDARY:
It is shown as a rectangle.
It helps to identify what is external verses internal, and what the
responsibilities of the system are.
The external environment is represented only by actors.
29
RELATIONSHIP:
What is Relationship?
<< >>
30
RELATIONSHIP:
USES:
- Multiple use cases share a piece of same functionality.
- This functionality is placed in a separate use case rather than
documenting in every use case that needs it.
31
RELATIONSHIP:
Contd...
A uses relationship shows behavior that is common to one or
more use cases.
EXTENDS:
It is used to show optional behavior, which is required only
under certain condition.
32
USE CASE diagram:
Use case diagram for the shown functionality.
Balance status
report
extends
Validation
ATM
Manager
33
Beginning Analysis and Design
Completion of first version of use case diagram initiates the processes
of analysis and design.
UML provides the framework to carry out the process of analysis and
design in form of set of diagrams.
Every diagram and notation used in the diagram carries the semantics.
First step towards analysis and design is to specify the flow of events.
34
Flow of Events:
A flow of events document is created for each use case.
Details about what the system must provide to the actor when the use
is executed.
Typical contents
– How the use case starts and ends
– Normal flow of events
– Alternate flow of events
– Exceptional flow of events
Typical Course of Events has:
Actor Action(AA)
System Response(SR)
35
Normal Flow of Events:
36
Normal Flow of Events:
Contd...
9.(SR)The ATM asks for the amount of cash; user enters Rs. 2500/-
10.(SR)The ATM verifies that the amount of cash is within predefined
policy limits and asks the bank, to process the transaction which
eventually confirms success and returns the new account balance.
11.(SR) The ATM dispenses cash and asks the user to take it.
12.(AA) The user takes the cash.
13.(SR) The ATM asks whether the user wants to continue.
14.(AA) The user indicates no.
37
Normal Flow of Events:
Contd...
15.(SR) The ATM prints a receipt, ejects the card and asks the user to
take them
16.(AA) The user takes the receipt and the card.
17.(SR) The ATM asks a user to insert a card.
38
Alternative Flow of Events:
39
Exceptional Flow of Events:
40
Why flow of events?
41
What is Scenario?
The functionality of the use case is captured in flow of the
events.
A scenarios is one path through the flow of events for the use
case.
Scenarios are developed to help identify objects, classes and
object interactions for that use case.
42
Objective of the third module
To understand the flow of each functionality and find out the objects
and methods required to build the system.
43
Module-4
44
USE CASE Realizations:
45
What is Interaction diagram?
Interaction diagrams are models that describe how groups of objects
collaborate in some behavior
There are 2 kinds of interaction diagrams
• Sequence diagram
• Collaboration diagram
Sequence diagrams are a temporal representation of objects and their
interactions
Collaboration diagrams are spatial representation of objects, links and
interrelations
46
What is sequence diagram?
Typically these diagrams capture behaviors of the single
scenario.
Shows object interaction arranged in time sequence.
They show sequence of messages among the objects.
It has two dimensions, vertical represents time & horizontal
represents objects.
Components of sequence diagram:
-objects
-object lifeline
-Message
-pre/post conditions.
47
OBJECT & OBJECT LIFE LINE:
48
MESSAGES:
The sender will send the message and receiver will receive the message.
49
MESSAGES:
Contd…
May have square brackets containing a guard conditions. This is a
Boolean condition that must be satisfied to enable the message to be
sent.
May have have an asterisk followed by square brackets containing an
iteration specification. This specifies the number of times the message
is sent.
May have return list consisting of a comma -separated list of names
that designate the values of returned by the operation.
Must have a name or identifier string that represents the message.
May have parentheses containing an argument list consisting of a
comma separated list of actual parameters passed to a method.
50
Sequence diagram [for withdrawal of cash, normal flow]
Request amount
Transaction
:Transaction
Enter the amount
Update transaction
Transaction commit
Transaction
Dispense cash complete
Request take cash
Take cash
Request continuation
Terminate
Print receipt ,eject card
Request take card
Take card 51
Display main screen and prompt for the card.
What is Collaboration diagram?
Collaboration diagrams illustrate the interaction between the objects,
using static spatial structure.
Unlike sequence diagram the time is not explicitly represented in these
diagrams
In collaboration diagram the sequence of messages is indicated by
numbering the messages. The UML uses the decimal numbering
scheme.
In these diagrams, an actor can be displayed in order to represent the
triggering of interaction by an element external to the system.
This helps in representing the interaction, without going into the
details of user interface.
52
Components of collaboration diagram:
Named objects
Links: Links are represented by a continuous line between objects, and
indicates the exchange of messages.
Messages has following attributes:
• Synchronization --thread name, step within thread.
• Sequence number
• Message labels : The name of the message often corresponds to an operation
defined in the class of the object that is the destination of the message.
Message names may have the arguments and return values.
• *[iteration].
• It uses decimal notation.
• Message direction.
53
Semantics of components:
Object names identify which objects are participating and the links
show which objects collaborate
A link between two objects must exist for one object to send message
to another and vice a versa.
Messages in the collaboration diagram get transformed to more
detailed signature.
They use the decimal notation system for numbering the messages.
The direction of the message defines the sender and receiver of
the message
54
The elements of message:
Predecessor
Role names
Message qualifiers
– Iteration expression
– Parameters
– Return values
– Guard
– Message stereotypes
Concurrent thread sequencing
Thread dependencies
Message expression
[Pre] A1:*(expression):doIt(p,r):return value
55
The examples of message:
4:Display(x,y) Simple
message
3.3.1:Display(x,y) Nested
message
4.2:subtract[Today,Birthday]:age Nested
message with
return value
[Age >=18] 6.2:Vote() Conditional
message
4.a,b.6/c.1:Turnon(Lamp) Synchro. with
other flow of
execution
1*:wash() Iteration
3.a,3.b/4*||[i:=1..n]:Turnoff() Parallel
iteration
56
Collaboration diagram [for withdrawal of cash, normal flow.]
1. Insert card
Enter password, Enter kind
Enter amount,
Take cash, Take card
cancel,Terminate, Continue Create Transaction
Transaction complete
CUST- TRANSA-
OMER Display main screen
unreadable card message,
ATM CTION
request password,
request kind, request amount,
canceled message, eject card, failure message,
dispense cash, request take cash
Transaction succeed
request continuation,
Transaction failed
print receipt, request take card
account o.k.
bad account message, Verify account, bad account,
bad bank account message process transaction bad password,
bad bank code
BANK
57
Objective of the fifth module
To know the interaction among the objects in temporal and spatial
form.
To know how objects collaborate among each other and hence
delegate the responsibility to the respective objects.
To understand how the messages get matured with more information.
58
Module-5
59
What is Class diagram?
A class diagram shows the existence of classes and their relationships
in the logical view of a system
60
Major Types of classes:
Concrete classes
A concrete class is a class that is instantiable; that is it can have
different instances.
Only concrete classes may be leaf classes in the inheritance tree.
Abstract classes
An abstract class is a class that has no direct instance but whose
descendants classes have direct instances.
An abstract class can define the protocol for an operation without
supplying a corresponding method we call this as an abstract
operation.
An abstract operation defines the form of operation, for which each
concrete subclass should provide its own implementation.
61
RELATIONSHIP:
Association
Aggregation
Composition
Inheritance
Dependency
Instantiation
62
ASSOCIATION:
CUSTOMER
ATM system
63
AGGREGATION:
64
AGGREGATION:
Example:
65
COMPOSITION:
66
INHERITANCE:
The inheritance relationship helps in managing the complexity by
ordering objects within trees of classes with increasing levels of
abstraction. Notation used is solid line with arrowhead,shown below.
Generalization and specialization are points of view that are based on
inheritance hierarchies.
Account
CurrentAccount SavingAccount
67
DEPENDENCY:
Dependency is semantic connection between dependent and
independent model elements.
This association is unidirectional and is shown with dotted
arrowhead line.
In the following example it shows the dependency relationship
between client and server.
The client avails services provided by server so it should have
semantic knowledge of server.
The server need not know about client.
Client Server
68
INSTANTIATION
Queue<int>
69
What is Cardinality? :
Definition: Number of instances of each class involved in the dialogue is
specified by cardinality.
Common multiplicity values:
Symbol Meaning
1 One and only one
0..1 Zero or one
M…N From M to N (natural integer)
0..* From zero to any positive integer
1..* From one to any positive integer
This complete procedure brings the minimal class diagram [for withdraw cash
use case, normal flow.]
71
Class diagram [for withdrawal of cash, normal flow]
Customer
1
1..*
1..*
ATMSystem
0..*
Transaction 1
1
1..* Bank[Branch]
1
72
What more to the Class Diagram?
Till this slide we have worked out the essentials of class diagram for
withdrawal of cash use case, normal flow of events.
Similar exercise required to be carried out for every scenario and
clubbed all in the class diagram.
At this point, we refine this integrated class diagram to add further fine
details. Approximate sketch for this class diagram has been shown at
the end of this module.
Refinement attributes should be updated right from sequence diagram
to class diagram.
Next few slides will take into the discussion of refinement attributes.
This process of iterative and incremental development will continue
till there is no change in two consecutive iteration.
73
OOAD---Iterative & Incremental Approach
Identify objects
Group Objects
Group classes into classes
into domains
Stereotypes:
It permits user to add new model element classes on top of the kernel
predefined by UML
75
Refinement attributes:
Contd…
Constraints:
Constraints are functional relationship between the entities and object
model. The entities include objects, classes, attributes, association,
links.
A constraint restricts the values that entities can assume.
UML doesn't specify a particular syntax for constraints, other than
they should appear between braces, so they may therefore be
expressed using natural language, pseudo code, navigation expression
or mathematical expression
UML1.2 does prefer the use of a constraint language OCL i.e. Object
Constraint Language, which is subset of UML.
76
Refinement attributes:
Example:Constraints
Number of withdrawal transaction should be less than five per day.
Constraint on the same class.
Transaction
Qualifier:
UML provides a role of constraint notation to indicate different kind
of collections that may be inherent in the analysis model
78
Refinement attributes:
Qualifier:
Another common design scheme is to use a key value to retrieve an
item from the collection. This is called as qualified association and the
key value as qualifier.
A qualified association is the UML equivalent of a programming
concept variously known as associative arrays, maps,dictionaries
A qualified association relates two object classes and a qualifier
The qualifier is a special attribute that reduced the effective
multiplicity of an association.
One to many and many to many association may be qualified.
79
Refinement attributes:
80
Objective of the fifth module:
Learn to build the architecture, which contains the entire information
of the system to be developed.
It is this architecture which is called as BLUE PRINT is handed over
for coding.
81
Refined Class diagram [for withdrawal of cash]
1..* Cash
BankComputer
1
Bank[Branch]
<<abstract>>
AccountAccessor
1 1 <<abstract>>
person
Transaction
CashierStation
1..*
1 ATMScreen
Slips Customer BankAssociates
1..*
1
<<abstract>> TellerScreen
Account
1 0..1
BankCard NoteHelpForBankCard
1
CurrentAccount SavingAccount
82
Module-6
83
What is state transition diagram?
A state transition diagram shows the states of a single object, the
events or the messages that cause a transition from one state to another
and the action that result from a state change.
A state transition diagram will not be created for every class in the
system.
Components of State Diagram:
– Start State
– Stop state
– State Transition
84
Semantics of every components:
State: A state is a condition during the life of an object when it
satisfies some condition, performs some action, or waits for an event.
The UML notation for a state is a rectangle with rounded corners.
85
Semantics of every components:
Contd...
State transition: A state transition represents a change from an
originating to a successor state.
Transition label: event name[guard condition] / action
86
State Transition Diagram [for Account class. ]
request and fill the form for new saving account[ validate ] / process
Open
Dormant
no transaction / Transfer_to_Dormant_Ledger
close
seized
fill_the_request_form / update()
87
More about State Diagram:
A state diagram will not be created for every class.
state diagrams are used only for those classes that exhibit interesting
behavior.
State diagrams are also useful to investigate the behavior of user
interface and control classes.
State diagram are used to show dynamics of a individual class
88
What is activity diagram?
It is a special kind of state diagram and is worked out at use case level.
These are mainly targeted towards representing internal behavior of a
a use case.
These may be thought as a kind of flowchart.
Flowcharts are normally limited to sequential process; activity
diagrams can handle parallel process.
Activity diagrams are recommended in the following situations:
Analyzing use case
Dealing with multithreaded application
Understanding workflow across many use cases.
89
Consistency Checking
90
Objective of the sixth module
Understand the dynamic behavior of a class
91
Module-7
92
What is component diagram?
COMPONENT DIAGRAM:
A component may be
• A source code component
• A run time components
• An executable component
• Dependency relationship.
93
Component Diagram [for withdrawal of cash]
policy.dll
Bank
Server.exe
Branch
customer.dll Bank.dll
Branch
Bank.exe
ATM.exe
94
What is deployment diagram?
A deployment diagram shows the relationship among software and
hardware components in the delivered system.
These diagram include nodes and connections between nodes.
Each node in deployment diagram represents some kind of
computational unit, in most cases a piece of hardware.
Connection among nodes show the communication path over which
the system will interact.
The connections may represent direct hardware coupling line RS-232
cable, Ethernet connection, they also may represent indirect coupling
such as satellite to ground communication.
95
Deployment diagram
Branch
Bank_
Bank.exe
Ethernet
Ethernet
Bank_
ATM_ server
machine
BankServer.exe
ATM.exe
96
Objective of the seventh module:
To understand the organization of software modules and their
deployment on the respective hardware.
97
Module-8
98
Understanding the project culture
It may be:
1.Calendar Centric
2.Requirement Centric
3.Documentation Centric
4.Quality Centric
5.Architecture Centric
99
Understanding the project’s culture
Architecture driven projects represent the most mature style of development.
Architecture driven style of development is usually the best approach for the
creation of most complex software intensive systems
100
Understanding the project’s culture
Architecture driven style of development typically observe the
following process:
101
OOAD---Architecture Centric
102
ESSENCE OF OOAD AND UML
103
Desire for good Architecture
104
Appendix-A
105
Strong recommendation
Object Technology
– David A. Taylor
Object Oriented Analysis and design with Applications
– Grady Booch
UML distilled
–Martin Fowler
Instant UML
– Pierre - Alain Muller
Software Engineering
– Roger S Pressman
106
REFERENCES
Contd...
Object Oriented Modeling and Design
– James Rumbaugh
Object Oriented Software Engineering
– Ivar Jacobson
Clouds to code
– Jesse Liberty
Applying use cases
– Geri Schneider
–Jason p. Winters
UML Toolkit
– Hans-Eriksson and Magnus Penker
Version1.1
107
THANK-U!
108
Course description:
SESSION BREAKUP:
The course will be offered in series of fourteen hours theory session. One
demonstration session on the tool like Rational Rose can be
accompanied.The following is the suggested agenda for the course.
Session Duration
Module-1,2 2-hours demonstration lecture
Module-3 2-hours
Module-4 2-hours
Module-5 4-hours
Module-6 2-hours
Module-7,8 2-hours
Demonstration 2-hours
109
Course description:
REFERENCE AND READING MATERIALS:
Refer to Appendix-A
TEST:
Case study given for exercise can be evaluated as part of the test.
110
Course description:
INSTRUCTION TO THE FACULTY:
Course should emphasize on OO modeling.
Focus should be primarily on understanding UML[1.2] and UML diagrams and
then applying to a problem.
Note: UML toolkit should be refereed for UML notations,their syntax and semantics.
Object oriented analysis and design with applications should be refereed for OO concepts.
111