0% found this document useful (0 votes)
30 views67 pages

Uml Class Diagram (Autosaved)

Uploaded by

Nikunj Shah3540
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views67 pages

Uml Class Diagram (Autosaved)

Uploaded by

Nikunj Shah3540
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 67

Software Design Amity Institute of Information Technology

Static Modeling using the


Unified Modeling Language
(UML)

]
Classes Amity Institute of Information Technology

A class is a description of a set of


ClassName objects that share the same attributes,
operations, relationships, and semantics.
attributes
Graphically, a class is rendered as a
rectangle, usually including its name,
operations attributes, and operations in separate,
designated compartments.
Class Names Amity Institute of Information Technology

The name of the class is the only required


ClassName tag in the graphical representation of a
class. It always appears in the top-most
attributes compartment.

operations
Class Attributes Amity Institute of Information Technology

Person

name : String An attribute is a named property of a


address : Address class that describes the object being modeled.
birthdate : Date In the class diagram, attributes appear in
ssn : Id the second compartment just below the
name-compartment.
Class Attributes (Cont’d) Amity Institute of Information Technology

Attributes are usually listed in the form:

Person attributeName : Type

name : String A derived attribute is one that can be


address : Address computed from other attributes, but
birthdate : Date doesn’t actually exist. For example,
/ age : Date a Person’s age can be computed from
ssn : Id his birth date. A derived attribute is
designated by a preceding ‘/’ as in:

/ age : Date
Class Attributes (Cont’d) Amity Institute of Information Technology

Person
Attributes can be:
+ name : String
+ public
# address : Address
# protected
# birthdate : Date
- private
/ age : Date
/ derived
- ssn : Id
Class Operations Amity Institute of Information Technology

Person

name : String
address : Address
birthdate : Date
ssn : Id
eat Operations describe the class behavior
sleep and appear in the third compartment.
work
play
Class Operations (Cont’d) Amity Institute of Information Technology

PhoneBook

newEntry (n : Name, a : Address, p : PhoneNumber, d : Description)


getPhone ( n : Name, a : Address) : PhoneNumber

You can specify an operation by stating its signature: listing the


name, type, and default value of all parameters, and, in the case of
functions, a return type.
Depicting Classes Amity Institute of Information Technology

When drawing a class, you needn’t show attributes and operation


in every diagram.

Person Person Person


name : String
birthdate : Date
Person ssn : Id
name Person eat()
address sleep()
birthdate eat work()
play play()
Class Responsibilities Amity Institute of Information Technology

A class may also include its responsibilities in a class diagram.

A responsibility is a contract or obligation of a class to perform


a particular service.

SmokeAlarm

Responsibilities

-- sound alert and notify guard station


when smoke is detected.

-- indicate battery state


Relationships Amity Institute of Information Technology

In UML, object interconnections (logical or physical), are


modeled as relationships.

There are three kinds of relationships in UML:

• dependencies

• generalizations

• associations
Dependency Relationships Amity Institute of Information Technology

A dependency indicates a semantic relationship between two or


more elements. The dependency from CourseSchedule to
Course exists because Course is used in both the add and
remove operations of CourseSchedule.

CourseSchedule
Course
add(c : Course)
remove(c : Course)
Generalization Relationships Amity Institute of Information Technology

Person
A generalization connects a subclass
to its superclass. It denotes an
inheritance of attributes and behavior
from the superclass to the subclass and
indicates a specialization in the subclass
of the more general superclass.
Student
Generalization Relationships (Cont’d) Amity Institute of Information Technology

UML permits a class to inherit from multiple superclasses,


although some programming languages (e.g., Java) do not permit
multiple inheritance.

Student Employee

TeachingAssistant
Association Relationships Amity Institute of Information Technology

If two classes in a model need to communicate with each other,


there must be link between them.

An association denotes that link.

Student Instructor
Association Relationships (Cont’d) Amity Institute of Information Technology

We can indicate the multiplicity of an association by adding


multiplicity adornments to the line denoting the association.

The example indicates that a Student has one or more


Instructors:

Student Instructor
1..*
Association Relationships (Cont’d) Amity Institute of Information Technology

The example indicates that every Instructor has one or more


Students:

Student Instructor
1..*
Association Relationships (Cont’d) Amity Institute of Information Technology

We can also indicate the behavior of an object in an association


(i.e., the role of an object) using rolenames.

teaches learns from


Student Instructor
1..* 1..*
Association Relationships (Cont’d) Amity Institute of Information Technology

We can also name the association.

membership
Student Team
1..* 1..*
Association Relationships (Cont’d) Amity Institute of Information Technology

