SlideShare a Scribd company logo
UML Diagrams
Presented by
Prianka .R.R
What is UML?
• Standard language for specifying, visualizing,
constructing, and documenting the artifacts of
software systems, business modeling and other non-
software systems.
• The UML is a very important part of developing
object oriented software and the software
development process.
• The UML uses mostly graphical notations to express
the design of software projects.
3
As a Sketch
• Most common use of UML
• Used to help communicate some aspect of a system and to better
understand it
• Used for both forward engineering (i.e., build diagrams before coding) and
reverse engineering (i.e., build diagrams from existing code)
• Strives to be informal and dynamic
• Only emphasizes those classes, attributes, operations, and relationships
that are of interest
• More concerned with selective communication than complete
specification
4
As a Blueprint
• Goal is completeness
• Is more definitive, while the sketch approach is more explorative
• Used to describe a detailed design for a programmer to follow in
writing source code
• Notation should be sufficiently complete so that a programmer can
follow it in a straightforward manner
• Can be used by a designer to develop blueprint-level models that
show interfaces of subsystems or classes
– Developers then work out the implementation details
• As a reversed engineered product, diagrams convey detailed
information about the source code that is easier for developers to
understand
5
As a Programming Language
• Specifies the complete system in UML so that code can be
automatically generated
• Looks at UML from a software perspective rather than a conceptual
perspective which concentrates on the domain of study
• Diagrams are compiled directly into executable code so that the UML
becomes the source code
• Challenge is making it more productive to use UML rather than some
another programming language
• Another concern is how to model behavioral logic
– Done with interaction diagrams, state diagrams, and activity diagrams
Overview of UML Diagrams
UML 2.0: 12 diagram types
Structural
: element of spec. irrespective of time
• Class ; Object
• Component
• Deployment
• Composite structure
• Package
Behavioral
: behavioral features of a system / business
process
• Activity
• State machine
• Use case
• Interaction
Interaction
: emphasize object interaction
• Communication(collaberati
on); Sequence
• Interaction overview
• Timing
7
3 basic building blocks of UML - Diagrams
Graphical representation of a set of elements.
Represented by a connected graph: Vertices are things; Arcs are relationships/behaviors.
5 most common views built from
UML 1.x: 9 diagram types. Behavioral Diagrams
Represent the dynamic aspects.
– Use case
– Sequence;
Collaboration
– Statechart
– Activity
Structural Diagrams
Represent the static aspects of a system.
– Class;
Object
– Component
– Deployment
Interction Diagrams
– Sequence;
Communication
– Interaction Overview
– Timing
8
Class Diagrams
Structural Diagrams
– Class;
Object
– Component
– Deployment
– Composite Structure
– Package
9
Class Diagram
Three modeling perspectives for Class Diagram
 Conceptual: the diagram reflects the domain
 Specification: focus on interfaces of the software (Java supports interfaces)
 Implementation: class (logical database schema) definition to be implemented in
