100% found this document useful (1 vote)
155 views

What Is UML?

UML is a graphical modeling language used to visualize, specify, construct, and document software systems. It provides a standard way to model systems through use case diagrams, class diagrams, sequence diagrams, and other diagrams. UML is not a programming language, but helps model problems in a way that can be compiled into code. It aims to be a common language for modeling systems across different programming languages.

Uploaded by

skyend_512
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
155 views

What Is UML?

UML is a graphical modeling language used to visualize, specify, construct, and document software systems. It provides a standard way to model systems through use case diagrams, class diagrams, sequence diagrams, and other diagrams. UML is not a programming language, but helps model problems in a way that can be compiled into code. It aims to be a common language for modeling systems across different programming languages.

Uploaded by

skyend_512
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 87

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
UML is not a radical departure from Booch, OMT, OOSE notations
but rather legitimate successor to all three.
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.
1

Where can you use the UML?


System of several different kinds, absolutely anywhere everywhere.
Primarily for software intensive systems like:

Systems software
Business processes

The Evolution of the UML:


OMG vote97
Submission to OMG, sept97

Public Feedback

UML1.1

Submission of OMG group UML1.0


Beta version OOPSLA96

UML0.9
Unified Method 0.8
Other method

Booch

OMT

OOSE
3

Advantages of UML:
Captures business processes
Enhance communication and ensures the right communication
Capability to capture the logical software architecture independent of

the implementation language

Manages the complexity


Enables reuse of design

UML refers to:


UML things:

Class, component, node, relationship, package etc..


UML diagrams:

Use case diagram, interaction diagram, class diagram, State


diagram,deployment diagram

Best Practices followed by Rational Unified Process


Develop software iteratively
Manage requirements
Use component based architectures
Visually model software
Verify S/W quality
Control changes to software.

What is a tool?
It is automated support for every stage of software development

life cycle.
Since we are concentrating on requirement, analysis and design phase,

following are the names of few tools which are greatly in use:
1. Rational Rose
2. Cayenne
3. Platinum
4. Select

Why Tool?
Helps designer for creating designs much more quickly.
Supports validations like:

Consistency checking
Completeness checking
Constrain checking.
Time required for certain operation could be predicted .
Code generation
Reverse engineering.
Round trip engineering
Conversion from SSAD to OOAD
Quick documentationetc
8

Triangle for Success:


All three components play equally important role towards the success

of the project.
Notation

Tool

Method

OO model:
DYNAMIC MODEL
STATIC MODEL
LOGICAL MODEL

PHYSICAL MODEL

The models of Object Oriented Development

10

Models and Views:


4+1 view of OO model.
Process view
Deployment view
Logical view
Dynamic view
+
Use case view
As shown in the model , for each dimension we define a number of

diagrams that denote a view of the systems model.


The use case view is central since its contents drive the developments
of other views.
11

UML diagrams:
1. Use case diagram
2. Class Diagram
3. Behavioral diagrams
- State chart diagrams
- Object diagram
- Activity diagrams
- Interaction diagrams
- Sequence diagrams
- Collaboration diagrams

4. Implementation diagrams
- Component diagram
- Deployment diagram
12

Semantics of Diagrams:
Use case diagrams represent the functions of a system from the users

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.

13

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.

14

What is USE CASE diagram?


A use case diagram establish the capability of the system as a whole.
Components of use case diagram:

Actor
Use case
System boundary
Relationship
Actor relationship

15

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.

Customer

Manager

Cashier
16

ACTOR:
More about an actor:
It is role a user plays with respect to system.
Actors are not part of the system they represent anyone or

anything that must interact with the system.


Actors carry out use cases and a single actor may perform more
than one use cases.
Actors are determined by observing the direct uses of the
system

17

ACTOR:
An actor may

- input information to the system.


- receive information from the system.
- input to and out from the system.

18

ACTOR:
How do we find the actor?
Ask following questions to find the actors:

Who uses the system?

Who installs the system?

Who Starts up the system?

What other systems use this system?

Who gets the information from the system?

Who provides information to the system?


Actor is always external to the system. They are never part of the

system to be developed.
19