We can specify dual associations.

member of
1..* 1..*
Student Team
1 president of 1..*
Association Relationships (Cont’d) Amity Institute of Information Technology

We can constrain the association relationship by defining the


navigability of the association. Here, a Router object requests
services from a DNS object by sending messages to (invoking
the operations of) the server. The direction of the association
indicates that the server has no knowledge of the Router.

Router DomainNameServer
Association Relationships (Cont’d) Amity Institute of Information Technology

Associations can also be objects themselves, called link classes


or an association classes.

Registration
modelNumber
serialNumber
warrentyCode

Product Warranty
Association Relationships (Cont’d) Amity Institute of Information Technology

A class can have a self association.

next

LinkedListNode
previous
Association Relationships (Cont’d) Amity Institute of Information Technology

We can model objects that contain other objects by way of


special associations called aggregations and compositions.

An aggregation specifies a whole-part relationship between an


aggregate (a whole) and a constituent part, where the part can
exist independently from the aggregate. Aggregations are
denoted by a hollow-diamond adornment on the association.

Engine
Car
Transmission
Association Relationships (Cont’d) Amity Institute of Information Technology

A composition indicates a strong ownership and coincident


lifetime of parts by the whole (i.e., they live and die as a
whole). Compositions are denoted by a filled-diamond
adornment on the association.

Scrollbar
1 1

Window Titlebar
1 1

Menu
1 1 .. *
Interfaces Amity Institute of Information Technology

An interface is a named set of


operations that specifies the behavior
of objects without showing their inner
<<interface>>
structure. It can be rendered in the
ControlPanel
model by a one- or two-compartment
rectangle, with the stereotype
<<interface>> above the interface
name.
Interface Services Amity Institute of Information Technology

<<interface>> Interfaces do not get instantiated.


ControlPanel They have no attributes or state.
Rather, they specify the services
getChoices : Choice[] offered by a related class.
makeChoice (c : Choice)
getSelection : Selection
Interface Realization RelationshipAmity Institute of Information Technology

A realization relationship
<<interface>>
connects a class with an
ControlPanel
interface that supplies its
specifier behavioral specification. It is
rendered by a dashed line with
a hollow triangle towards the
specifier.
implementation

VendingMachine
Interfaces Amity Institute of Information Technology

inputStream

FileWriter
{file must not be locked}

A class’ interface can also be


rendered by a circle
File
connected to a class by a
solid line.

{file must exist} FileReader


outputStream
Parameterized Class Amity Institute of Information Technology

T A parameterized class or
LinkedList template defines a family of
potential elements.
To use it, the parameter must be
T bound.
1 .. *
A template is rendered by a small
dashed rectangle superimposed on
the upper-right corner of the class
rectangle. The dashed rectangle
contains a list of formal
parameters for the class.
Parameterized Class (Cont’d) Amity Institute of Information Technology

T
LinkedList Binding is done with the <<bind>>
stereotype and a parameter to
supply to the template. These are
T
adornments to the dashed arrow
1..*
denoting the realization
relationship.
Here we create a linked-list of
<<bind>>(Name) names for the Dean’s List.

DeansList
Enumeration Amity Institute of Information Technology

<<enumeration>> An enumeration is a user-defined


Boolean data type that consists of a name and
false an ordered list of enumeration
true literals.
Exceptions Amity Institute of Information Technology

<<exception>> Exceptions can be modeled


Exception just like any other class.

getMessage() Notice the <<exception>>


printStackTrace() stereotype in the name
compartment.

<<exception>> <<exception>>
KeyException SQLException
Packages Amity Institute of Information Technology

A package is a container-like element


for organizing other elements into
groups.
A package can contain classes and
Compiler
other packages and diagrams.
Packages can be used to provide
controlled access between classes in
different packages.
Packages (Cont’d) Amity Institute of Information Technology

Classes in the FrontEnd package and classes in the BackEnd


package cannot access each other in this diagram.

Compiler

FrontEnd BackEnd
Packages (Cont’d) Amity Institute of Information Technology

Classes in the BackEnd package now have access to the classes


in the FrontEnd package.

Compiler

FrontEnd BackEnd
Packages (Cont’d) Amity Institute of Information Technology

We can model generalizations and


Compiler dependencies between packages.

JavaCompiler Java
Component Diagram Amity Institute of Information Technology

Component diagrams are one of the two kinds of diagrams


found in modeling the physical aspects of an object-oriented
system. They show the organization and dependencies
between a set of components.
Use component diagrams to model the static
implementation view of a system. This involves modeling
the physical things that reside on a node, such as
executables, libraries, tables, files, and documents.
- The UML User Guide, Booch et. al., 1999