code and database.
The basis for all object modeling
All things lead to this
Most users of OO methods take an implementation perspective, which is a shame because the
other perspectives are often more useful. -- Martin Fowler
• Most common diagram.
• Shows a set of classes, interfaces, and collaborations and their relationships
(dependency, generalization, association and realization); notes too.
• Represents the static view of a system (With active classes, static process view)
10
Names
Customer
Account
Bank
Java::awt::Polygon
simple name - start w. upper cas
path name = package name ::package name::name
only the name compartment, ok
Attributes
short noun - start w. lower ca
balance: Real = 0
type/class
default value
<<constructor>>
+addAccount()
<<process>>
+setBalance( a : Account)
+getBalance(a: Account): Amount
…
<<query>>
isValid( loginID : String): Boolean
signature
Operations
may cause object to
change state
Classes
ellipsis for additional
attributes or operations
stereotypes to categorize
11
Responsibilities
• A collaborator is also a class which the (current) class interacts with to fulfill a responsibility
Responsibilities
-- handles deposits
-- reports fraud to managers
Account
• anything that a class knows or does
(Contract or obligation)
• An optional 4th item carried out by attributes and operations.
• Free-form text; one phrase per responsibility.
• Technique - CRC cards (Class-Responsibility-Collaborator); Kent Beck and Ward
Cunningham’89
Customer
AccountOpens account
Knows name
Knows address
Account
ManagerKnows interest rate
Knows balance
Handles deposits
Reports fraud to
manager
12
Scope & Visibility
+ addMessage( m : Message ) : Status
# setCheckSum()
- encrypt()
header : FrameHeader
uniqueID : Long
Frame
class scope
public
protected
private
• Public - access allowed for any outside classifier (+).
• Protected - access allowed for any descendant of the classifier (#).
• Private - access restricted to the classifier itself (-).
• (using adornments in JBuilder)
Instance scope
• Instance Scope — each instance of the classifier holds its own value.
• Class Scope — one value is held for all instances of the classifier (underlined).
- getClassName()
Public
class
Private
class
Protected
class
Public
method
Public
attribute
13
consolePort [ 2..* ] : Port
NetworkController
1
ControlRod
3
multiplicity
singleton
public class Singleton {
private static Singleton instance = null;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
Multiplicity
Singleton
- instance
+ getInstance():Singleton
consolePort [ 2..* ] : Port
NetworkController
Using Design Pattern
14
Relationships
Window
open()
close()
ConsoleWindow DialogBox Control
Event
association
dependency
generalization
SetTopController
authorizationLevel
startUp()
shutDown()
Connect()
<<interface>>
URLStreamHandler
openConnection()
parseURL()
setURL()
toExternalForm()
PowerManager
ChannelIterator
Controller EmbeddedAgent
<<friend>>
generalization
(multiple inheritance)
association navigation
stereotyped dependencyrealization
15
AudioClip
Dependency
• A change in one thing may affect another.
record(m:Microphone)
start()
stop()
Microphone
name
dependency
• The most common dependency between two classes is one where one class
<<use>>s another as a parameter to an operation.
CourseSchedule
addCourse(c : Course)
removeCourse(c : Course
Course
Usually initial class diagrams will not have any significant number of dependencies in the
beginning of analysis but will as more details are identified.
Using relationship
16
Dependency – Among Classes
AbstractClass {abstract}
attribut
e
concreteOperation()
abstractOperation()
<<metaclass>>
MetaClassName
<<interface>>
InterfaceName
operation()
ClassName
-simpleAttribute: Type = Default
#classAttribute: Type
+/derivedAttribute: Type
+operation(in arg: Type = Default): ReturnType
objectName: ClassName
Attribute = value
simpleAttribute: Type = Default
classAttribute: Type
/derivedAttribute: Type
ClientClass
<<use>>
<<instanceOf>>
<<instanceOf>>
realizationgeneralization
17
Dependency –Among Classes
• Eight Stereotypes of Dependency Among Classes
– bind: the source instantiates the target template using the given actual
parameters
– derive: the source may be computed from the target
– friend: the source is given special visibility into the target
– instanceOf : the source object is an instance of the target classifier
– instantiate: the source creates instances of the target
– powertype: the target is a powertype of the source; a powertype is a
classifier whose objects are all the children of a given parent
– refine: the source is at a finer degree of abstraction than the target
– use: the semantics of the source element depends on the semantics of the
public part of the target
18
Dependency –Among Use Cases
• Two Stereotypes of Dependency Among Use Cases:
– extend: the target use case extends the behavior of the source
– include: the source use case explicitly incorporates the behavior of another use case
at a location specified by the source
Use Case A
Use Case B Use Case C
<<extend>><<include>>
System
Actor
<<actor>>
Actor
Supply Customer Info.
Request Catalog<<extend>>
<<include>>
Order Processing System
SalesPerson
Order Item Make Payment
<<include>> <<include>>
The sales person
asks for the catalog
Place Order
Extension points
Additional requests:
after creation of
the order
1 *
19
Object Diagrams
Structural Diagrams
– Class;
Object
– Component
– Deployment
– Composite Structure
– Package
20
Instances & Object Diagrams
 “instance” and “object” are largely synonymous; used interchangeably.
 difference:
 instances of a class are called objects or instances; but
 instances of other abstractions (components, nodes, use cases, and associations)
are not called objects but only instances.
What is an instance of an association called?
Object Diagrams
 very useful in debugging process.
– walk through a scenario (e.g., according to use case flows).
– Identify the set of objects that collaborate in that scenario (e.g., from use case
flows).
– Expose these object’s states, attribute values and links among these objects.
21
: keyCode
Instances & Objects - Visual Representation
: Multimedia :: AudioStream
t : Transaction
myCustomer
r : FrameRenderThread
c : Phone
[WaitingForAnswer]
myCustomer
id : SSN = “432-89-1738”
active = True
agent :
named instance
instance with current state
instance with attribute values
active object
(with a thicker border; owns a
thread or process and can initiate
control activity)
multiobject orphan instance
(type unknown)
anonymous instance
22
Instances & Objects - Modeling Concrete Instances
• Expose the stereotypes, tagged values, and attributes.
• Show these instances and their relationships in an object diagram.
current: Transaction
primaryAgent
[searching]
: Transaction
LoanOfficer
<<instanceOf>>
current := retrieve()
Instances & Objects - Modeling Prototypical Instances
• Show these instances and their relationships in an interaction diagram or an activity
diagram.
a: CallingAgent c: Connection
1 : create
2: enableConnection
2.1 : startBilling
23
Instances & Objects – More Examples
client servers
1: aServer := find(criteria)
d: Directory
1: sort()list()
contents: File
d: Directory
1: addElement(f)addFile(f:File)
contents: File
:Server
aServer:Server
2: process(request)
c : Company
s : Department
name = “Sales”
uss : Department
name = “US Sales”
erin : Person
name = “Erin”
employeeID = 4362
title = “VP of Sales”
rd : Department
name = “R&D”
: ContactInfomation
address = “1472 Miller St.”
manager
call ::= label [guard] [“*”] [return-val-list “:=“] msg-name “(“ arg-list “)”
d: Directory
1*: changeMode(readOnly)secureAll()
f: File *
24
Component Diagrams
Structural Diagrams
– Class;
Object
– Component
– Deployment
– Composite Structure
– Package
25
Component Diagram
 Shows a set of components and their relationships.
 Represents the static implementation view of a system.
 Components map to one or more classes, interfaces, or collaborations.
classes
loanOfficer.dll component
LoanOfficer
LoanPolicy
CreditSearch
Registrar.exe
Course.dll
Student.dll
Components and their RelationshipsMapping of Components into Classes
UML1.x – implementation view
26
Component Diagram UML2.0 – architectural view
• Short history behind architecture
• Architecture still an emerging discipline
• Challenges, a bumpy road ahead
• UML and architecture evolving in parallel
• Component diagram in need of better
formalization and experimentation
27
Component Diagram – another example
(www.cs.tut.fi/tapahtumat/olio2004/richardson.pdf)
28
Component Diagram – another example
(www.cs.tut.fi/tapahtumat/olio2004/richardson.pdf)
29
Component Diagram – another example
(www.cs.tut.fi/tapahtumat/olio2004/richardson.pdf)
30
Component Diagram UML2.0 – architectural view
ComponentComponent
Explicit description of interfaces:
 provided services to other components
 requested services from other components
 An interface is a collection of 1..* methods, and 0..* attributes
 Interfaces can consist of synchronous and / or asynchronous operations
 A port (square) is an interaction point between the component and its environment.
 Can be named; Can support uni-directional (either provide or require) or bi-directional (both provide and require)
communication; Can support multiple interfaces.
 possibly concurrent interactions
 fully isolate an object’s internals from its environment
lollipop
socket
Student
StudentAdministration
StudentSchedule
AccessControl
Encription
Persistence
DataAccess
security
Data[1..*]
Incoming
signals/calls Outgoing
signals/calls
caller or callee?
31
Component Diagram: UML 1.x and UML 2.0
(http://www.agilemodeling.com/artifacts/componentDiagram.htm)
32
Component Diagram: UML 1.x and UML 2.0
(http://www.agilemodeling.com/artifacts/componentDiagram.htm)
So, how many different conventions for components in UML2.0?
33
Building a Component
 simplified the ports to either provide or require a single interface
 relationships between ports and internal classes in three different ways:
i) as stereotyped delegates (flow), as delegates, and as realizes (logical->physical) relationships
Cohesive reuse and change of classes; acyclic component dependency ???
34
Component Diagram – Connector & Another Example
delegation
Left delegation: direction of arrowhead indicates
“provides”
delegation
assembly
connector
 a connector: just a link between two or more connectable elements (e.g., ports or
interfaces)
 2 kinds of connectors: assembly and delegation. For “wiring”
 An assembly connector: a binding between a provided interface and a required
interface (or ports) that indicates that one component provides the services required by
another; simple line/ball-and-socket/lollipop-socket notation
 A delegation connector binds a component’s external behavior (as specified at a port)
to an internal realization of that behavior by one of its parts (provide-provide, request-request).
Right delegation: direction of arrowhead indicates
“requests”
store
So, what levels of abstractions for connections?
35
Structured Class
 A structured class(ifier) is defined, in whole or in part, in terms of a number of parts -
contained instances owned or referenced by the structured class(ifier).
 With a similar meaning to a composition relation
 A structured classifier’s parts are created within the containing classifier (either when the
structured classifier is created or later) and are destroyed when the containing classifier is
destroyed.
 Like classes and components, combine the descriptive capabilities of structured classifiers
with ports and interfaces
Components extend classes with additional features such as
 the ability to own more types of elements than classes can; e.g., packages, constraints,
use cases, and artifacts
 deployment specifications that define the execution parameters of a component
deployed to a node
label /roleName : type
connector
Any difference?
component or
class?
36
move()
resize()
display()
origin
Shape
IUnknown
<<type>>
Int
{ values range from
-2**31 to +2**31 - 1 }
<<signal>>
OffHook
Process loan
<<subsystem>>
Customer Service
egb_server
kernel32.dll
class interface
data type
signal
use case
subsystem
nodecomponent
move()
resize()
display()
origin
Shape
<<type>>
Int
{ values range from
-2**31 to +2**31 - 1 }
<<signal>>
OffHook
Process loan
<<subsystem>>
Customer Service
membership_server
kernel32.dll
class interface
data type
signal
use case
nodecomponent
an asynchronous stimulus
communicated between instances
Classifiers
• Classifier—mechanism that describes structural (e.g. class attributes) and behavioral
(e.g. class operations) features. In general, those modeling elements that can have
instances are called classifiers.
• cf. Packages and generalization relationships do not have instances.
Generalizable Element, Classifier, Class, Component?
37
Structured Class – Another Example
what kind?
38
Deployment Diagrams
Structural Diagrams
– Class;
Object
– Component
– Deployment
– Composite Structure
– Package
39
Deployment Diagram
J2EE
Server
Membership
Server
IIS + PhP Server
Tomcat
Server
TCP/IP
TCP/IP
DecNet
• Shows a set of processing nodes and their relationships.
• Represents the static deployment view of an architecture.
• Nodes typically enclose one or more components.
40
Structural Diagrams - Deployment Diagram
(http://www.agilemodeling.com/artifacts/deploymentDiagram.htm)
Student administration application
Physical nodes - stereotype device
WebServer - physical device or
software artifact
RMI/message bus: connection type
Nodes can contain other nodes
or software artifacts recursively
 Deployment specs: configuration files:
name and properties
41
Structural Diagrams - Deployment Diagram
(http://www.agilemodeling.com/artifacts/deploymentDiagram.htm)
Is this better?
More concrete
Implementation-oriented
Types of nodes in deployment
• Device Node
- It represent the physical
computing device having
processor and memory.
- It is responsible for
executing software
system.
Eg: Bank Server, Computer,
mobile phone etc.
• Execution Environment
Node(EEN)
- This is the software
computing resource
which typically executes
on device node.
- Following are choices of
EEN-
Database Engine, Web
Browser,WorkFlow
engine, Servlet container,
OS Software
43
Package Diagrams
Structural Diagrams
– Class;
Object
– Component
– Deployment
– Composite Structure
–Package
44
Packages
• Package — general-purpose mechanism for organizing elements into groups.
Business rules
Client
Sensors::Vision
{ version = 2.24 }
simple names
enclosing package name
package name
path names
+ OrderForm
+ TrackingForm
- Order
Client Client
+OrderForm
+TrackingForm
-Order
graphical nestingtextual nesting
visibility
• Nested Elements: Composite relationship (When the whole dies, its parts
die as well, but not necessarily vice versa)
• (C++ namespace; specialization means “derived”)
Visibility
• Packages that are friends to another may see all the elements of that package,
no matter what their visibility.
• If an element is visible within a package, it is visible within all packages nested
inside the package.
45
Dependency –Among Packages
• Two Stereotypes of Dependency Among Packages:
– access: the source package is granted the right to reference the elements of the
target package (:: convention)
– import: a kind of access; the public contents of the target package enter the flat
namespace of the source as if they had been declared in the source
packageName
packageName
subPackageName
packageName
PackageClass
<<import>> <<access>>
+ OrderForm
+ TrackingForm
- Order
Client
+OrderRules
-GUI:Window
Policies <<import>>
+Window
+Form
#EventHandler
GUI
<<import>>
imports
exports
46
Modeling Groups of Elements
• Look for “clumps” of elements that are semantically close to one another.
• Surround “clumps” with a package.
• Identify public elements of each package.
• Identify import dependencies.
utd.administration
Tools.db
registration
db interfaces
Cloudscape Oracle
Java.awt
Use Case package Diagram
• Included and extending use cases belong in the same
package as the parent/base use case
• Cohesive, and goal-oriented packaging
• Actors could be inside or outside each package
47
Class Package Diagrams
(http://www.agilemodeling.com/artifacts/packageDiagram.htm)
• Classes related through inheritance, composition or communication often
belong in the same package
Seminar
Registration
<<application>>
Schedule
Student
Professor
Java
Infrastructure
<<technical>>
<<import>>
Contact
Point
<<import>>
<<import>>
<<import>>
<<import>>
• A frame depicts the contents of a package (or components, classes, operations, etc.)
• Heading: rectangle with a cut-off bottom-right corner, [kind] name [parameter]
Seminar Course
Enrollment
Location
Time
1
0..*
1..* 1
1..*
1
held at
Package Schedule
A frame encapsulates
a collection of collaborating instances or
refers to another representation of such
48
Common Mechanisms
•Adornments
Notes & Compartments
•Extensibility Mechanisms
–Stereotypes - Extension of the UML metaclasses.
–Tagged Values - Extension of the properties of a UML element.
–Constraints - Extension of the semantics of a UML element.
49
Adornments
• Textual or graphical items added to an element’s basic notation.
• Notes - Graphical symbol for rendering constraints or comments attached to an element
or collection of elements; No Semantic Impact
Rendered as a
rectangle with a dog-
eared corner.
See smartCard.doc for
details about this
routine.May contain combination of
text and graphics.
May contain URLs linking to
external documents.
See http://www.rational.com
for related info.
Additional Adornments
• Placed near the element as
– Text
– Graphic
• Special compartments for adornments in
– Classes
– Components
– Nodes
Transaction
Exceptions
addAction()
Resource Locked
named
compartment
anonymous
compartment
Client
bill.exe
report.exe
contacts.exe
50
Stereotypes
• Allow controlled extension of metamodel classes.
[UML11_Metamodel_Diagrams.pdf]
• Graphically rendered as
– Name enclosed in guillemets (<< >> )
• <<stereotype>>
– New icon
«metaclass»
ModelElement
Internet
• The new building block can have
• its own special properties through a set of tagged values
• its own semantics through constraints
• Mechanisms for extending the UML vocabulary.
• Allows for new modeling building blocks or parts.
51
Tagged Values
Server
{channels = 3}
<<library>>
accounts.dll
{customerOnly}
tagged values
• a (name, value) pair describes a property of a model element.
• Properties allow the extension of “metamodel” element
attributes.
• modifies the semantics of the element to which it relates.
• Rendered as a text string enclosed in braces { }
• Placed below the name of another element.
«subsystem»
AccountsPayable
{ dueDate = 12/30/2002
status = unpaid }
52
Constraints
Portfolio
BankAccount
{secure}
A simple constraint
• Extension of the semantics of a UML element.
• Allows new or modified rules
• Rendered in braces {}.
– Informally as free-form text, or
– Formally in UML’s Object Constraint Language (OCL):
E.g., {self.wife.gender = female and self.husband.gender = male}
Constraint across multiple elements
Corporation
BankAccount
{or}
Person
id : {SSN, passport}
Department
Person
**
1..* 1member manager
{subset}
Person
age: Integer
Compan
y
employersemployees
0..* 0..*
Company
self.employees.forAll(Person p |
p.age >= 18 and p.age <= 65)
53
Appendix
Some Additional Material
54
Classes: Notation and Semantics
Class - Name
attribute-name-1 : data-type-1 = default-value-1
attribute-name-2 : data-type-2 = default-value-2
operation-name-1 ( argument-list-1) : result-type-1
operation-name-2 ( argument-list-2) : result-type-2
responsibilities
To model the <<semantics>> (meaning) of a class:
 Specify the body of each method (pre-/post-conditions and invariants)
 Specify the state machine for the class
 Specify the collaboration for the class
 Specify the responsibilities (contract)
55
Attributes
• Syntax
[ visibility ] name [ multiplicity ] [ : type ] [ = initial-value ] [ {property-string } ]
• Visibility
+ public; - private; # protected; {default = +}
• type
– There are several defined in Rational Rose.
– You can define your own.
• property-string
Built-in property-strings:
– changeable—no restrictions (default)
– addOnly—values may not be removed or altered, but may be added
– frozen—may not be changed after initialization
Or you can define your own: e.g. {leaf}
origin Name only
+ origin Visibility and name
origin : Point Name and type
head : *Item Name and complex type
name [ 0..1 ] : String Name, multiplicity, and type
origin : Point = { 0, 0 } Name, type, and initial value
id : Integer { frozen } Name and property
56
Operations
• Syntax
[ visibility ] name [ (parameter-list ) ] [ : return-type ] [ (property-string) ]
• Visibility
+ public; - private; # protected; {default = +}
• parameter-list syntax
[ direction ] name : type [ = default-value ]
• direction
– in—input parameter; may not be modified
– out—output parameter; may be modified
– inout—input parameter; may be modified
• property-string
– leaf
– isQuery—state is not affected
– sequential—not thread safe
– guarded—thread safe (Java synchronized)
– concurrent—typically atomic; safe for multiple flows of control
57
Template Classes; Primitive Types
• A template class is a parameterized element and defines a family of classes
• In order to use a template class, it has to be instantiated
• Instantiation involves binding formal template parameters to actual ones, resulting in a concrete
class
+ bind( in i : Item; in v : Value ) : Boolean
+ isBound( in i : Item ) : Boolean {isQuery}
Map
Item
Value
Buckets : int
Map< Customer, Order, 3 >
OrderMap
<<bind>> ( Customer, Order, 3 )
explicit binding
implicit binding
template class
template parameters
Uses <<bind>>
Item Value Buckets
Primitive Types
using a class notation <<enumeration
>>
Booleanfalse
true
<<dataType>>
Int
{ value range
–2**31 to +2**31-
1
constraint
stereotype
58
Package Diagrams: Standard Elements
• Façade — only a view on some other package.
• Framework — package consisting mainly of patterns.
• Stub — a package that serves as a proxy for the public
contents of another package.
• Subsystem — a package representing an independent part of
the system being modeled.
• System — a package representing the entire system being
modeled.
Is <<import>> transitive?
Is visibility transitive?
Does <<friend>> apply to all types of visibility: +, -, #?
59
Dependency –Among Objects
• 3 Stereotypes of Dependency in Interactions among Objects:
– become: the target is the same object as the source but at a later point in
time and with possibly different values, state, or roles
– call: the source operation invokes the target operation
– copy: the target object is an exact, but independent, copy of the source
7. UML in the Software Process
61
Fitting UML into
Software Requirements Analysis
• A use case diagram helps describe how people interact with the system
• An activity diagram shows the context for use cases and also the details of
how a complicated use case works
• A class diagram drawn from the conceptual perspective is a good way of
building up a rigorous vocabulary of the domain
– It also shows the attributes and operations of interest in domain classes and
the relationships among the classes
• A state diagram shows the various states of a domain class and events that
change that state
62
Fitting UML into
Software Design
• A class diagram drawn from the software perspective can show design
classes, their attributes and operations, and their relationships with
the domain classes
• A sequence diagram helps to combine use cases in order to see what
happens in the software
• A package diagram shows the large-scale organization of the software
• A state diagram shows the various states of a design object and
events that change that state
• A deployment diagram shows the physical layout of the software
63
Fitting UML into
Software Documentation
• Complements the written documentation and in some instances can
replace it
• Captures the outcome of the requirements analysis and design
activities in a graphical format
• Supplies a software maintainer with an overall understanding of a
system
• Provides a good logical roadmap of the system layout
• Describes the various states in which a system may exist
• Details complex algorithms in a more understandable form
• Shows how multiple objects collaborate in the system
Activity Diagram
Behavioral Diagrams
Represent the dynamic aspects.
– Use case
– Sequence;
Collaboration
– Statechart
–Activity
Activity Diagrams
• Model business workflows
• Identify candidate use cases, through the
examination of business workflows
• Identify pre- and post-conditions for use cases
• Model workflows between/within use cases
• Model complex workflows in operations on
objects
• Model in detail complex activities in a high
level activity diagram
Activity Diagrams
• Activities and Actions
• Transitions and Activity Edges
• Tokens and Activity Nodes
• Control Nodes
– Initial and Final Nodes
– Forks and Joins
– Decision and Merge Points
• States
• Swimlanes
67
Activity diagrams
• Useful to specify software or hardware system behaviour
• Based on data flow models – a graphical representation (with
a Directed Graph) of how data move around an information
system
Fill
Order
Ship
Order
Send
Invoice
Accept
Payment
Close
Order
Make Payment
[order
accepted]
Invoice
Receive
Order
[order reject]
68
Parameter
name
Parameter
name Parameter
name
Output
parameter
Activity
nodes
Activity
edgesInput
parameter
Activities
• An activity is the specification of parameterized behaviour as the
coordinated sequencing of subordinate units whose individual
elements are actions
• Uses parameters to receive and provide data to the invoker
 An action can invoke an activity to describe its action more finely
This action invokes the
activity Fill Order
69
Activity nodes
• Three type of activity nodes:
– Action nodes: executable activity nodes; the execution of an
action represents some transformations or processes in the
modeled system (already seen)
– Control nodes: coordinate flows in an activity diagram
between other nodes
– Object nodes: indicate an instance of a particular object, may
be available at a particular point in the activity (i.e Pins are
object nodes)
70
Activity edges (1)
• Are directed connections
• They have a source and a target, along which tokens may flow
• Any number of tokens can pass along the edge, in groups at
one time, or individually at different times
• Weight: determines the minimum number of tokens that
must traverse the edge at the same time
In this example we use a non-constant weight: an invoice for a particular job can
only be sent when all of its tasks have been completed
71
Control nodes – initial nodes
• In an activity the flow starts in initial nodes, that return the
control immediately along their outgoing edges
• If there are more than one initial node, a control token is
placed in each initial node when the activity is started,
initiating multiple flows
• If an initial node has more than one outgoing edge, only
one of these edges will receive control, because initial
nodes cannot duplicate tokens
A or B ?
72
Control nodes – decision nodes
• Route the flow to one of the outgoing edges (tokens are
not duplicated)
• Guards are specified on the outgoing edges or with the
stereotype «decisionInput»
• There is also the predefined guard [else], chosen only if
the token is not accepted by all the other edges
• If all the guards fail, the token remains at the source
object node until one of the guards accept it
73
Control nodes – merge nodes
• Bring together multiple alternate flows
• All controls and data arriving at a merge node
are immediately passed to the outgoing edge
• There is no synchronization of flows or joining
of tokens
74
Control nodes – fork nodes
• Fork nodes split flows into multiple concurrent flows
(tokens are duplicated)
• State machine forks in UML 1.5 required synchronization
between parallel flows through the state machine RTC step
(it means that the first state in each branch is executed,
then the second one, etc.)
• UML 2.0 activity forks model unrestricted parallelism
75
Control nodes – join nodes
• Join nodes synchronize multiple flows
• Generally, controls or data must be available on every incoming
edge in order to be passed to the outgoing edge, but user can
specify different conditions under which a join accepts incoming
controls and data using a join specification
76
Control nodes – final nodes
• Flow final:
– destroys the tokens that arrive into it
– the activity is terminated when all tokens in the graph are
destroyed
• Final node:
– the activity is terminated when the first token arrives
intentional race
between flows
77
Object nodes
• Hold data temporarily while they wait to move through the graph
• Specify the type of values they can hold (if no type is specified, they
can hold values of any type)
• Can also specify the state of the held objects
• There are four kinds of object nodes:
Pins
(three differents notations)
Activity Parameter
Nodes
Central Buffer
Nodes
Data Store
Nodes
Sequence Diagram
Behavioral Diagrams
Represent the dynamic aspects.
– Use case
–Sequence;
Collaboration
– Statechart
– Activity
Building a Sequence Diagrams
Class A
Class C
Class B
Class D
Use Case 1
Use Case 2
Use Case 3
Sequence diagrams capture the use-case
behavior using the foundation of the classes.
Sequence = Objects + messages
Introduction | Basics | Alternations | Modularity
Sequence Diagrams
p : Product : ShooppingCart
addProduct (p)
customer
display()
getPrice()
checkout ()
sd Product Buying
objects
message
Lifeline
activation
(focus of
control)
Diagram
Name
• A simple sequence diagram:
Introduction | Basics | Alternations | Modularity
Object Control
obj1 : Class1 obj2 : Class2
do (…)
: Class3
create (…)
obj1 : Class1
user
operate()
Object Creation
Object
Destruction
Return Message
foo()
Messages to self
Introduction | Basics | Alternations | Modularity
Illustration
Illustration
Corresponding Class Diagram
Notice that a dependency
exists whenever messages
are passed between
instances of the class
Dependencies can
be overridden by
associations,
aggregations etc.
Introduction | Basics | Alternations | Modularity
Sequences and Use-Cases
p : Product : ShooppingCart
addProduct (p)
: Order
create (…)
customer
display()
getPrice()
checkout ()
Introduction | Basics | Alternations | Modularity
Hidden partVisible part
Full Message Attributes
C3.1: res := getLocation (fig)
sequence number
return value
message name argument list
[sequence-expression]
[return-value :=] [message-name] [(argument-list)]
Introduction | Basics | Alternations | Modularity
Different Kinds of Messages
Synchronous Message
asynchronousMessage
Return Message
Introduction | Basics | Alternations | Modularity
Synchronous & Asynchronous
Messages
manager sensor eye
Nested Flow
check
check
operate
sensor manager alarm
Asynchronous Flow
unknown
ring
Price need to be finished,
before teller can do
another operation
(getName)
Ring is executed, while the
control flow is returned to
err handle and appl
unknown
log
Introduction | Basics | Alternations | Modularity
Example Example
Synchronous & Asynchronous
Messages
manager sensor eye
Nested Flow
check
check
operate
sensor manager alarm
Asynchronous Flow
unknown
ring
Price need to be finished,
before teller can do
another operation
(getName)
Ring is executed, while the
control flow is returned to
err handle and appl
unknown
log
Introduction | Basics | Alternations | Modularity
Example Example
Example
Options
archive(msg)
msg : Message : Database
opt
Do something...
[msg.status=confirmed]
Fragment
Condition
Introduction | Basics | Alternations | Modularity
Used for modeling simple
optional blocks.
Has one operand; no "else"
guard.
Alternatives
archive(msg)
msg : Message : Database
Condition
: Admin
alt
notify(msg.getID())
wait()
[msg.status=confirmed]
[msg.status=error]
[else]
Else
condition
(optional)
Alternative Fragment
group
Execution regions. At most
one will execute.
Introduction | Basics | Alternations | Modularity
Loops
Display()
: OS : Folder : File
loop
loop
Display()
[for each Folder]
[for each File]
Loop
Fragment
Condition
Nested Loop
Fragment
Introduction | Basics | Alternations | Modularity
Breaks
isLooged = login(name,pass)
: User : User Manager : Policy
addBadLogin(name)
break
[¬isLooged]
Do something…
Do something …
If the condition is met,
the break fragment is
executed, and the
reminder of the
sequence is ignored
Handy in model
exception
handling
Introduction | Basics | Alternations | Modularity
MODULARITY
We need ways to create modular scenarios
Introduction | Basics | Alternations | Modularity
Referencing a diagram
login(name,pass)
: User : User Manager : Policy
Login Handling(user,pass) :
bool
ref
Do something…
Do something …
Reference Gate
Introduction | Basics | Alternations | Modularity
BOOK BANK
MODULE: Registering
PRE-FUNCTION:
• Login to the website.
• Collection the required documents to be submitted for registration.
POST-FUNCTION:
• Verification of documents submitted.
• Conformation email sent accessing that authentication can be prevailed for the individual.
MODULE: Display book details
PRE-FUNCTION:
• Analyze the course of semester of logger.
POST-FUNCTION:
• Display the required book details
BOOK BANK
UML USECASE DIAGRAM
UML CLASS DIAGRAM:
UML SEQUENCE DIAGRAM:
UML COLLABRATION DIAGRAM:
UML STATE CHART DIAGRAM:
UML ACTIVITY DIAGRAM:
UML COMPONENT DIAGRAM:
UML DEPLOYEMENT DIAGRAM:
UML PACKAGE DIAGRAM:
Thank You


More Related Content

What's hot

Information Systems Analysis and Design Overview of OOAD, UML, and RUP
 Information Systems Analysis and Design Overview of OOAD, UML, and RUP Information Systems Analysis and Design Overview of OOAD, UML, and RUP
Information Systems Analysis and Design Overview of OOAD, UML, and RUPDang Tuan
 
UML Architecture and Views
UML Architecture and ViewsUML Architecture and Views
UML Architecture and ViewsKumar
 
M02 Uml Overview
M02 Uml OverviewM02 Uml Overview
M02 Uml OverviewDang Tuan
 
Uml diagrams
Uml diagramsUml diagrams
Uml diagramsbarney92
 
Lecture 4-oop class diagram
Lecture 4-oop class diagramLecture 4-oop class diagram
Lecture 4-oop class diagramktuonlinenotes
 
An Automatic Approach to Translate Use Cases to Sequence Diagrams
An Automatic Approach to Translate Use Cases to Sequence DiagramsAn Automatic Approach to Translate Use Cases to Sequence Diagrams
An Automatic Approach to Translate Use Cases to Sequence DiagramsMohammed Misbhauddin
 
Function oriented design
Function oriented designFunction oriented design
Function oriented designVidhun T
 
Object oriented analysis and design
Object oriented analysis and designObject oriented analysis and design
Object oriented analysis and designnaveed428
 
Intro to UML 2
Intro to UML 2Intro to UML 2
Intro to UML 2rchakra
 
Introducing Uml And Development Process
Introducing Uml And Development ProcessIntroducing Uml And Development Process
Introducing Uml And Development ProcessTerry Cho
 
Uml with detail
Uml with detailUml with detail
Uml with detailHamza Khan
 
Round - Trip Software Engineering using UML: From Architecture to Design and...
Round - Trip Software Engineering using UML:  From Architecture to Design and...Round - Trip Software Engineering using UML:  From Architecture to Design and...
Round - Trip Software Engineering using UML: From Architecture to Design and...Aman Mishra
 
UML (Unified Modeling Language)
UML (Unified Modeling Language)UML (Unified Modeling Language)
UML (Unified Modeling Language)Nguyen Tuan
 
OOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMSOOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMSMikel Raj
 
Object oriented methodology & unified modeling language
Object oriented methodology & unified modeling languageObject oriented methodology & unified modeling language
Object oriented methodology & unified modeling languageIsmail El Gayar
 

What's hot (19)

Information Systems Analysis and Design Overview of OOAD, UML, and RUP
 Information Systems Analysis and Design Overview of OOAD, UML, and RUP Information Systems Analysis and Design Overview of OOAD, UML, and RUP
Information Systems Analysis and Design Overview of OOAD, UML, and RUP
 
UML Architecture and Views
UML Architecture and ViewsUML Architecture and Views
UML Architecture and Views
 
M02 Uml Overview
M02 Uml OverviewM02 Uml Overview
M02 Uml Overview
 
Uml diagrams
Uml diagramsUml diagrams
Uml diagrams
 
Case Study Uml
Case Study UmlCase Study Uml
Case Study Uml
 
Lecture 4-oop class diagram
Lecture 4-oop class diagramLecture 4-oop class diagram
Lecture 4-oop class diagram
 
An Automatic Approach to Translate Use Cases to Sequence Diagrams
An Automatic Approach to Translate Use Cases to Sequence DiagramsAn Automatic Approach to Translate Use Cases to Sequence Diagrams
An Automatic Approach to Translate Use Cases to Sequence Diagrams
 
Function oriented design
Function oriented designFunction oriented design
Function oriented design
 
Uml
UmlUml
Uml
 
Object oriented analysis and design
Object oriented analysis and designObject oriented analysis and design
Object oriented analysis and design
 
Intro to UML 2
Intro to UML 2Intro to UML 2
Intro to UML 2
 
Introducing Uml And Development Process
Introducing Uml And Development ProcessIntroducing Uml And Development Process
Introducing Uml And Development Process
 
Uml with detail
Uml with detailUml with detail
Uml with detail
 
Uml2
Uml2Uml2
Uml2
 
Uml 9
Uml 9Uml 9
Uml 9
 
Round - Trip Software Engineering using UML: From Architecture to Design and...
Round - Trip Software Engineering using UML:  From Architecture to Design and...Round - Trip Software Engineering using UML:  From Architecture to Design and...
Round - Trip Software Engineering using UML: From Architecture to Design and...
 
UML (Unified Modeling Language)
UML (Unified Modeling Language)UML (Unified Modeling Language)
UML (Unified Modeling Language)
 
OOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMSOOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMS
 
Object oriented methodology & unified modeling language
Object oriented methodology & unified modeling languageObject oriented methodology & unified modeling language
Object oriented methodology & unified modeling language
 

Viewers also liked

the elements of uml 2 style
the elements of uml 2 stylethe elements of uml 2 style
the elements of uml 2 stylefst
 
SE_Lec 09_ UML Behaviour Diagrams
SE_Lec 09_ UML Behaviour DiagramsSE_Lec 09_ UML Behaviour Diagrams
SE_Lec 09_ UML Behaviour DiagramsAmr E. Mohamed
 
SE_Lec 02_Software Life Cycle Models
SE_Lec 02_Software Life Cycle ModelsSE_Lec 02_Software Life Cycle Models
SE_Lec 02_Software Life Cycle ModelsAmr E. Mohamed
 
SE_Lec 01_ Introduction to Software Enginerring
SE_Lec 01_ Introduction to Software EnginerringSE_Lec 01_ Introduction to Software Enginerring
SE_Lec 01_ Introduction to Software EnginerringAmr E. Mohamed
 
SE_Lec 08_UML Use Cases
SE_Lec 08_UML Use CasesSE_Lec 08_UML Use Cases
SE_Lec 08_UML Use CasesAmr E. Mohamed
 
SE_Lec 04_Agile Software Development
SE_Lec 04_Agile Software DevelopmentSE_Lec 04_Agile Software Development
SE_Lec 04_Agile Software DevelopmentAmr E. Mohamed
 
SE_Lec 00_ Software Engineering 1
SE_Lec 00_ Software Engineering 1SE_Lec 00_ Software Engineering 1
SE_Lec 00_ Software Engineering 1Amr E. Mohamed
 
SE_Lec 03_Requirements Analysis and Specification
SE_Lec 03_Requirements Analysis and SpecificationSE_Lec 03_Requirements Analysis and Specification
SE_Lec 03_Requirements Analysis and SpecificationAmr E. Mohamed
 
SE_Lec 06_Object Oriented Analysis and Design
SE_Lec 06_Object Oriented Analysis and DesignSE_Lec 06_Object Oriented Analysis and Design
SE_Lec 06_Object Oriented Analysis and DesignAmr E. Mohamed
 
Se2 lec 13 uml state machines
Se2 lec 13  uml state machinesSe2 lec 13  uml state machines
Se2 lec 13 uml state machinesAmr E. Mohamed
 
SE_Lec 11_ Project Management
SE_Lec 11_ Project ManagementSE_Lec 11_ Project Management
SE_Lec 11_ Project ManagementAmr E. Mohamed
 
SE_Lec 07_UML CLASS DIAGRAM
SE_Lec 07_UML CLASS DIAGRAMSE_Lec 07_UML CLASS DIAGRAM
SE_Lec 07_UML CLASS DIAGRAMAmr E. Mohamed
 
SE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsSE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsAmr E. Mohamed
 
SE2018_Lec 16_ Architectural Design
SE2018_Lec 16_ Architectural DesignSE2018_Lec 16_ Architectural Design
SE2018_Lec 16_ Architectural DesignAmr E. Mohamed
 
Domain Analysis & Data Modeling
Domain Analysis & Data ModelingDomain Analysis & Data Modeling
Domain Analysis & Data ModelingEelco Visser
 
SE_Lec 05_System Modelling and Context Model
SE_Lec 05_System Modelling and Context ModelSE_Lec 05_System Modelling and Context Model
SE_Lec 05_System Modelling and Context ModelAmr E. Mohamed
 

Viewers also liked (20)

the elements of uml 2 style
the elements of uml 2 stylethe elements of uml 2 style
the elements of uml 2 style
 
Ooadb
OoadbOoadb
Ooadb
 
UML TUTORIALS
UML TUTORIALSUML TUTORIALS
UML TUTORIALS
 
SE_Lec 09_ UML Behaviour Diagrams
SE_Lec 09_ UML Behaviour DiagramsSE_Lec 09_ UML Behaviour Diagrams
SE_Lec 09_ UML Behaviour Diagrams
 
SE_Lec 02_Software Life Cycle Models
SE_Lec 02_Software Life Cycle ModelsSE_Lec 02_Software Life Cycle Models
SE_Lec 02_Software Life Cycle Models
 
SE_Lec 01_ Introduction to Software Enginerring
SE_Lec 01_ Introduction to Software EnginerringSE_Lec 01_ Introduction to Software Enginerring
SE_Lec 01_ Introduction to Software Enginerring
 
SE_Lec 08_UML Use Cases
SE_Lec 08_UML Use CasesSE_Lec 08_UML Use Cases
SE_Lec 08_UML Use Cases
 
SE_Lec 04_Agile Software Development
SE_Lec 04_Agile Software DevelopmentSE_Lec 04_Agile Software Development
SE_Lec 04_Agile Software Development
 
SE_Lec 00_ Software Engineering 1
SE_Lec 00_ Software Engineering 1SE_Lec 00_ Software Engineering 1
SE_Lec 00_ Software Engineering 1
 
SE_Lec 03_Requirements Analysis and Specification
SE_Lec 03_Requirements Analysis and SpecificationSE_Lec 03_Requirements Analysis and Specification
SE_Lec 03_Requirements Analysis and Specification
 
Uml report
Uml reportUml report
Uml report
 
SE_Lec 06_Object Oriented Analysis and Design
SE_Lec 06_Object Oriented Analysis and DesignSE_Lec 06_Object Oriented Analysis and Design
SE_Lec 06_Object Oriented Analysis and Design
 
Se2 lec 13 uml state machines
Se2 lec 13  uml state machinesSe2 lec 13  uml state machines
Se2 lec 13 uml state machines
 
SE_Lec 11_ Project Management
SE_Lec 11_ Project ManagementSE_Lec 11_ Project Management
SE_Lec 11_ Project Management
 
SE_Lec 07_UML CLASS DIAGRAM
SE_Lec 07_UML CLASS DIAGRAMSE_Lec 07_UML CLASS DIAGRAM
SE_Lec 07_UML CLASS DIAGRAM
 
SE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsSE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design Patterns
 
SE2018_Lec 16_ Architectural Design
SE2018_Lec 16_ Architectural DesignSE2018_Lec 16_ Architectural Design
SE2018_Lec 16_ Architectural Design
 
Domain Analysis & Data Modeling
Domain Analysis & Data ModelingDomain Analysis & Data Modeling
Domain Analysis & Data Modeling
 
SE2_Lec 18_ Coding
SE2_Lec 18_ CodingSE2_Lec 18_ Coding
SE2_Lec 18_ Coding
 
SE_Lec 05_System Modelling and Context Model
SE_Lec 05_System Modelling and Context ModelSE_Lec 05_System Modelling and Context Model
SE_Lec 05_System Modelling and Context Model
 

Similar to Unit 1- OOAD ppt

M03_1_Structur alDiagrams.ppt
M03_1_Structur                         alDiagrams.pptM03_1_Structur                         alDiagrams.ppt
M03_1_Structur alDiagrams.pptnesarahmad37
 
UML (Hemant rajak)
UML (Hemant rajak)UML (Hemant rajak)
UML (Hemant rajak)hrajak5
 
CASE Tools lab.ppt
CASE Tools lab.pptCASE Tools lab.ppt
CASE Tools lab.pptRAJESH S
 
UML Design Document Training Learn UML .pptx
UML Design Document Training Learn UML .pptxUML Design Document Training Learn UML .pptx
UML Design Document Training Learn UML .pptxraghavanp4
 
Cs 1023 lec 10 uml (week 3)
Cs 1023 lec 10 uml (week 3)Cs 1023 lec 10 uml (week 3)
Cs 1023 lec 10 uml (week 3)stanbridge
 
M03 1 Structuraldiagrams
M03 1 StructuraldiagramsM03 1 Structuraldiagrams
M03 1 StructuraldiagramsDang Tuan
 
CS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerCS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerGobinath Subramaniam
 
FSD MICRO PROJECT UML PPT.pptx
FSD MICRO PROJECT UML PPT.pptxFSD MICRO PROJECT UML PPT.pptx
FSD MICRO PROJECT UML PPT.pptxThorOdinson55
 
Uml Explained Step ByStep
Uml Explained Step ByStepUml Explained Step ByStep
Uml Explained Step ByStepWaseem Khan
 
Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML DiagramsManish Kumar
 
Architecture and design
Architecture and designArchitecture and design
Architecture and designhimanshu_airon
 
Crafted Design - LJC World Tour Mash Up 2014
Crafted Design - LJC World Tour Mash Up 2014Crafted Design - LJC World Tour Mash Up 2014
Crafted Design - LJC World Tour Mash Up 2014Sandro Mancuso
 
ASP.NET System design 2
ASP.NET System design 2ASP.NET System design 2
ASP.NET System design 2Sisir Ghosh
 
Modeling software with UML
Modeling software with UMLModeling software with UML
Modeling software with UML6020 peaks
 
Software Architecture in Architecture design .ppt
Software Architecture in Architecture design .pptSoftware Architecture in Architecture design .ppt
Software Architecture in Architecture design .pptguruswamyd785
 

Similar to Unit 1- OOAD ppt (20)

Intoduction to uml
Intoduction to umlIntoduction to uml
Intoduction to uml
 
M03_1_Structur alDiagrams.ppt
M03_1_Structur                         alDiagrams.pptM03_1_Structur                         alDiagrams.ppt
M03_1_Structur alDiagrams.ppt
 
UML (Hemant rajak)
UML (Hemant rajak)UML (Hemant rajak)
UML (Hemant rajak)
 
CASE Tools lab.ppt
CASE Tools lab.pptCASE Tools lab.ppt
CASE Tools lab.ppt
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
UML Design Document Training Learn UML .pptx
UML Design Document Training Learn UML .pptxUML Design Document Training Learn UML .pptx
UML Design Document Training Learn UML .pptx
 
graph
graphgraph
graph
 
Cs 1023 lec 10 uml (week 3)
Cs 1023 lec 10 uml (week 3)Cs 1023 lec 10 uml (week 3)
Cs 1023 lec 10 uml (week 3)
 
uml.ppt
uml.pptuml.ppt
uml.ppt
 
M03 1 Structuraldiagrams
M03 1 StructuraldiagramsM03 1 Structuraldiagrams
M03 1 Structuraldiagrams
 
CS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerCS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and Answer
 
UML Diagrams
UML DiagramsUML Diagrams
UML Diagrams
 
FSD MICRO PROJECT UML PPT.pptx
FSD MICRO PROJECT UML PPT.pptxFSD MICRO PROJECT UML PPT.pptx
FSD MICRO PROJECT UML PPT.pptx
 
Uml Explained Step ByStep
Uml Explained Step ByStepUml Explained Step ByStep
Uml Explained Step ByStep
 
Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML Diagrams
 
Architecture and design
Architecture and designArchitecture and design
Architecture and design
 
Crafted Design - LJC World Tour Mash Up 2014
Crafted Design - LJC World Tour Mash Up 2014Crafted Design - LJC World Tour Mash Up 2014
Crafted Design - LJC World Tour Mash Up 2014
 
ASP.NET System design 2
ASP.NET System design 2ASP.NET System design 2
ASP.NET System design 2
 
Modeling software with UML
Modeling software with UMLModeling software with UML
Modeling software with UML
 
Software Architecture in Architecture design .ppt
Software Architecture in Architecture design .pptSoftware Architecture in Architecture design .ppt
Software Architecture in Architecture design .ppt
 

Recently uploaded

Arduino based vehicle speed tracker project
Arduino based vehicle speed tracker projectArduino based vehicle speed tracker project
Arduino based vehicle speed tracker projectRased Khan
 
ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdfAhmedHussein950959
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationRobbie Edward Sayers
 
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxCloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxMd. Shahidul Islam Prodhan
 
Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.PrashantGoswami42
 
Laundry management system project report.pdf
Laundry management system project report.pdfLaundry management system project report.pdf
Laundry management system project report.pdfKamal Acharya
 
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and Visualization
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and VisualizationKIT-601 Lecture Notes-UNIT-5.pdf Frame Works and Visualization
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and VisualizationDr. Radhey Shyam
 
Digital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdfDigital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdfAbrahamGadissa
 
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...Amil baba
 
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical SolutionsRS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical SolutionsAtif Razi
 
ENERGY STORAGE DEVICES INTRODUCTION UNIT-I
ENERGY STORAGE DEVICES  INTRODUCTION UNIT-IENERGY STORAGE DEVICES  INTRODUCTION UNIT-I
ENERGY STORAGE DEVICES INTRODUCTION UNIT-IVigneshvaranMech
 
Automobile Management System Project Report.pdf
Automobile Management System Project Report.pdfAutomobile Management System Project Report.pdf
Automobile Management System Project Report.pdfKamal Acharya
 
Introduction to Casting Processes in Manufacturing
Introduction to Casting Processes in ManufacturingIntroduction to Casting Processes in Manufacturing
Introduction to Casting Processes in Manufacturingssuser0811ec
 
Hall booking system project report .pdf
Hall booking system project report  .pdfHall booking system project report  .pdf
Hall booking system project report .pdfKamal Acharya
 
Natalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in KrakówNatalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in Krakówbim.edu.pl
 
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWINGBRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWINGKOUSTAV SARKAR
 
Online resume builder management system project report.pdf
Online resume builder management system project report.pdfOnline resume builder management system project report.pdf
Online resume builder management system project report.pdfKamal Acharya
 
KIT-601 Lecture Notes-UNIT-3.pdf Mining Data Stream
KIT-601 Lecture Notes-UNIT-3.pdf Mining Data StreamKIT-601 Lecture Notes-UNIT-3.pdf Mining Data Stream
KIT-601 Lecture Notes-UNIT-3.pdf Mining Data StreamDr. Radhey Shyam
 
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical EngineeringIntroduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical EngineeringC Sai Kiran
 
Top 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering ScientistTop 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering Scientistgettygaming1
 

Recently uploaded (20)

Arduino based vehicle speed tracker project
Arduino based vehicle speed tracker projectArduino based vehicle speed tracker project
Arduino based vehicle speed tracker project
 
ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdf
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxCloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
 
Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.
 
Laundry management system project report.pdf
Laundry management system project report.pdfLaundry management system project report.pdf
Laundry management system project report.pdf
 
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and Visualization
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and VisualizationKIT-601 Lecture Notes-UNIT-5.pdf Frame Works and Visualization
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and Visualization
 
Digital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdfDigital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdf
 
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
 
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical SolutionsRS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
 
ENERGY STORAGE DEVICES INTRODUCTION UNIT-I
ENERGY STORAGE DEVICES  INTRODUCTION UNIT-IENERGY STORAGE DEVICES  INTRODUCTION UNIT-I
ENERGY STORAGE DEVICES INTRODUCTION UNIT-I
 
Automobile Management System Project Report.pdf
Automobile Management System Project Report.pdfAutomobile Management System Project Report.pdf
Automobile Management System Project Report.pdf
 
Introduction to Casting Processes in Manufacturing
Introduction to Casting Processes in ManufacturingIntroduction to Casting Processes in Manufacturing
Introduction to Casting Processes in Manufacturing
 
Hall booking system project report .pdf
Hall booking system project report  .pdfHall booking system project report  .pdf
Hall booking system project report .pdf
 
Natalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in KrakówNatalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in Kraków
 
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWINGBRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
 
Online resume builder management system project report.pdf
Online resume builder management system project report.pdfOnline resume builder management system project report.pdf
Online resume builder management system project report.pdf
 
KIT-601 Lecture Notes-UNIT-3.pdf Mining Data Stream
KIT-601 Lecture Notes-UNIT-3.pdf Mining Data StreamKIT-601 Lecture Notes-UNIT-3.pdf Mining Data Stream
KIT-601 Lecture Notes-UNIT-3.pdf Mining Data Stream
 
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical EngineeringIntroduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
 
Top 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering ScientistTop 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering Scientist
 

Unit 1- OOAD ppt

  • 2. What is UML? • Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems, business modeling and other non- software systems. • The UML is a very important part of developing object oriented software and the software development process. • The UML uses mostly graphical notations to express the design of software projects.
  • 3. 3 As a Sketch • Most common use of UML • Used to help communicate some aspect of a system and to better understand it • Used for both forward engineering (i.e., build diagrams before coding) and reverse engineering (i.e., build diagrams from existing code) • Strives to be informal and dynamic • Only emphasizes those classes, attributes, operations, and relationships that are of interest • More concerned with selective communication than complete specification
  • 4. 4 As a Blueprint • Goal is completeness • Is more definitive, while the sketch approach is more explorative • Used to describe a detailed design for a programmer to follow in writing source code • Notation should be sufficiently complete so that a programmer can follow it in a straightforward manner • Can be used by a designer to develop blueprint-level models that show interfaces of subsystems or classes – Developers then work out the implementation details • As a reversed engineered product, diagrams convey detailed information about the source code that is easier for developers to understand
  • 5. 5 As a Programming Language • Specifies the complete system in UML so that code can be automatically generated • Looks at UML from a software perspective rather than a conceptual perspective which concentrates on the domain of study • Diagrams are compiled directly into executable code so that the UML becomes the source code • Challenge is making it more productive to use UML rather than some another programming language • Another concern is how to model behavioral logic – Done with interaction diagrams, state diagrams, and activity diagrams
  • 6. Overview of UML Diagrams UML 2.0: 12 diagram types Structural : element of spec. irrespective of time • Class ; Object • Component • Deployment • Composite structure • Package Behavioral : behavioral features of a system / business process • Activity • State machine • Use case • Interaction Interaction : emphasize object interaction • Communication(collaberati on); Sequence • Interaction overview • Timing
  • 7. 7 3 basic building blocks of UML - Diagrams Graphical representation of a set of elements. Represented by a connected graph: Vertices are things; Arcs are relationships/behaviors. 5 most common views built from UML 1.x: 9 diagram types. Behavioral Diagrams Represent the dynamic aspects. – Use case – Sequence; Collaboration – Statechart – Activity Structural Diagrams Represent the static aspects of a system. – Class; Object – Component – Deployment Interction Diagrams – Sequence; Communication – Interaction Overview – Timing
  • 8. 8 Class Diagrams Structural Diagrams – Class; Object – Component – Deployment – Composite Structure – Package
  • 9. 9 Class Diagram Three modeling perspectives for Class Diagram  Conceptual: the diagram reflects the domain  Specification: focus on interfaces of the software (Java supports interfaces)  Implementation: class (logical database schema) definition to be implemented in code and database. The basis for all object modeling All things lead to this Most users of OO methods take an implementation perspective, which is a shame because the other perspectives are often more useful. -- Martin Fowler • Most common diagram. • Shows a set of classes, interfaces, and collaborations and their relationships (dependency, generalization, association and realization); notes too. • Represents the static view of a system (With active classes, static process view)
  • 10. 10 Names Customer Account Bank Java::awt::Polygon simple name - start w. upper cas path name = package name ::package name::name only the name compartment, ok Attributes short noun - start w. lower ca balance: Real = 0 type/class default value <<constructor>> +addAccount() <<process>> +setBalance( a : Account) +getBalance(a: Account): Amount … <<query>> isValid( loginID : String): Boolean signature Operations may cause object to change state Classes ellipsis for additional attributes or operations stereotypes to categorize
  • 11. 11 Responsibilities • A collaborator is also a class which the (current) class interacts with to fulfill a responsibility Responsibilities -- handles deposits -- reports fraud to managers Account • anything that a class knows or does (Contract or obligation) • An optional 4th item carried out by attributes and operations. • Free-form text; one phrase per responsibility. • Technique - CRC cards (Class-Responsibility-Collaborator); Kent Beck and Ward Cunningham’89 Customer AccountOpens account Knows name Knows address Account ManagerKnows interest rate Knows balance Handles deposits Reports fraud to manager
  • 12. 12 Scope & Visibility + addMessage( m : Message ) : Status # setCheckSum() - encrypt() header : FrameHeader uniqueID : Long Frame class scope public protected private • Public - access allowed for any outside classifier (+). • Protected - access allowed for any descendant of the classifier (#). • Private - access restricted to the classifier itself (-). • (using adornments in JBuilder) Instance scope • Instance Scope — each instance of the classifier holds its own value. • Class Scope — one value is held for all instances of the classifier (underlined). - getClassName() Public class Private class Protected class Public method Public attribute
  • 13. 13 consolePort [ 2..* ] : Port NetworkController 1 ControlRod 3 multiplicity singleton public class Singleton { private static Singleton instance = null; private Singleton() {} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } Multiplicity Singleton - instance + getInstance():Singleton consolePort [ 2..* ] : Port NetworkController Using Design Pattern
  • 15. 15 AudioClip Dependency • A change in one thing may affect another. record(m:Microphone) start() stop() Microphone name dependency • The most common dependency between two classes is one where one class <<use>>s another as a parameter to an operation. CourseSchedule addCourse(c : Course) removeCourse(c : Course Course Usually initial class diagrams will not have any significant number of dependencies in the beginning of analysis but will as more details are identified. Using relationship
  • 16. 16 Dependency – Among Classes AbstractClass {abstract} attribut e concreteOperation() abstractOperation() <<metaclass>> MetaClassName <<interface>> InterfaceName operation() ClassName -simpleAttribute: Type = Default #classAttribute: Type +/derivedAttribute: Type +operation(in arg: Type = Default): ReturnType objectName: ClassName Attribute = value simpleAttribute: Type = Default classAttribute: Type /derivedAttribute: Type ClientClass <<use>> <<instanceOf>> <<instanceOf>> realizationgeneralization
  • 17. 17 Dependency –Among Classes • Eight Stereotypes of Dependency Among Classes – bind: the source instantiates the target template using the given actual parameters – derive: the source may be computed from the target – friend: the source is given special visibility into the target – instanceOf : the source object is an instance of the target classifier – instantiate: the source creates instances of the target – powertype: the target is a powertype of the source; a powertype is a classifier whose objects are all the children of a given parent – refine: the source is at a finer degree of abstraction than the target – use: the semantics of the source element depends on the semantics of the public part of the target
  • 18. 18 Dependency –Among Use Cases • Two Stereotypes of Dependency Among Use Cases: – extend: the target use case extends the behavior of the source – include: the source use case explicitly incorporates the behavior of another use case at a location specified by the source Use Case A Use Case B Use Case C <<extend>><<include>> System Actor <<actor>> Actor Supply Customer Info. Request Catalog<<extend>> <<include>> Order Processing System SalesPerson Order Item Make Payment <<include>> <<include>> The sales person asks for the catalog Place Order Extension points Additional requests: after creation of the order 1 *
  • 19. 19 Object Diagrams Structural Diagrams – Class; Object – Component – Deployment – Composite Structure – Package
  • 20. 20 Instances & Object Diagrams  “instance” and “object” are largely synonymous; used interchangeably.  difference:  instances of a class are called objects or instances; but  instances of other abstractions (components, nodes, use cases, and associations) are not called objects but only instances. What is an instance of an association called? Object Diagrams  very useful in debugging process. – walk through a scenario (e.g., according to use case flows). – Identify the set of objects that collaborate in that scenario (e.g., from use case flows). – Expose these object’s states, attribute values and links among these objects.
  • 21. 21 : keyCode Instances & Objects - Visual Representation : Multimedia :: AudioStream t : Transaction myCustomer r : FrameRenderThread c : Phone [WaitingForAnswer] myCustomer id : SSN = “432-89-1738” active = True agent : named instance instance with current state instance with attribute values active object (with a thicker border; owns a thread or process and can initiate control activity) multiobject orphan instance (type unknown) anonymous instance
  • 22. 22 Instances & Objects - Modeling Concrete Instances • Expose the stereotypes, tagged values, and attributes. • Show these instances and their relationships in an object diagram. current: Transaction primaryAgent [searching] : Transaction LoanOfficer <<instanceOf>> current := retrieve() Instances & Objects - Modeling Prototypical Instances • Show these instances and their relationships in an interaction diagram or an activity diagram. a: CallingAgent c: Connection 1 : create 2: enableConnection 2.1 : startBilling
  • 23. 23 Instances & Objects – More Examples client servers 1: aServer := find(criteria) d: Directory 1: sort()list() contents: File d: Directory 1: addElement(f)addFile(f:File) contents: File :Server aServer:Server 2: process(request) c : Company s : Department name = “Sales” uss : Department name = “US Sales” erin : Person name = “Erin” employeeID = 4362 title = “VP of Sales” rd : Department name = “R&D” : ContactInfomation address = “1472 Miller St.” manager call ::= label [guard] [“*”] [return-val-list “:=“] msg-name “(“ arg-list “)” d: Directory 1*: changeMode(readOnly)secureAll() f: File *
  • 24. 24 Component Diagrams Structural Diagrams – Class; Object – Component – Deployment – Composite Structure – Package
  • 25. 25 Component Diagram  Shows a set of components and their relationships.  Represents the static implementation view of a system.  Components map to one or more classes, interfaces, or collaborations. classes loanOfficer.dll component LoanOfficer LoanPolicy CreditSearch Registrar.exe Course.dll Student.dll Components and their RelationshipsMapping of Components into Classes UML1.x – implementation view
  • 26. 26 Component Diagram UML2.0 – architectural view • Short history behind architecture • Architecture still an emerging discipline • Challenges, a bumpy road ahead • UML and architecture evolving in parallel • Component diagram in need of better formalization and experimentation
  • 27. 27 Component Diagram – another example (www.cs.tut.fi/tapahtumat/olio2004/richardson.pdf)
  • 28. 28 Component Diagram – another example (www.cs.tut.fi/tapahtumat/olio2004/richardson.pdf)
  • 29. 29 Component Diagram – another example (www.cs.tut.fi/tapahtumat/olio2004/richardson.pdf)
  • 30. 30 Component Diagram UML2.0 – architectural view ComponentComponent Explicit description of interfaces:  provided services to other components  requested services from other components  An interface is a collection of 1..* methods, and 0..* attributes  Interfaces can consist of synchronous and / or asynchronous operations  A port (square) is an interaction point between the component and its environment.  Can be named; Can support uni-directional (either provide or require) or bi-directional (both provide and require) communication; Can support multiple interfaces.  possibly concurrent interactions  fully isolate an object’s internals from its environment lollipop socket Student StudentAdministration StudentSchedule AccessControl Encription Persistence DataAccess security Data[1..*] Incoming signals/calls Outgoing signals/calls caller or callee?
  • 31. 31 Component Diagram: UML 1.x and UML 2.0 (http://www.agilemodeling.com/artifacts/componentDiagram.htm)
  • 32. 32 Component Diagram: UML 1.x and UML 2.0 (http://www.agilemodeling.com/artifacts/componentDiagram.htm) So, how many different conventions for components in UML2.0?
  • 33. 33 Building a Component  simplified the ports to either provide or require a single interface  relationships between ports and internal classes in three different ways: i) as stereotyped delegates (flow), as delegates, and as realizes (logical->physical) relationships Cohesive reuse and change of classes; acyclic component dependency ???
  • 34. 34 Component Diagram – Connector & Another Example delegation Left delegation: direction of arrowhead indicates “provides” delegation assembly connector  a connector: just a link between two or more connectable elements (e.g., ports or interfaces)  2 kinds of connectors: assembly and delegation. For “wiring”  An assembly connector: a binding between a provided interface and a required interface (or ports) that indicates that one component provides the services required by another; simple line/ball-and-socket/lollipop-socket notation  A delegation connector binds a component’s external behavior (as specified at a port) to an internal realization of that behavior by one of its parts (provide-provide, request-request). Right delegation: direction of arrowhead indicates “requests” store So, what levels of abstractions for connections?
  • 35. 35 Structured Class  A structured class(ifier) is defined, in whole or in part, in terms of a number of parts - contained instances owned or referenced by the structured class(ifier).  With a similar meaning to a composition relation  A structured classifier’s parts are created within the containing classifier (either when the structured classifier is created or later) and are destroyed when the containing classifier is destroyed.  Like classes and components, combine the descriptive capabilities of structured classifiers with ports and interfaces Components extend classes with additional features such as  the ability to own more types of elements than classes can; e.g., packages, constraints, use cases, and artifacts  deployment specifications that define the execution parameters of a component deployed to a node label /roleName : type connector Any difference? component or class?
  • 36. 36 move() resize() display() origin Shape IUnknown <<type>> Int { values range from -2**31 to +2**31 - 1 } <<signal>> OffHook Process loan <<subsystem>> Customer Service egb_server kernel32.dll class interface data type signal use case subsystem nodecomponent move() resize() display() origin Shape <<type>> Int { values range from -2**31 to +2**31 - 1 } <<signal>> OffHook Process loan <<subsystem>> Customer Service membership_server kernel32.dll class interface data type signal use case nodecomponent an asynchronous stimulus communicated between instances Classifiers • Classifier—mechanism that describes structural (e.g. class attributes) and behavioral (e.g. class operations) features. In general, those modeling elements that can have instances are called classifiers. • cf. Packages and generalization relationships do not have instances. Generalizable Element, Classifier, Class, Component?
  • 37. 37 Structured Class – Another Example what kind?
  • 38. 38 Deployment Diagrams Structural Diagrams – Class; Object – Component – Deployment – Composite Structure – Package
  • 39. 39 Deployment Diagram J2EE Server Membership Server IIS + PhP Server Tomcat Server TCP/IP TCP/IP DecNet • Shows a set of processing nodes and their relationships. • Represents the static deployment view of an architecture. • Nodes typically enclose one or more components.
  • 40. 40 Structural Diagrams - Deployment Diagram (http://www.agilemodeling.com/artifacts/deploymentDiagram.htm) Student administration application Physical nodes - stereotype device WebServer - physical device or software artifact RMI/message bus: connection type Nodes can contain other nodes or software artifacts recursively  Deployment specs: configuration files: name and properties
  • 41. 41 Structural Diagrams - Deployment Diagram (http://www.agilemodeling.com/artifacts/deploymentDiagram.htm) Is this better? More concrete Implementation-oriented
  • 42. Types of nodes in deployment • Device Node - It represent the physical computing device having processor and memory. - It is responsible for executing software system. Eg: Bank Server, Computer, mobile phone etc. • Execution Environment Node(EEN) - This is the software computing resource which typically executes on device node. - Following are choices of EEN- Database Engine, Web Browser,WorkFlow engine, Servlet container, OS Software
  • 43. 43 Package Diagrams Structural Diagrams – Class; Object – Component – Deployment – Composite Structure –Package
  • 44. 44 Packages • Package — general-purpose mechanism for organizing elements into groups. Business rules Client Sensors::Vision { version = 2.24 } simple names enclosing package name package name path names + OrderForm + TrackingForm - Order Client Client +OrderForm +TrackingForm -Order graphical nestingtextual nesting visibility • Nested Elements: Composite relationship (When the whole dies, its parts die as well, but not necessarily vice versa) • (C++ namespace; specialization means “derived”) Visibility • Packages that are friends to another may see all the elements of that package, no matter what their visibility. • If an element is visible within a package, it is visible within all packages nested inside the package.
  • 45. 45 Dependency –Among Packages • Two Stereotypes of Dependency Among Packages: – access: the source package is granted the right to reference the elements of the target package (:: convention) – import: a kind of access; the public contents of the target package enter the flat namespace of the source as if they had been declared in the source packageName packageName subPackageName packageName PackageClass <<import>> <<access>> + OrderForm + TrackingForm - Order Client +OrderRules -GUI:Window Policies <<import>> +Window +Form #EventHandler GUI <<import>> imports exports
  • 46. 46 Modeling Groups of Elements • Look for “clumps” of elements that are semantically close to one another. • Surround “clumps” with a package. • Identify public elements of each package. • Identify import dependencies. utd.administration Tools.db registration db interfaces Cloudscape Oracle Java.awt Use Case package Diagram • Included and extending use cases belong in the same package as the parent/base use case • Cohesive, and goal-oriented packaging • Actors could be inside or outside each package
  • 47. 47 Class Package Diagrams (http://www.agilemodeling.com/artifacts/packageDiagram.htm) • Classes related through inheritance, composition or communication often belong in the same package Seminar Registration <<application>> Schedule Student Professor Java Infrastructure <<technical>> <<import>> Contact Point <<import>> <<import>> <<import>> <<import>> • A frame depicts the contents of a package (or components, classes, operations, etc.) • Heading: rectangle with a cut-off bottom-right corner, [kind] name [parameter] Seminar Course Enrollment Location Time 1 0..* 1..* 1 1..* 1 held at Package Schedule A frame encapsulates a collection of collaborating instances or refers to another representation of such
  • 48. 48 Common Mechanisms •Adornments Notes & Compartments •Extensibility Mechanisms –Stereotypes - Extension of the UML metaclasses. –Tagged Values - Extension of the properties of a UML element. –Constraints - Extension of the semantics of a UML element.
  • 49. 49 Adornments • Textual or graphical items added to an element’s basic notation. • Notes - Graphical symbol for rendering constraints or comments attached to an element or collection of elements; No Semantic Impact Rendered as a rectangle with a dog- eared corner. See smartCard.doc for details about this routine.May contain combination of text and graphics. May contain URLs linking to external documents. See http://www.rational.com for related info. Additional Adornments • Placed near the element as – Text – Graphic • Special compartments for adornments in – Classes – Components – Nodes Transaction Exceptions addAction() Resource Locked named compartment anonymous compartment Client bill.exe report.exe contacts.exe
  • 50. 50 Stereotypes • Allow controlled extension of metamodel classes. [UML11_Metamodel_Diagrams.pdf] • Graphically rendered as – Name enclosed in guillemets (<< >> ) • <<stereotype>> – New icon «metaclass» ModelElement Internet • The new building block can have • its own special properties through a set of tagged values • its own semantics through constraints • Mechanisms for extending the UML vocabulary. • Allows for new modeling building blocks or parts.
  • 51. 51 Tagged Values Server {channels = 3} <<library>> accounts.dll {customerOnly} tagged values • a (name, value) pair describes a property of a model element. • Properties allow the extension of “metamodel” element attributes. • modifies the semantics of the element to which it relates. • Rendered as a text string enclosed in braces { } • Placed below the name of another element. «subsystem» AccountsPayable { dueDate = 12/30/2002 status = unpaid }
  • 52. 52 Constraints Portfolio BankAccount {secure} A simple constraint • Extension of the semantics of a UML element. • Allows new or modified rules • Rendered in braces {}. – Informally as free-form text, or – Formally in UML’s Object Constraint Language (OCL): E.g., {self.wife.gender = female and self.husband.gender = male} Constraint across multiple elements Corporation BankAccount {or} Person id : {SSN, passport} Department Person ** 1..* 1member manager {subset} Person age: Integer Compan y employersemployees 0..* 0..* Company self.employees.forAll(Person p | p.age >= 18 and p.age <= 65)
  • 54. 54 Classes: Notation and Semantics Class - Name attribute-name-1 : data-type-1 = default-value-1 attribute-name-2 : data-type-2 = default-value-2 operation-name-1 ( argument-list-1) : result-type-1 operation-name-2 ( argument-list-2) : result-type-2 responsibilities To model the <<semantics>> (meaning) of a class:  Specify the body of each method (pre-/post-conditions and invariants)  Specify the state machine for the class  Specify the collaboration for the class  Specify the responsibilities (contract)
  • 55. 55 Attributes • Syntax [ visibility ] name [ multiplicity ] [ : type ] [ = initial-value ] [ {property-string } ] • Visibility + public; - private; # protected; {default = +} • type – There are several defined in Rational Rose. – You can define your own. • property-string Built-in property-strings: – changeable—no restrictions (default) – addOnly—values may not be removed or altered, but may be added – frozen—may not be changed after initialization Or you can define your own: e.g. {leaf} origin Name only + origin Visibility and name origin : Point Name and type head : *Item Name and complex type name [ 0..1 ] : String Name, multiplicity, and type origin : Point = { 0, 0 } Name, type, and initial value id : Integer { frozen } Name and property
  • 56. 56 Operations • Syntax [ visibility ] name [ (parameter-list ) ] [ : return-type ] [ (property-string) ] • Visibility + public; - private; # protected; {default = +} • parameter-list syntax [ direction ] name : type [ = default-value ] • direction – in—input parameter; may not be modified – out—output parameter; may be modified – inout—input parameter; may be modified • property-string – leaf – isQuery—state is not affected – sequential—not thread safe – guarded—thread safe (Java synchronized) – concurrent—typically atomic; safe for multiple flows of control
  • 57. 57 Template Classes; Primitive Types • A template class is a parameterized element and defines a family of classes • In order to use a template class, it has to be instantiated • Instantiation involves binding formal template parameters to actual ones, resulting in a concrete class + bind( in i : Item; in v : Value ) : Boolean + isBound( in i : Item ) : Boolean {isQuery} Map Item Value Buckets : int Map< Customer, Order, 3 > OrderMap <<bind>> ( Customer, Order, 3 ) explicit binding implicit binding template class template parameters Uses <<bind>> Item Value Buckets Primitive Types using a class notation <<enumeration >> Booleanfalse true <<dataType>> Int { value range –2**31 to +2**31- 1 constraint stereotype
  • 58. 58 Package Diagrams: Standard Elements • Façade — only a view on some other package. • Framework — package consisting mainly of patterns. • Stub — a package that serves as a proxy for the public contents of another package. • Subsystem — a package representing an independent part of the system being modeled. • System — a package representing the entire system being modeled. Is <<import>> transitive? Is visibility transitive? Does <<friend>> apply to all types of visibility: +, -, #?
  • 59. 59 Dependency –Among Objects • 3 Stereotypes of Dependency in Interactions among Objects: – become: the target is the same object as the source but at a later point in time and with possibly different values, state, or roles – call: the source operation invokes the target operation – copy: the target object is an exact, but independent, copy of the source
  • 60. 7. UML in the Software Process
  • 61. 61 Fitting UML into Software Requirements Analysis • A use case diagram helps describe how people interact with the system • An activity diagram shows the context for use cases and also the details of how a complicated use case works • A class diagram drawn from the conceptual perspective is a good way of building up a rigorous vocabulary of the domain – It also shows the attributes and operations of interest in domain classes and the relationships among the classes • A state diagram shows the various states of a domain class and events that change that state
  • 62. 62 Fitting UML into Software Design • A class diagram drawn from the software perspective can show design classes, their attributes and operations, and their relationships with the domain classes • A sequence diagram helps to combine use cases in order to see what happens in the software • A package diagram shows the large-scale organization of the software • A state diagram shows the various states of a design object and events that change that state • A deployment diagram shows the physical layout of the software
  • 63. 63 Fitting UML into Software Documentation • Complements the written documentation and in some instances can replace it • Captures the outcome of the requirements analysis and design activities in a graphical format • Supplies a software maintainer with an overall understanding of a system • Provides a good logical roadmap of the system layout • Describes the various states in which a system may exist • Details complex algorithms in a more understandable form • Shows how multiple objects collaborate in the system
  • 64. Activity Diagram Behavioral Diagrams Represent the dynamic aspects. – Use case – Sequence; Collaboration – Statechart –Activity
  • 65. Activity Diagrams • Model business workflows • Identify candidate use cases, through the examination of business workflows • Identify pre- and post-conditions for use cases • Model workflows between/within use cases • Model complex workflows in operations on objects • Model in detail complex activities in a high level activity diagram
  • 66. Activity Diagrams • Activities and Actions • Transitions and Activity Edges • Tokens and Activity Nodes • Control Nodes – Initial and Final Nodes – Forks and Joins – Decision and Merge Points • States • Swimlanes
  • 67. 67 Activity diagrams • Useful to specify software or hardware system behaviour • Based on data flow models – a graphical representation (with a Directed Graph) of how data move around an information system Fill Order Ship Order Send Invoice Accept Payment Close Order Make Payment [order accepted] Invoice Receive Order [order reject]
  • 68. 68 Parameter name Parameter name Parameter name Output parameter Activity nodes Activity edgesInput parameter Activities • An activity is the specification of parameterized behaviour as the coordinated sequencing of subordinate units whose individual elements are actions • Uses parameters to receive and provide data to the invoker  An action can invoke an activity to describe its action more finely This action invokes the activity Fill Order
  • 69. 69 Activity nodes • Three type of activity nodes: – Action nodes: executable activity nodes; the execution of an action represents some transformations or processes in the modeled system (already seen) – Control nodes: coordinate flows in an activity diagram between other nodes – Object nodes: indicate an instance of a particular object, may be available at a particular point in the activity (i.e Pins are object nodes)
  • 70. 70 Activity edges (1) • Are directed connections • They have a source and a target, along which tokens may flow • Any number of tokens can pass along the edge, in groups at one time, or individually at different times • Weight: determines the minimum number of tokens that must traverse the edge at the same time In this example we use a non-constant weight: an invoice for a particular job can only be sent when all of its tasks have been completed
  • 71. 71 Control nodes – initial nodes • In an activity the flow starts in initial nodes, that return the control immediately along their outgoing edges • If there are more than one initial node, a control token is placed in each initial node when the activity is started, initiating multiple flows • If an initial node has more than one outgoing edge, only one of these edges will receive control, because initial nodes cannot duplicate tokens A or B ?
  • 72. 72 Control nodes – decision nodes • Route the flow to one of the outgoing edges (tokens are not duplicated) • Guards are specified on the outgoing edges or with the stereotype «decisionInput» • There is also the predefined guard [else], chosen only if the token is not accepted by all the other edges • If all the guards fail, the token remains at the source object node until one of the guards accept it
  • 73. 73 Control nodes – merge nodes • Bring together multiple alternate flows • All controls and data arriving at a merge node are immediately passed to the outgoing edge • There is no synchronization of flows or joining of tokens
  • 74. 74 Control nodes – fork nodes • Fork nodes split flows into multiple concurrent flows (tokens are duplicated) • State machine forks in UML 1.5 required synchronization between parallel flows through the state machine RTC step (it means that the first state in each branch is executed, then the second one, etc.) • UML 2.0 activity forks model unrestricted parallelism
  • 75. 75 Control nodes – join nodes • Join nodes synchronize multiple flows • Generally, controls or data must be available on every incoming edge in order to be passed to the outgoing edge, but user can specify different conditions under which a join accepts incoming controls and data using a join specification
  • 76. 76 Control nodes – final nodes • Flow final: – destroys the tokens that arrive into it – the activity is terminated when all tokens in the graph are destroyed • Final node: – the activity is terminated when the first token arrives intentional race between flows
  • 77. 77 Object nodes • Hold data temporarily while they wait to move through the graph • Specify the type of values they can hold (if no type is specified, they can hold values of any type) • Can also specify the state of the held objects • There are four kinds of object nodes: Pins (three differents notations) Activity Parameter Nodes Central Buffer Nodes Data Store Nodes
  • 78. Sequence Diagram Behavioral Diagrams Represent the dynamic aspects. – Use case –Sequence; Collaboration – Statechart – Activity
  • 79. Building a Sequence Diagrams Class A Class C Class B Class D Use Case 1 Use Case 2 Use Case 3 Sequence diagrams capture the use-case behavior using the foundation of the classes. Sequence = Objects + messages Introduction | Basics | Alternations | Modularity
  • 80. Sequence Diagrams p : Product : ShooppingCart addProduct (p) customer display() getPrice() checkout () sd Product Buying objects message Lifeline activation (focus of control) Diagram Name • A simple sequence diagram: Introduction | Basics | Alternations | Modularity
  • 81. Object Control obj1 : Class1 obj2 : Class2 do (…) : Class3 create (…) obj1 : Class1 user operate() Object Creation Object Destruction Return Message foo() Messages to self Introduction | Basics | Alternations | Modularity Illustration
  • 82. Illustration Corresponding Class Diagram Notice that a dependency exists whenever messages are passed between instances of the class Dependencies can be overridden by associations, aggregations etc. Introduction | Basics | Alternations | Modularity
  • 83. Sequences and Use-Cases p : Product : ShooppingCart addProduct (p) : Order create (…) customer display() getPrice() checkout () Introduction | Basics | Alternations | Modularity Hidden partVisible part
  • 84. Full Message Attributes C3.1: res := getLocation (fig) sequence number return value message name argument list [sequence-expression] [return-value :=] [message-name] [(argument-list)] Introduction | Basics | Alternations | Modularity
  • 85. Different Kinds of Messages Synchronous Message asynchronousMessage Return Message Introduction | Basics | Alternations | Modularity
  • 86. Synchronous & Asynchronous Messages manager sensor eye Nested Flow check check operate sensor manager alarm Asynchronous Flow unknown ring Price need to be finished, before teller can do another operation (getName) Ring is executed, while the control flow is returned to err handle and appl unknown log Introduction | Basics | Alternations | Modularity Example Example
  • 87. Synchronous & Asynchronous Messages manager sensor eye Nested Flow check check operate sensor manager alarm Asynchronous Flow unknown ring Price need to be finished, before teller can do another operation (getName) Ring is executed, while the control flow is returned to err handle and appl unknown log Introduction | Basics | Alternations | Modularity Example Example
  • 88. Example Options archive(msg) msg : Message : Database opt Do something... [msg.status=confirmed] Fragment Condition Introduction | Basics | Alternations | Modularity Used for modeling simple optional blocks. Has one operand; no "else" guard.
  • 89. Alternatives archive(msg) msg : Message : Database Condition : Admin alt notify(msg.getID()) wait() [msg.status=confirmed] [msg.status=error] [else] Else condition (optional) Alternative Fragment group Execution regions. At most one will execute. Introduction | Basics | Alternations | Modularity
  • 90. Loops Display() : OS : Folder : File loop loop Display() [for each Folder] [for each File] Loop Fragment Condition Nested Loop Fragment Introduction | Basics | Alternations | Modularity
  • 91. Breaks isLooged = login(name,pass) : User : User Manager : Policy addBadLogin(name) break [¬isLooged] Do something… Do something … If the condition is met, the break fragment is executed, and the reminder of the sequence is ignored Handy in model exception handling Introduction | Basics | Alternations | Modularity
  • 92. MODULARITY We need ways to create modular scenarios Introduction | Basics | Alternations | Modularity
  • 93. Referencing a diagram login(name,pass) : User : User Manager : Policy Login Handling(user,pass) : bool ref Do something… Do something … Reference Gate Introduction | Basics | Alternations | Modularity
  • 94. BOOK BANK MODULE: Registering PRE-FUNCTION: • Login to the website. • Collection the required documents to be submitted for registration. POST-FUNCTION: • Verification of documents submitted. • Conformation email sent accessing that authentication can be prevailed for the individual. MODULE: Display book details PRE-FUNCTION: • Analyze the course of semester of logger. POST-FUNCTION: • Display the required book details
  • 99. UML STATE CHART DIAGRAM: