Object Oriented Modelling
and Design (17CSI731)
2
Example – Car
UNIT – 2: ADVANCED CLASS MODELING, STATE
MODELING:
Advanced object and class concepts; Association ends; N-ary
associations; Aggregation; Abstract classes; Multiple inheritance;
Metadata; Reification; Constraints; Derived data; Packages;
Practical tips.
State Modeling: Events, States, Transitions and Conditions; State
diagrams; State diagram behaviour; Practical tips.
Advanced object and class concepts
Enumerations
Multiplicity
Scope
Visibility
Enumeration
Data type - a set of values together with a set of operations on those
values
⚫ To define a new simple data type, called enumeration type, we need
2 things:
⚫ A name for the data type
⚫ A set of values for the data type
⚫ enum {FALSE, TRUE};
⚫ enum rank {TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT,
NINE, TEN, JACK, QUEEN, KING, ACE};
⚫ enum colors {BLACK, BLUE, GREEN, CYAN, RED};
⚫ The values are written in all caps because they are constants
Enumerations
⚫ When constructing a model, we should carefully note enumerations,
because they often occur and are important to users.
⚫ Enumerations are also significant for an implementation; we may
display the possible values with a pick list.
⚫ Do not use a generalization to capture the values of an Enumerated
attribute.
⚫ An Enumeration is merely a list of values; generalization is a means
for structuring the description of objects.
Enumerations
⚫ In the UML an enumeration is a data type.
⚫ The second section lists the enumeration values.
⚫ Eg: Boolean type= { TRUE, FALSE}
Scope
UML specifies two types of scope for members: instance and classifier.
⚫ Classifier members are commonly recognized as “static” in many
programming languages. The scope is the class itself.
⚫ Attribute values are equal for all instances
⚫ Method invocation does not affect the instance’s state
⚫ Instance members are scoped to a specific instance.
⚫ Attribute values may vary between instances
⚫ Method invocation may affect the instance’s state (i.e., change instance’s
attributes)
⚫ To indicate a classifier scope for a member, its name must be underlined.
Otherwise, instance scope is assumed by default.
10
Scope
⚫ Individual member data (attributes) may have either class
scope or instance scope.
⚫ Class scope - A single copy of an attribute is shared by all
instances of a class.
⚫ In UML you underline the attribute to indicate class scope:
productCount : int
⚫ Instance scope - Each instance of a class would have its own
copy of the attribute. All attributes have instance scope by
default.
11
Scope examples
Visibility
⚫ Visibility refers to the ability of a method to reference a feature from another
class and has the possible values of public, protected & private.
⚫ Public—Visible anywhere that the class in which it appears is visible;
denoted by +.
⚫ Package—Visible anywhere in the package containing the class in which it
appears; denoted by ~.
⚫ Protected—Visible in the class in which it appears and all its sub-classes;
denoted by #.
⚫ Private—Visible only in the class in which it appears; denoted by -
⚫ Restricting visibility is the same as restricting accessibility.
Visibility
⚫ The UML denotes visibility with a prefix
⚫ “+” public
⚫ “-” private
⚫ “#” protected
⚫ “~” package
14
Visibility Example
⚫ An n-ary association is like a common (binary) association, except
that more than two association roles involved in it.
⚫ The UML symbol for n-ary associations is a diamond with lines connecting
to related classes. If the association has a name, it is written in italics next
to the diamond.
N-ary Association
Class
1
Class
2
Class
3
N-ary
associatio
n
Ternary
associatio
n
N-ary Associations
⚫ Associations can connect more than one class
⚫ Notation:
Student Advisor
Major
N-ary Associations
date
trainN
o
Trai
n carriageN
o
seatNo
Sea
t
nam
e
title
Passeng
er
Reservatio
n
1 1..*
1..*
N-ary Associations
⚫ We may occasionally encounter n-ary associations (association
among 3 or more classes).
⚫ But we should try to avoid n-ary associations- most of them
can be decomposed into binary associations, with possible
qualifiers and attributes.
19
N-ary Association
20
N-ary Association (cont’d)
decompose
21
Aggregation
⚫ A special form of association that models a whole-part relationship between
an aggregate (the whole) and its parts.
⚫ Models a “is a part-part of” relationship.
⚫ The aggregation association represents the part-whole relation between
classes.
⚫ Denoted by a solid diamond and lines
⚫ Diamond attaches to the aggregate (whole) while lines attach to the parts
⚫ May have all association adornments
Whole Part
Car
Door House
22
Aggregation (cont.)
⚫ Aggregation tests:
⚫ Is the phrase “part of” used to describe the relationship?
⚫ A door is “part of” a car
⚫ Are some operations on the whole automatically applied to its
parts?
⚫ Move the car, move the door.
⚫ Are some attribute values propagated from the whole to all or some
of its parts?
⚫ The car is blue, therefore the door is blue.
⚫ A door is part of a car. A car is not part of a door.
Car Door House
Whole Part
Aggregation
*
Pizza Order
Slice
Crust
Sauce Serving
Cheese Serving
Topping Serving
24
Composition
⚫ Composition is a form of aggregation with strong
ownership and coincident lifetime of the parts by the
whole; the part object may belong to only one whole –
the parts are usually expected to live and die with the
whole.
(usually, any deletion of the whole is considered to
cascade to the parts}{filled diamond}
Aggregation and Composition
⚫ Aggregation is a special form of association that specifies a whole-part
relationship between the aggregate (the whole) and a component (the part);
aggregation is the part-of relationship. { it is a special form of association
in which a collection of objects, each having an independent existence, is
associated with an single object} {unfilled diamond}
⚫ Composition is a form of aggregation with strong ownership and coincident
lifetime of the parts by the whole; the part object may belong to only one
whole – the parts are usually expected to live and die with the whole.
(usually, any deletion of the whole is considered to cascade to the
parts}{filled diamond}
Metadata
⚫ The term "meta" comes from a Greek word that denotes
something of a higher or more fundamental nature.
Metadata, then, is data about other data.
⚫ The term refers to any data used to aid the identification,
description and location of networked electronic resources
Defining Metadata
⚫ Librarians equate it with a complete bibliographic record
⚫ Information technologists equate it to database schema or
definitions of the data elements
⚫ Archivists include context information, restrictions and
access terms, index terms, etc.
Metadata
⚫ Metadata is data that describes other data. For example, a class
definition is a metadata.
⚫ Models are inherently metadata, since they describe the things
being modeled (rather than being the things).
⚫ Many real-world applications have metadata, such as parts
catalogs, blueprints, and dictionaries. Computer-languages
implementations also use metadata heavily.
Derived Data
⚫ A derived element is a function of one or more elements, which in
turn may be derived.
⚫ A derived element is redundant, because the other elements
completely determine it.
⚫ Ultimately, the derivation tree terminates with base elements.
⚫ Classes, associations, and attributes may be derived.
⚫ The notation for a derived element is a slash in front of the element
name along with constraint that determines the derivation.
Derived Data
Employee
Basic Pay
/gross pay
Packages
⚫ A package is a group of elements (classes, association,
generalization, and lesser packages) with a common theme.
⚫ A package partitions a model making it easier to understand and
manage. Large applications my require several tiers of packages.
⚫ Packages form a tree with increasing abstraction toward the root,
which is the application, the top-level package.
⚫ Notation for package is a box with a tab.
Customer Order
Sales
When to use Package
⚫ To create a overview of a large set of model elements
⚫ To organize a large model
⚫ To group related elements
State Modeling
State Modeling
⚫ State model describes the sequences of operations that occur in
response to external stimuli.
⚫ The state model consists of multiple state diagrams, one for each
class with temporal behavior that is important to an application.
⚫ The state diagram is a standard computer science concept that relates
events and states.
⚫ Events represent external stimuli and states represent values objects.
Elements of State Diagrams
⚫ The basic elements of state diagrams are
⚫ Events – An event is an occurrence at a point in time
⚫ states – the state in which the object finds itself at any moment
⚫ transitions – take the object from one state to another
⚫ actions – take place as a result of a transition
Events
⚫ An event is an occurrence at a point in time such as –
User presses left button
Indigo flight departs from Mumbai
⚫ An event happens instantaneously with regard to time scale of
an application.
⚫ One event may logically precede or follow another, or the two
events may be unrelated (concurrent; they have no effect on
each other).
Types of Events
An event may be one of 3 types
⚫ Signal event
⚫ Time event
⚫ Change event
Signal Event
⚫ A signal is an explicit one-way transmission of information from one
object to another.
⚫ An object sending a signal to another object may expect a reply, but
the reply is a separate signal under the control of the second object,
which may or may not choose to send it.
⚫ A signal event is the event of sending or receiving a signal (concern
about receipt of a signal).
⚫ The difference between signal and signal event
⚫ a signal is a message between objects
⚫ a signal event is an occurrence in time.
Time Event
⚫ Time event is an event caused by the occurrence of an absolute
time or the elapse of a time interval.
⚫ UML notation for an absolute time is the keyword when
followed by a parenthesized expression involving time.
⚫ The notation for a time interval is the keyword after followed
by a parenthesized expression that evaluates to a time duration.
when (date = jan 1, 2000 )
Change Event
A change event occurs whenever a specified condition is met
⚫ Event name is specified as keyword when
⚫ Parameter list is a Boolean expression
⚫ The event occurs when both of the following conditions are met,
irrespective of the order when they happen
⚫ The expression evaluates to true
⚫ The object is in the required state
when (battery power < lower limit )
when (tire pressure < minimum pressure )
States
⚫ State is a condition or situation during the life of an object within
which it performs some activity, or waits for some events
⚫ The objects in a class have a finite number of possible states.
⚫ Each object can be in one state at a time.
⚫ A state specifies the response of an object to input events.
⚫ At any given point in time, the system is in one state.
⚫ It will remain in this state until an event occurs that causes it to
change state.
⚫ Event vs. States
⚫ Event represents points in time.
⚫ State represents intervals of time.
States
⚫ A state is when a system is:
Doing something – e.g., heating oven, mixing
ingredients, accelerating engine,
Waiting for something to happen – Waiting for user to
enter password, waiting for sensor reading.
Eg:
power turned on power turned off power turned on
Time
Powered
Not powered
A state corresponds to the interval between two events received by an
object.
The state of an object depends on past events.
Basic UML Syntax
⚫ A state is drawn with a
round box, with three
compartments for
⚫ name
⚫ state variables (if any)
⚫ actions to be performed
Transitions
⚫ A transition is a relationship between two states indicating that an
object in the first state will enter the second state.
⚫ A transition is an instantaneous change from one state to another.
⚫ The transition is said to fire upon the change from the source state to
target state.
⚫ A guard condition must be true in order for a transition to occur.
⚫ A guard condition is checked only once, at the time the event occurs,
and the transition fires if the condition is true.
50
Transition
A directed relationship between two states.
Contains five parts
⚫ Source state - current state before transition fires.
⚫ Event trigger - external stimulus that has the potential to
cause a transition to fire.
⚫ Guard condition - a condition that must be satisfied before
a transition can fire.
⚫ Target state - new state after transition fires.
Basic UML Syntax
⚫ A transition is drawn with
an arrow, possibly labeled
with
⚫ event causing the
transaction
⚫ guard condition
⚫ Action to perform
52
Idle
Initial State
Running
Final State
State
Transition
52
Billing Example
State Diagrams show the sequences of states an object goes through
during its life cycle in response to stimuli, together with its responses
and actions; an abstraction of all possible behaviors.
Unpaid
Start End
Paid
Invoice created paying Invoice destroying
Seminar Registration
Actions
⚫ Action
⚫ is an executable atomic computation
⚫ includes operation calls, the creation or destruction of
another object, or the sending of a signal to an object
⚫ associated with transitions and during which an action is not
interruptible -- e.g., entry, exit
Predefined Action Labels
“entry/”
⚫ identifies an action, specified by the corresponding action expression,
which is performed upon entry to the state (entry action)
“exit/”
⚫ identifies an action, specified by the corresponding action expression,
that is performed upon exit from the state (exit action)
“do/”
⚫ identifies an ongoing activity (“do activity”) that is performed as long as
the modeled element is in the state or until the computation specified by
the action expression is completed (the latter may result in a completion
event being generated).
“include/”
⚫ is used to identify a submachine invocation. The action expression
contains the name of the submachine that is to be invoked.
State Diagrams notation
Pai
d
Unpai
d
payin
g
Invoice
created
Invoice
destroyed
name
state
final state
Initial state
transition
event
Here’s a simple example SD for a
washing machine.
State
Transition
Condition
Action
59
A condition is typically some kind of event,
e.g.:
•Signal
•Arrival of an object (data/material),
•Etc…
Condition
Action
An action is the appropriate output or response
to the event, e.g.:
•Signal or message
•Transfer of an object,
•Calculation,
•Etc…
State Diagrams (Traffic light example)
Yellow
Red
Green
Traffic Light
State
Transition
Event
Start
Transitions
x y
event [guard] | action
The event that
triggers the
transition
Conditions that
must be met for
the transition to
take place
The action that
takes place when
the transition is
taken
Initial and Final States
⚫ An example:
At Work At
Home
go
home
go to
work
di
e
di
e
63
State
Diagrams
64
Event Trace
for an ATM
Transaction
65
State Diagrams ATM, Bank, and Consortium
66
State Diagram for a Phone Line
67
Phone Example
digit dialed (n)
[incomplete]
Dialing
Connectin
g
busy
connected
digit dialed (n)
[valid] / connect
digit dialed (n)
[invalid]
Invalid
Ringing
Busy
67
State diagram of a microwave oven
68
States of Garment (Garments system)
70
State Diagrams
⚫A state diagram describes the behaviour of a system, some
part of a system, or an individual object.
⚫ At any given point in time, the system or object is in a
certain state.
⚫ Being in a state means that it is will behave in a specific way in
response to any events that occur.
⚫ Some events will cause the system to change state.
⚫ In the new state, the system will behave in a different way to
events.
⚫ A state diagram is a directed graph where the nodes are
states and the arcs are transitions.
71
Using Microsoft Visio
⚫ Visio can be used to draw UML diagrams
⚫ It is component of Microsoft Office
72
Using Microsoft Visio (continued)
Available Sets of Shapes in the UML Collection
Activity Diagrams
Collaboration Diagrams
Components
Deployment Diagrams
Sequence Diagrams
State Diagrams (Statecharts)
Static Structures (shown) – include Packages and Classes
Use Case Diagrams
73
Using Microsoft Visio (concluded)
UML symbols can be
displayed as icons with names
or icons with descriptions
Both forms of display for the
Use Case shape set are shown
Now, on to the demo!
74
start state
stop state
transition from one state to
another
self-transition (no
change of state)
event [guard] / action transition label (each of the three
parts is optional)
state
The Inheritance Mechanism
⚫ Means of deriving new class from existing classes, called
base classes
⚫ Reuses existing code eliminating tedious, error prone task
of developing new code
⚫ Derived class developed from base by adding or altering
code
Multiple Inheritance
⚫ A derived class with several base classes is known as multiple inheritance
⚫ Multiple inheritance permits a class to have more than one super class and
to inherit features from all parents.
⚫ We can mix information from 2 or more sources.
⚫ This is a more complicated from of generalization than single inheritance.
⚫ The advantage of multiple inheritance is greater power in specifying classes
and an increased opportunity for reuse.
⚫ The disadvantage is a loss of conceptual and implementation simplicity.
Credit Cards - Single Inheritance
Same basic features
Each is a little different
Voice Mail - Multiple Inheritance
Voice mail has features
of both mail and phone
What Is A Constraint
⚫ A condition or restriction (a Boolean expression) expressed in natural
language text or in a machine readable language for the purpose of declaring
some of the semantics of an element
⚫ Some are predefined in UML (“xor”), others may be user-defined
⚫ OCL (Object Constraint Language) is a predefined language for writing
constraints
80
Constraints
⚫ These are functional relation between entities of an object
model.
⚫ Entity includes objects, classes, attributes, links and
associations.
⚫ A constraint restricts the values that entities can assume.
⚫ Simple constraints may be placed in object models and
complex may be in functional model.
81
Employee
salary
boss
{ salary < = boss.salary }
Window
Length
width
{ 0.8 <= length / width < = 1.5 }
Constraints on objects