Software Design (UML)


Component Diagram Amity Institute of Information Technology

path.dll collision.dll

Here’s an example of a component


model of an executable release.
driver.dll
version = 8.1.3.2
[Booch,99]
IDrive

ISelfTest

Software Design (UML)


Component Diagram Amity Institute of Information Technology

signal.h signal.h signal.h


version = 3.5 version = 4.0 version = 4.1

“parent” “parent”

signal.cpp
interp.cpp version = 4.1
Modeling source code.
[Booch, 99]
irq.h device.cpp

Software Design (UML)


Deployment Diagram Amity Institute of Information Technology

Deployment diagrams are one of the two kinds of diagrams


found in modeling the physical aspects of an object-oriented
system. They show the configuration of run-time processing
nodes and the components that live on them.
Use deployment diagrams to model the static deployment
view of a system. This involves modeling the topology of
the hardware on which the system executes.
- The UML User Guide, [Booch,99]

Software Design (UML)


Deployment Diagram Amity Institute of Information Technology

A component is a physical unit of implementation with well-


defined interfaces that is intended to be used as a replaceable
part of a system. Well designed components do not depend
directly on other components, but rather on interfaces that
components support.
- The UML Reference Manual, [Rumbaugh,99]

component
spell-check
Dictionary interfaces
synonyms

Software Design (UML)


Deployment Diagram Amity Institute of Information Technology

<<database>>
stereotyped
Account component

Transactions Update interface

usage dependency
component

ATM-GUI

realization dependency
[Rumbaugh,99]

Software Design (UML)


Deployment Diagram Amity Institute of Information Technology

server:HostMachine
<<database>>

meetingsDB
Deployment diagram
of a client-server
:Scheduler reservations system.
<<direct channel>>

clientMachine:PC
[Rumbaugh,99]

:Planner

Software Design (UML)


Software Design Amity Institute of Information Technology

Dynamic Modeling using the


Unified Modeling Language
(UML)

Software Design (UML)


Use Case Amity Institute of Information Technology

“A use case specifies the behavior of a system or a part of a


system, and is a description of a set of sequences of actions,
including variants, that a system performs to yield an observable
result of value to an actor.”
- The UML User Guide, [Booch,99]

“An actor is an idealization of an external person, process, or


thing interacting with a system, subsystem, or class. An actor
characterizes the interactions that outside users may have with
the system.”
- The UML Reference Manual, [Rumbaugh,99]

Software Design (UML)


Copyright © Amity University
Use Case (Cont’d) Amity Institute of Information Technology

A use case is rendered as an ellipse


Register for Courses
in a use case diagram. A use case is
always labeled with its name.

Software Design (UML)


Use Case (Cont’d) Amity Institute of Information Technology

An actor is rendered as a stick


figure in a use case diagram.
Each actor participates in one or
more use cases.

Student

Software Design (UML)


Use Case (Cont’d) Amity Institute of Information Technology

Actors can participate in a generalization relation with other


actors.

Student Person

Software Design (UML)


Use Case (Cont’d) Amity Institute of Information Technology

Actors may be connected to use cases


only by associations.

Register for Courses

Student

Software Design (UML)


Use Case (Cont’d) Amity Institute of Information Technology

Here we have a Student interacting with the Registrar and the


Billing System via a “Register for Courses” use case.

Billing System

Student Register for Courses

Registrar

Software Design (UML)


State Machine Amity Institute of Information Technology

“The state machine view describes the dynamic behavior of


objects over time by modeling the lifecycles of objects of each
class. Each object is treated as an isolated entity that
communicates with the rest of the world by detecting events and
responding to them. Events represent the kinds of changes that
objects can detect... Anything that can affect an object can be
characterized as an event.”

- The UML Reference Manual, [Rumbaugh,99]

Software Design (UML)


State Machine Amity Institute of Information Technology

An object must be in some specific state at any given time during


its lifecycle. An object transitions from one state to another as the
result of some event that affects it. You may create a state
diagram for any class, collaboration, operation, or use case in a
UML model .
There can be only one start state in a state diagram, but there may
be many intermediate and final states.

Software Design (UML)


State Machine Amity Institute of Information Technology

start state final state

simple state

concurrent composite state

sequential composite state

Software Design (UML)


State Machine Amity Institute of Information Technology

download course offerings downloading


unscheduled
make a course selection

selecting

make a different selection verify selection

verifying
select another course

check schedule
sign schedule
checking schedule

scheduled

Software Design (UML)


Sequence Diagram Amity Institute of Information Technology