ACTOR:
4-Categories of an actor:
Principle
Secondary

: Who uses the main system functions.


: Who takes care of administration & maintenance.
External h/w : The h/w devices which are part of application
domain and must be used.
Other system: The other system with which the system must
interact.

20

ACTOR:
Note:
If newly identified actor is using a system in a same way like an

existing actor, then new actor can be dropped.


If two actors use system in the same way they are same actors.

21

USE CASE:

What is USE case?


A use case is a pattern of behavior, the system exhibits
Each use case is a sequence of related transactions performed by an
actor and the system in dialogue.
USE CASE is dialogue between an actor and the system.
Examples:

Open new account

Withdrawal of cash
from ATM
22

USE CASE:
More about USE CASE:
It is a snapshot of one aspect of system.
They model a dialog between actor and system.
A use case typically represents a major piece of functionality

that is complete from beginning to end.


Most of the use cases are generated in initial phase, but you
find some more as you proceed.

23

USE CASE:
Contd
A use case must deliver something of value to an actor.
The use cases may be decomposed into other use cases.
Use cases also present a good vehicle for project planning.

24

USE CASE:
How do we find the use cases?
What functions will the actor want from the system?
Does the system store information? What actors will create, read,

update. Or delete that information?


Does the system need to notify an actor about changes in its internal
state?

25

USE CASE:
Generic format for documenting the use case:

- Pre condition:

If any

Use case
:
Name of the case.
Actors :
List of actors(external agents), indicating who
initiates the use case.
Purpose :
Intention of the use case.
Overview
:
Description.
Type
:
primary / secondary.
Post condition: If any
Typical Course of Events:
ACTOR ACTION : Numbered actions of the actor.
SYSTEM RESPONSE : Numbered description of system responses.
26

USE CASE:
USE CASE documentation example:
The following use case describes the process of opening a new
account in the bank.
Use case :Open new account
Actors
:Customer, Cashier, Manager
Purpose
:Like to have new saving account.
Description :A customer arrives in the bank to open the new
account. Customer requests for the new account
form, fill the same and submits, along with the
minimal deposit. At the end of complete successful
process customer receives the passbook.

Type

:Primary use case.


27

OOAD --- USE CASE driven


Analysis

Design &
Implementation

Test

Use cases make up the glue

Capture,clarify
& validate use cases

Implement
use cases

Verify that use cases


are satisfied

28

SYSTEM BOUNDARY:
What is 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?
Relationship between use case and actor.

Communicates
Relationship between two use cases
Extends
Uses
Notation used to show the relationships:

<<

>>
30

RELATIONSHIP:
Relationship between use case and actor is often referred as

communicates .
Relationship between two use cases is refereed as either uses
or extends.
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

Clerk

Withdraw cash
Customer
uses

Validation

Manager

ATM
33

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

34

Normal Flow of Events:

For withdrawal of cash:


1.The ATM asks the user to insert a card.
2. The user inserts a cash card.
3. The ATM accepts the card and reads its serial number.
4. The ATM requests the password.
5. The user enters 1234.
6. The ATM verifies the serial number and password with the
bank and gets the notification accordingly.
7.The ATM asks the user to select the kind of transaction.
8.User selects the withdrawal.

35

Normal Flow of Events:

Contd...
9.The ATM asks for the amount of cash; user enters Rs. 2500/10.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. The ATM dispenses cash and asks the user to take it.
12. The user takes the cash.
13. The ATM asks whether the user wants to continue.
14. The user indicates no.

36

Normal Flow of Events:


Contd...
15 The ATM prints a receipt, ejects the card and asks the user to take
them
16. The user takes the receipt and the card.
17. The ATM asks a user to insert a card.

37

Alternative Flow of Events:


For withdrawal of cash use case:
9. The ATM asks for the amount of cash; the user has change of mind
and hits the cancel.

38

Exceptional Flow of Events:


For withdrawal of cash use case:
3 Suspicious pattern of usage on the card.
10 The machine is out of cash.
11 Money gets stuck in the machine.

39

Why flow of events?


It helps in understanding the functionality of a system to be developed.
Flow of events helps in finding objects of the system to be developed.
Happens to be most important and very first step towards analysis and