OOMD UNIT2.pdf

  • 1.
  • 2.
  • 3.
    UNIT – 2:ADVANCED CLASS MODELING, STATE MODELING: Advanced object and class concepts; Association ends; N-ary associations; Aggregation; Abstract classes; Multiple inheritance; Metadata; Reification; Constraints; Derived data; Packages; Practical tips. State Modeling: Events, States, Transitions and Conditions; State diagrams; State diagram behaviour; Practical tips.
  • 4.
    Advanced object andclass concepts Enumerations Multiplicity Scope Visibility
  • 5.
    Enumeration Data type -a set of values together with a set of operations on those values ⚫ To define a new simple data type, called enumeration type, we need 2 things: ⚫ A name for the data type ⚫ A set of values for the data type ⚫ enum {FALSE, TRUE}; ⚫ enum rank {TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING, ACE}; ⚫ enum colors {BLACK, BLUE, GREEN, CYAN, RED}; ⚫ The values are written in all caps because they are constants
  • 6.
    Enumerations ⚫ When constructinga model, we should carefully note enumerations, because they often occur and are important to users. ⚫ Enumerations are also significant for an implementation; we may display the possible values with a pick list. ⚫ Do not use a generalization to capture the values of an Enumerated attribute. ⚫ An Enumeration is merely a list of values; generalization is a means for structuring the description of objects.
  • 7.
    Enumerations ⚫ In theUML an enumeration is a data type. ⚫ The second section lists the enumeration values. ⚫ Eg: Boolean type= { TRUE, FALSE}
  • 9.
    Scope UML specifies twotypes of scope for members: instance and classifier. ⚫ Classifier members are commonly recognized as “static” in many programming languages. The scope is the class itself. ⚫ Attribute values are equal for all instances ⚫ Method invocation does not affect the instance’s state ⚫ Instance members are scoped to a specific instance. ⚫ Attribute values may vary between instances ⚫ Method invocation may affect the instance’s state (i.e., change instance’s attributes) ⚫ To indicate a classifier scope for a member, its name must be underlined. Otherwise, instance scope is assumed by default.
  • 10.
    10 Scope ⚫ Individual memberdata (attributes) may have either class scope or instance scope. ⚫ Class scope - A single copy of an attribute is shared by all instances of a class. ⚫ In UML you underline the attribute to indicate class scope: productCount : int ⚫ Instance scope - Each instance of a class would have its own copy of the attribute. All attributes have instance scope by default.
  • 11.
  • 12.
    Visibility ⚫ Visibility refersto the ability of a method to reference a feature from another class and has the possible values of public, protected & private. ⚫ Public—Visible anywhere that the class in which it appears is visible; denoted by +. ⚫ Package—Visible anywhere in the package containing the class in which it appears; denoted by ~. ⚫ Protected—Visible in the class in which it appears and all its sub-classes; denoted by #. ⚫ Private—Visible only in the class in which it appears; denoted by - ⚫ Restricting visibility is the same as restricting accessibility.
  • 13.
    Visibility ⚫ The UMLdenotes visibility with a prefix ⚫ “+” public ⚫ “-” private ⚫ “#” protected ⚫ “~” package
  • 14.
  • 15.
    ⚫ An n-aryassociation is like a common (binary) association, except that more than two association roles involved in it. ⚫ The UML symbol for n-ary associations is a diamond with lines connecting to related classes. If the association has a name, it is written in italics next to the diamond. N-ary Association Class 1 Class 2 Class 3 N-ary associatio n Ternary associatio n
  • 16.
    N-ary Associations ⚫ Associationscan connect more than one class ⚫ Notation: Student Advisor Major
  • 17.
  • 18.
    N-ary Associations ⚫ Wemay occasionally encounter n-ary associations (association among 3 or more classes). ⚫ But we should try to avoid n-ary associations- most of them can be decomposed into binary associations, with possible qualifiers and attributes.
  • 19.
  • 20.
  • 21.
    21 Aggregation ⚫ A specialform of association that models a whole-part relationship between an aggregate (the whole) and its parts. ⚫ Models a “is a part-part of” relationship. ⚫ The aggregation association represents the part-whole relation between classes. ⚫ Denoted by a solid diamond and lines ⚫ Diamond attaches to the aggregate (whole) while lines attach to the parts ⚫ May have all association adornments Whole Part Car Door House
  • 22.
    22 Aggregation (cont.) ⚫ Aggregationtests: ⚫ Is the phrase “part of” used to describe the relationship? ⚫ A door is “part of” a car ⚫ Are some operations on the whole automatically applied to its parts? ⚫ Move the car, move the door. ⚫ Are some attribute values propagated from the whole to all or some of its parts? ⚫ The car is blue, therefore the door is blue. ⚫ A door is part of a car. A car is not part of a door. Car Door House Whole Part
  • 23.
  • 24.
    24 Composition ⚫ Composition isa form of aggregation with strong ownership and coincident lifetime of the parts by the whole; the part object may belong to only one whole – the parts are usually expected to live and die with the whole. (usually, any deletion of the whole is considered to cascade to the parts}{filled diamond}
  • 25.
    Aggregation and Composition ⚫Aggregation is a special form of association that specifies a whole-part relationship between the aggregate (the whole) and a component (the part); aggregation is the part-of relationship. { it is a special form of association in which a collection of objects, each having an independent existence, is associated with an single object} {unfilled diamond} ⚫ Composition is a form of aggregation with strong ownership and coincident lifetime of the parts by the whole; the part object may belong to only one whole – the parts are usually expected to live and die with the whole. (usually, any deletion of the whole is considered to cascade to the parts}{filled diamond}
  • 28.
    Metadata ⚫ The term"meta" comes from a Greek word that denotes something of a higher or more fundamental nature. Metadata, then, is data about other data. ⚫ The term refers to any data used to aid the identification, description and location of networked electronic resources
  • 29.
    Defining Metadata ⚫ Librariansequate it with a complete bibliographic record ⚫ Information technologists equate it to database schema or definitions of the data elements ⚫ Archivists include context information, restrictions and access terms, index terms, etc.
  • 30.
    Metadata ⚫ Metadata isdata that describes other data. For example, a class definition is a metadata. ⚫ Models are inherently metadata, since they describe the things being modeled (rather than being the things). ⚫ Many real-world applications have metadata, such as parts catalogs, blueprints, and dictionaries. Computer-languages implementations also use metadata heavily.
  • 31.
    Derived Data ⚫ Aderived element is a function of one or more elements, which in turn may be derived. ⚫ A derived element is redundant, because the other elements completely determine it. ⚫ Ultimately, the derivation tree terminates with base elements. ⚫ Classes, associations, and attributes may be derived. ⚫ The notation for a derived element is a slash in front of the element name along with constraint that determines the derivation.
  • 32.
  • 33.
    Packages ⚫ A packageis a group of elements (classes, association, generalization, and lesser packages) with a common theme. ⚫ A package partitions a model making it easier to understand and manage. Large applications my require several tiers of packages. ⚫ Packages form a tree with increasing abstraction toward the root, which is the application, the top-level package. ⚫ Notation for package is a box with a tab.
  • 34.
  • 35.
    When to usePackage ⚫ To create a overview of a large set of model elements ⚫ To organize a large model ⚫ To group related elements
  • 36.
  • 37.
    State Modeling ⚫ Statemodel describes the sequences of operations that occur in response to external stimuli. ⚫ The state model consists of multiple state diagrams, one for each class with temporal behavior that is important to an application. ⚫ The state diagram is a standard computer science concept that relates events and states. ⚫ Events represent external stimuli and states represent values objects.
  • 38.
    Elements of StateDiagrams ⚫ The basic elements of state diagrams are ⚫ Events – An event is an occurrence at a point in time ⚫ states – the state in which the object finds itself at any moment ⚫ transitions – take the object from one state to another ⚫ actions – take place as a result of a transition
  • 39.
    Events ⚫ An eventis an occurrence at a point in time such as – User presses left button Indigo flight departs from Mumbai ⚫ An event happens instantaneously with regard to time scale of an application. ⚫ One event may logically precede or follow another, or the two events may be unrelated (concurrent; they have no effect on each other).
  • 40.
    Types of Events Anevent may be one of 3 types ⚫ Signal event ⚫ Time event ⚫ Change event
  • 41.
    Signal Event ⚫ Asignal is an explicit one-way transmission of information from one object to another. ⚫ An object sending a signal to another object may expect a reply, but the reply is a separate signal under the control of the second object, which may or may not choose to send it. ⚫ A signal event is the event of sending or receiving a signal (concern about receipt of a signal). ⚫ The difference between signal and signal event ⚫ a signal is a message between objects ⚫ a signal event is an occurrence in time.
  • 42.
    Time Event ⚫ Timeevent is an event caused by the occurrence of an absolute time or the elapse of a time interval. ⚫ UML notation for an absolute time is the keyword when followed by a parenthesized expression involving time. ⚫ The notation for a time interval is the keyword after followed by a parenthesized expression that evaluates to a time duration. when (date = jan 1, 2000 )
  • 43.
    Change Event A changeevent occurs whenever a specified condition is met ⚫ Event name is specified as keyword when ⚫ Parameter list is a Boolean expression ⚫ The event occurs when both of the following conditions are met, irrespective of the order when they happen ⚫ The expression evaluates to true ⚫ The object is in the required state when (battery power < lower limit ) when (tire pressure < minimum pressure )
  • 44.
    States ⚫ State isa condition or situation during the life of an object within which it performs some activity, or waits for some events ⚫ The objects in a class have a finite number of possible states. ⚫ Each object can be in one state at a time. ⚫ A state specifies the response of an object to input events. ⚫ At any given point in time, the system is in one state. ⚫ It will remain in this state until an event occurs that causes it to change state. ⚫ Event vs. States ⚫ Event represents points in time. ⚫ State represents intervals of time.
  • 45.
    States ⚫ A stateis when a system is: Doing something – e.g., heating oven, mixing ingredients, accelerating engine, Waiting for something to happen – Waiting for user to enter password, waiting for sensor reading.
  • 46.
    Eg: power turned onpower turned off power turned on Time Powered Not powered A state corresponds to the interval between two events received by an object. The state of an object depends on past events.
  • 47.
    Basic UML Syntax ⚫A state is drawn with a round box, with three compartments for ⚫ name ⚫ state variables (if any) ⚫ actions to be performed
  • 49.
    Transitions ⚫ A transitionis a relationship between two states indicating that an object in the first state will enter the second state. ⚫ A transition is an instantaneous change from one state to another. ⚫ The transition is said to fire upon the change from the source state to target state. ⚫ A guard condition must be true in order for a transition to occur. ⚫ A guard condition is checked only once, at the time the event occurs, and the transition fires if the condition is true.
  • 50.
    50 Transition A directed relationshipbetween two states. Contains five parts ⚫ Source state - current state before transition fires. ⚫ Event trigger - external stimulus that has the potential to cause a transition to fire. ⚫ Guard condition - a condition that must be satisfied before a transition can fire. ⚫ Target state - new state after transition fires.
  • 51.
    Basic UML Syntax ⚫A transition is drawn with an arrow, possibly labeled with ⚫ event causing the transaction ⚫ guard condition ⚫ Action to perform
  • 52.
  • 53.
    Billing Example State Diagramsshow the sequences of states an object goes through during its life cycle in response to stimuli, together with its responses and actions; an abstraction of all possible behaviors. Unpaid Start End Paid Invoice created paying Invoice destroying
  • 54.
  • 55.
    Actions ⚫ Action ⚫ isan executable atomic computation ⚫ includes operation calls, the creation or destruction of another object, or the sending of a signal to an object ⚫ associated with transitions and during which an action is not interruptible -- e.g., entry, exit
  • 56.
    Predefined Action Labels “entry/” ⚫identifies an action, specified by the corresponding action expression, which is performed upon entry to the state (entry action) “exit/” ⚫ identifies an action, specified by the corresponding action expression, that is performed upon exit from the state (exit action) “do/” ⚫ identifies an ongoing activity (“do activity”) that is performed as long as the modeled element is in the state or until the computation specified by the action expression is completed (the latter may result in a completion event being generated). “include/” ⚫ is used to identify a submachine invocation. The action expression contains the name of the submachine that is to be invoked.
  • 57.
  • 58.
    Here’s a simpleexample SD for a washing machine. State Transition Condition Action
  • 59.
    59 A condition istypically some kind of event, e.g.: •Signal •Arrival of an object (data/material), •Etc… Condition Action An action is the appropriate output or response to the event, e.g.: •Signal or message •Transfer of an object, •Calculation, •Etc…
  • 60.
    State Diagrams (Trafficlight example) Yellow Red Green Traffic Light State Transition Event Start
  • 61.
    Transitions x y event [guard]| action The event that triggers the transition Conditions that must be met for the transition to take place The action that takes place when the transition is taken
  • 62.
    Initial and FinalStates ⚫ An example: At Work At Home go home go to work di e di e
  • 63.
  • 64.
    64 Event Trace for anATM Transaction
  • 65.
    65 State Diagrams ATM,Bank, and Consortium
  • 66.
  • 67.
    67 Phone Example digit dialed(n) [incomplete] Dialing Connectin g busy connected digit dialed (n) [valid] / connect digit dialed (n) [invalid] Invalid Ringing Busy 67
  • 68.
    State diagram ofa microwave oven 68
  • 69.
    States of Garment(Garments system)
  • 70.
    70 State Diagrams ⚫A statediagram describes the behaviour of a system, some part of a system, or an individual object. ⚫ At any given point in time, the system or object is in a certain state. ⚫ Being in a state means that it is will behave in a specific way in response to any events that occur. ⚫ Some events will cause the system to change state. ⚫ In the new state, the system will behave in a different way to events. ⚫ A state diagram is a directed graph where the nodes are states and the arcs are transitions.
  • 71.
    71 Using Microsoft Visio ⚫Visio can be used to draw UML diagrams ⚫ It is component of Microsoft Office
  • 72.
    72 Using Microsoft Visio(continued) Available Sets of Shapes in the UML Collection Activity Diagrams Collaboration Diagrams Components Deployment Diagrams Sequence Diagrams State Diagrams (Statecharts) Static Structures (shown) – include Packages and Classes Use Case Diagrams
  • 73.
    73 Using Microsoft Visio(concluded) UML symbols can be displayed as icons with names or icons with descriptions Both forms of display for the Use Case shape set are shown Now, on to the demo!
  • 74.
    74 start state stop state transitionfrom one state to another self-transition (no change of state) event [guard] / action transition label (each of the three parts is optional) state
  • 75.
    The Inheritance Mechanism ⚫Means of deriving new class from existing classes, called base classes ⚫ Reuses existing code eliminating tedious, error prone task of developing new code ⚫ Derived class developed from base by adding or altering code
  • 76.
    Multiple Inheritance ⚫ Aderived class with several base classes is known as multiple inheritance ⚫ Multiple inheritance permits a class to have more than one super class and to inherit features from all parents. ⚫ We can mix information from 2 or more sources. ⚫ This is a more complicated from of generalization than single inheritance. ⚫ The advantage of multiple inheritance is greater power in specifying classes and an increased opportunity for reuse. ⚫ The disadvantage is a loss of conceptual and implementation simplicity.
  • 77.
    Credit Cards -Single Inheritance Same basic features Each is a little different
  • 78.
    Voice Mail -Multiple Inheritance Voice mail has features of both mail and phone
  • 79.
    What Is AConstraint ⚫ A condition or restriction (a Boolean expression) expressed in natural language text or in a machine readable language for the purpose of declaring some of the semantics of an element ⚫ Some are predefined in UML (“xor”), others may be user-defined ⚫ OCL (Object Constraint Language) is a predefined language for writing constraints
  • 80.
    80 Constraints ⚫ These arefunctional relation between entities of an object model. ⚫ Entity includes objects, classes, attributes, links and associations. ⚫ A constraint restricts the values that entities can assume. ⚫ Simple constraints may be placed in object models and complex may be in functional model.
  • 81.
    81 Employee salary boss { salary <= boss.salary } Window Length width { 0.8 <= length / width < = 1.5 } Constraints on objects