A sequence diagram is an interaction diagram that emphasizes


the time ordering of messages. It shows a set of objects and the
messages sent and received by those objects.

Graphically, a sequence diagram is a table that shows objects


arranged along the X axis and messages, ordered in increasing
time, along the Y axis.

- The UML User Guide, [Booch,99]

Software Design (UML)


Sequence Diagram Amity Institute of Information Technology

an Order Line

An object in a sequence diagram is rendered


as a box with a dashed line descending from it.
The line is called the object lifeline, and it
represents the existence of an object over a
period of time.

Software Design (UML)


Sequence Diagram Amity Institute of Information Technology

an Order Line a Stock Item

Messages are rendered as horizontal


check() arrows being passed from object to
[check = “true”] object as time advances down the
remove()
object lifelines. Conditions ( such as
[check = “true”] ) indicate when a
message gets passed.

Software Design (UML)


Sequence Diagram Amity Institute of Information Technology

an Order Line a Stock Item

check()

[check = “true”] Notice that the bottom arrow is


remove() different. The arrow head is not solid,
and there is no accompanying message.

This arrow indicates a return from a


previous message, not a new message.

Software Design (UML)


Sequence Diagram Amity Institute of Information Technology

an Order a Order Line

* prepare()
An iteration marker, such as * (as
shown), or *[i = 1..n] , indicates
that a message will be repeated as
Iteration indicated.
marker

Software Design (UML)


an Order Entry
window
an Order an Order Line a Stock Item [Fowler,97]
Amity Institute of Information Technology

prepare()
Condition
* prepare()
Object
check()

Message [check = “true”]


remove() needsToReorder()
Iteration
Return Self-Delegation
[needsToReorder = “true”]
new
A Reorder
Item
[check = “true”]
A Delivery
new
Item

Creation

Software Design (UML)


Collaboration Diagram Amity Institute of Information Technology

A collaboration diagram emphasizes the relationship of the


objects that participate in an interaction. Unlike a sequence
diagram, you don’t have to show the lifeline of an object
explicitly in a collaboration diagram. The sequence of events
are indicated by sequence numbers preceding messages.
Object identifiers are of the form objectName : className, and
either the objectName or the className can be omitted, and the
placement of the colon indicates either an objectName: , or
a :className.

Software Design (UML)


Collaboration Diagram Amity Institute of Information Technology

: Order Entry Window Object


Sequence Number

1: prepare() Message

: Order Self-Delegation
5: needToReorder()

2*: prepare() 3: check()


4: [check == true] remove()
: Order Line : Stock Item

7: [check == true] new 6: new

:Delivery Item :Reorder Item

[Fowler,97]

Software Design (UML)


Collaboration Diagram
Sequence Diagram Amity Institute of Information Technology

Both a collaboration diagram and a sequence diagram derive


from the same information in the UML’s metamodel, so you can
take a diagram in one form and convert it into the other. They
are semantically equivalent.

Software Design (UML)


Activity Diagram Amity Institute of Information Technology

An activity diagram is essentially a flowchart, showing the


flow of control from activity to activity.
Use activity diagrams to specify, construct, and document the
dynamics of a society of objects, or to model the flow of
control of an operation. Whereas interaction diagrams
emphasize the flow of control from object to object, activity
diagrams emphasize the flow of control from activity to
activity. An activity is an ongoing non-atomic execution
within a state machine.
- The UML User Guide, [Booch,99]

Software Design (UML)


Receive
Order [Fowler,97]
Amity Institute of Information Technology

Multiple Trigger

for each line


* item on order

Check
Cancel Authorize
Line
Order [failed]
Payment
Item

[succeeded] [in stock]

Assign to
Order

Synchronization Condition

[need to
reorder] Reorder
Item
[stock assigned to
all line items and
payment authorized]

Dispatch
Order

Software Design (UML)


References Amity Institute of Information Technology

[Booch99] Booch, Grady, James Rumbaugh, Ivar Jacobson,


The Unified Modeling Language User Guide, Addison Wesley, 1999

[Rambaugh99] Rumbaugh, James, Ivar Jacobson, Grady Booch, The Unified


Modeling Language Reference Manual, Addison Wesley, 1999

[Jacobson99] Jacobson, Ivar, Grady Booch, James Rumbaugh, The Unified


Software Development Process, Addison Wesley, 1999

[Fowler, 1997] Fowler, Martin, Kendall Scott, UML Distilled


(Applying the Standard Object Modeling Language),
Addison Wesley, 1997.

[Brown99] First draft of these slides were created by James Brown.

Software Design (UML)

You might also like