design.

40

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.

41

USE CASE Realizations:


The use case diagram presents an outside view of the system
Interaction diagrams describe how use cases are realized as

interactions among societies of objects.


Two types of interaction diagrams
Sequence diagrams
Collaboration diagrams

42

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

43

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.

44

OBJECT & OBJECT LIFE LINE:


Object are represented by rectangles and name of the objects are
underlined.
Object life line are denoted as dashed lines. They are used to
model the existence of objects over time.
Name:Class

45

MESSAGES:
They are used to model the content of communication between

objects. They are used to convey information between objects and


enable objects to request services of other objects.
The message instance has a sender, receiver, and possibly other

information according to the characteristics of the request.


Messages are denoted as labeled horizontal arrows between life lines.
The sender will send the message and receiver will receive the

message.
46

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.
47

Sequence diagram
:Customer

Insert card
Request password
Enter the password
Request option
Enter option
Request amount
Enter the amount

Dispense cash
Request take cash

[for withdrawal of cash, normal flow]

:ATM

:Bank
Verify account
Account o.k.

Create
Transaction

:Transaction

Update transaction
Transaction commit
Transaction
complete

Take cash
Request continuation
Terminate
Print receipt ,eject card
Request take card
Take card
Display main screen and prompt for the card.

48

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.

49

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.

50

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

51

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


52

The examples of message:


4:Display(x,y)
3.3.1:Display(x,y)
4.2:subtract[Today,Birthday]:age
[Age >=18] 6.2:Vote()
4.a,b.6/c.1:Turnon(Lamp)
1*:wash()
3.a,3.b/4*||[i:=1..n]:Turnoff()

Simple
message
Nested
message
Nested
message with
return value
Conditional
message
Synchro. with
other flow of
execution
Iteration
Parallel
iteration

53

Collaboration diagram [for withdrawal of cash, normal flow.]


1. Insert card
Enter password, Enter kind
Enter amount,
Take cash, Take card
cancel,Terminate, Continue

CUSTOMER

Create Transaction
Transaction complete

TRANSACTION

ATM

Display main screen


unreadable card message,
request password,
request kind, request amount,
canceled message, eject card, failure message,
dispense cash, request take cash
request continuation,
print receipt, request take card
bad account message,
Verify account,
bad bank account message
process transaction

Transaction succeed
Transaction failed
account o.k.
bad account,
bad password,
bad bank code

BANK
54

What is Class diagram?


A class diagram shows the existence of classes and their relationships

in the logical view of a system

UML modeling elements in class diagrams are:

Classes, their structure and behavior.


relationships components among the classes like association,
aggregation, composition, dependency and inheritance
Multiplicity and navigation indicators
Role names or labels.

55

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.
56

RELATIONSHIP:
Association
Aggregation
Composition
Inheritance
Dependency
Instantiation

57

ASSOCIATION:

These are the most general type of relationship:


It denotes a semantic connection between two classes
It shows BI directional connection between two classes
It is a weak coupling as associated classes remain somewhat
independent of each other
Example:

CUSTOMER

ATM system

58

AGGREGATION:

This is a special type of association


The association with label contains or is part of is an
aggregation
It represents has a relationship
It is used when one object logically or physically contains other
The container is called as aggregate
It has a diamond at its end
The components of aggregate can be shared with others
It expresses a whole - part relationships

59

AGGREGATION:
Example:

Customer

ATM card

60

COMPOSITION:

This is a strong form of aggregation


It expresses the stronger coupling between the classes
The owner is explicitly responsible for creation and deletion of
the part
Any deletion of whole is considered to cascade its part
The aggregate has a filled diamond at its end

Window

Client Area

61

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

62

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
63

INSTANTIATION
This relationship is defined between parameterized class and
actual class.
Parameterized class is also referred as generic class.
A parameterized class cant have instances unless we first
instantiated it
Example:
Element
Queue

Queue<int>

64

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
MN
From M to N (natural integer)
0..*
From zero to any positive integer
1..*
From one to any positive integer

Also thought can be given about navigability to every applicable

relationship.
65

Reaching the class diagram:


In collaboration diagram we have shown the objects, their interaction

and detailed message signature.


This information is carried forward to the class diagram.
At this point,we group the similar objects and form classes.
Messages get mapped to responsibilities for respective classes.
Find the attributes for every class.
Transform the links to appropriate relationships.
Relationship is further refined with respect to multiplicity and
navigability.
This complete procedure brings the minimal class diagram [for withdraw cash
use case, normal flow.]

66

Class diagram [for withdrawal of cash, normal flow]

Customer
1

1..*

1..*
0..*

Transaction
1..*

ATMSystem
1
1
1

Bank[Branch]

67

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.
68

OOAD---Iterative & Incremental Approach


Identify objects
Validate Classes
& Objects

Group classes
into domains
Identify class
behavior

Identify Messages

Group Objects
into classes
Identify & classify
Class relationships
69

Refinement attributes:
Stereotypes:
Stereotypes are part of the range of extensibility mechanism provided

by UML
It permits user to add new model element classes on top of the kernel

predefined by UML

70

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.
71

Refinement attributes:
Example:Constraints
Number of withdrawal transaction should be less than five per day.

Transaction

Constraint on the same class.

{No. of transaction <=5 /day}


No window will have an aspect ratio i.e. (length/width) of less than 0.8 or > 1.5

Window
length/width

A constraint between the


properties of the same object

{0.8<=length/width <= 1.5}


72

Refinement attributes:
Qualifier:
UML provides a role of constraint notation to indicate different kind of
collections that may be inherent in the analysis model
Common role constraints for multi valued roles include
{ordered}
Collection is maintained in sorted manner
{bag}
Collection may have multiple copies of same item.
{set}
Collection may have at most one copy of given item.
Some constraints may be combined such as: {ordered set}

73

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.

74

Refinement attributes:
Check for many to many relationship, if any, normalize with qualifier

or association class.
Check for the scope forming abstract classes and template classes.
Check for helper functions.
Thought can be given for using the design patterns.

75

Refined Class diagram

[for withdrawal of cash]

Few more relationship can be further added to the shown diagram:


Area

ATMSystem

1..*
1
Bank[Branch]

Cash

BankComputer

BatchJob

<<abstract>>
AccountAccessor

<<abstract>>
person

Transaction
1..*
Slips

CashierStation
1

Customer BankAssociates

1..*
<<abstract>>
Account

1
CurrentAccount SavingAccount

0..1
BankCard

ATMScreen

TellerScreen
NoteHelpForBankCard

76

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

77

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.
Special states:There are two special states.

Start state: Each state diagram must have one and only one start
state. Notation for start state is filled solid circle.
Stop State: An object can have multiple stop states. Notation for stop
state is bulls eye.

78

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

79

State Transition Diagram [for Account class. ]

request and fill the form for new saving account[ validate ] / process
Open
transaction request[ validate ] / update()
transactionStrart / Transfer_to_main_ledger ()
Dormant

Operational

no transaction / Transfer_to_Dormant_Ledger

fill_the_request_form/update(
Fraud or authorized instruction[Validate]
)
/ lockAccount()
matter_resolved[ validate ] / unlockAccount()
close
fill_the_request_form / update()

seized

Note:Account can be closed from open state as well

80

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

81

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:
i
Analyzing use case
i
Dealing with multithreaded application
i
Understanding workflow across many use cases.

82

Consistency Checking

Consistency checking is the process of ensuring that,


information in both static view of the system(class diagram)
and the dynamic view of the system(sequence and
collaboration diagram) is telling the same story.

83

What is component diagram?


COMPONENT DIAGRAM:
Component diagrams illustrate the organizations and dependencies
among software components.
A component may be
A source code component
A run time components
An executable component
Dependency relationship.

84

Component Diagram

[for withdrawal of cash]

policy.dll
Bank
Server.exe
Branch
Bank.dll

customer.dll

Branch
Bank.exe
ATM.exe

85

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.

86

Deployment diagram
Branch
Bank_
Bank.exe
Ethernet

ATM_
machine
ATM.exe

Ethernet

Bank_
server
BankServer.exe

87

You might also like