Lecture 1
1) Synopsis
Dynamic Modeling-Events and States
2) Target
At the completion of this lecture you should
be able to answer questions like
(a) What is meant by dynamic
modeling?
(b) What are events?
(c) Write short notes
on state diagrams.
(d) What are event
traces?
3) Introduction
In
the previous lectures, I have already introduced you to the basic concepts
concerning object modeling. Now I will be covering on dynamic modeling. In
particular we will discuss on the following:
(i)
Dynamic Modeling
(ii)
Events
(iii) States
(iv) State
diagrams
(v)
Event Traces
4) Revision/Prerequisites
Please refer to pages 84 to 92.
5) Concepts:
What is dynamic modeling?
Temporal relationships are difficult to understand .A system can be best
understood by first examining its staitic behavior. Then next we examine the
changes to the objects and their relationships over time. Those aspects of a
system that are concerned with time and changes are the dynamic model.”
Control is that aspect of a system that describes the sequences of
operations that occur in response to external stimuli without consideration of
what the operations do , what they operate on, or how they are implemented.
The major dynamic modeling concepts are:
·
events, states
·
state diagrams
Events and States:
“The attribute values and links held by an object are called its state.
Over time, the objects stimulate each other, resulting in a series of changes
to their states.”“ An individual
stimulus from one object to another is an event.” The response of an event
depends on the state of the object receiving it, and can include a change of
state or the sending of another event to the original sender or to a third
object.
“The pattern of events, states and state transitions for a given class
can be abstracted and represented as a state diagram.”
The dynamic model consists of
multiple state diagrams, one state diagram for each class with important
dynamic behavior, and shows the pattern of activity for an entire system. The
state diagrams for the various classes combine into a single dynamic model via
shared events.
1) Events:
“An event is something that happens at appoint in time.”
Eg:-Flight 123 departs from Chicago .
An event has no duration. One event may logically precede or follow
another, or the two events may be unrelated.
Eg:-Flight 123 must depart Chicago before
it can arrive in San Francisco ;
the two events are casually related.
“Two events that are casually unrelated are said to be concurrent; they
have no effect on each other.” Concurrent events can occur in any order.
An event is a one way transmission of information from one object to another.
An object sending an event to another object may expect a reply, but the reply
is a separate event under the control of the second object, which may or may
not choose to send it.
Every event is a unique occurrence but we group them into event classes
and give each event class a name to indicate common structure and behavior.
Eg:-Flight 123 departs from Chicago .
Flight 456 departs from Rome .
Both are instances of the
event class airplane flight departs.
Some events are signals, but most event classes have attributes
indicating the information they convey.eg:-airplane flight departs has
attributes airline, flight number and city. The time at which each event occurs
is an implicit attribute of an event.
An event conveys information from one object to another. Some classes of
events may be simply signals that something has occurred, while other classes
of events convey data values. The data values conveyed by events are its
attributes, like data values held by its objects. Attributes are shown in the
parentheses after the event class name.
Fig.2.1.1 Event classes and attributes
Events include error conditions as well as normal occurrences.
eg:-motor jammed.
2) Scenarios and Event Traces
A scenario is a sequence of events
that occurs during one particular execution of system. The scope of a scenario
can vary. A scenario can be thought of as a historical record of executing a
system or a thought expression of executing a proposed system.
Now let us see the
scenario for a telephone system.
Fig.2.1.2 Scenario for phone call
The next step after writing a scenario is to identify the sender and
receiver objects of each event.
“The sequence of events and the
objects exchanging events can both be shown in an augmented scenario called
event trace diagram.” The diagram shows each object as a vertical line and each
event as a horizontal arrow from the sender object to the receiver object. Time
increases from top to bottom.
3) States
A state is an abstraction of the attribute values and links of an object.
The set of values are grouped together into a state according to properties
that affect the gross behavior of the object.
For example, let us consider the state of a bank. It can either in a
solvent or an insolvent state depending on whether it assets exceeds its
liabilities.
A state specifies the response of the object to input events. The
response to an event may vary quantitatively depending on the exact value of
its attributes .The response is the same for values within the same states but
different for values in different states.
The response of an object to an event may include an action or a change
of state by the object.
Eg:-if a digit is dialed in state dial tone the phone line drops the dial
tone and enters dialing.
A state corresponds to the interval between two events received by an
object. Events represent points in time; states represent intervals of time.
For example, in the phone example, after the receiver is lifted and
before the first digit is dialed, the phone line is in Dial Tone state.
The state of an object depends on the past sequence of events it has
received, but in most cases past events are eventually hidden by subsequent
events.
For example, Events that has happened before the phone is hung up have no
effect on future behavior.
A state has duration. A state is often associated with a continuous
activity .eg:- ringing of phone. Events and states are duals i.e. an event
separates two states and a state separates 2 events. A state is often
associated with the value of an object satisfying some condition. For example,
Water is liquid when temperature of water is greater than zero degrees Celsius
and below 100 degree Celsius.
Both events and states depend on the level of abstraction used. For
example, travel agent planning an itinerary would treat each segment as a
single event, but a flight status board will treat it as 2 events departure and
arrival.
A state can be characterized in various ways.
For example,
State: alarm ringing
Description:
.
.
.
.
i.e. we specify the name, natural language description and event sequence
that lead to it.
4) State diagrams
“A state diagram relates events
and states “.
When an event is received the next state depends on the current state as
well as the event; a change of state caused by an event is called a transition.
Well you can define a state diagram
as a graph whose nodes are states and whose directed arcs are transitions
labeled by event names .We can use rounded boxes to denote states and it
contains an optional name .The transition is drawn as an arrow from the
receiving state to the target state; the label on the arrow is the name of the
event causing transitions .All transitions leaving a state must be correspond
to different events. The state diagram specifies the state sequence caused by
an event sequence.
If an object is in a state and an event labeling one of its transition
occurs the objects enters the state on the target end of the transition. The
transition is said to fire.
-> If more than one
transition leaves a state then the first event to occur causes the
corresponding transition to fire.
->If an event occurs that
no transition leaving the current state, then the event is ignored.
->A sequence of events corresponds to a path through the graph.
-> A state diagram describes the behavior of a single class of
objects. But each object has its own attribute values so each object has its
own state.
States can represent one shot life cycles or continuous loops
“One shot diagrams represent objects with finite lives.” The initial
state is entered on the creation of the object. Final state is entered on the
destruction of the object. The state diagram in the phone example was that of a
continuous system.
Initial state is shown by a solid circle while a final state is shown by
a solid circle.
5) Conditions
“A condition is a Boolean
function of object values. For example, when we say the temperature was below
freezing point from Nov to March.
Here the condition to be temperature below freezing point .It has
duration. A state can be defined in terms of a condition; conversely being in a
state is a condition. Conditions can be used as guards on transitions “A
guarded transition fires when its events occur but only if the condition is
true.
For example, let us say a person goes out in the morning (event), if the
temperature is below freezing (condition) , then put on your gloves(next
state).
A guarded condition on a transition is shown as a Boolean expression in
brackets following event name.
6) Summary
By now, you may be able to represent simple systems using state diagrams
and event traces.
Lecture 2
1) Synopsis
Operations-Nested state diagrams-Concurrency
2) Target
At the completion of this lecture you
should be able to answer questions like
(a)Why are operations used?
(b) What is an activity?
(c) What is an action?
(d) What are nested state
diagrams?
(e) Explain
concurrency in dynamic modeling.
3) Introduction
In
the last lecture I have already started discussing about dynamic modeling. To
start with I discussed about events, event trace diagrams and state diagrams.
Let us move on to discuss how we can use advanced concepts for making the
dynamic model more expressive. In particular we will discuss on the following:
(i)
Operations
(ii)
Actions
(iii) Activities
(iv) Nested
state diagrams
(v)
State generalizations
(vi) Event
generalization
(vii)Aggregation concurrency
4) Revision/Prerequisites
Please refer to pages 92 to 100
of your text book.
5) Concepts
Now that we have learnt about states, events, etc. Let us go into the
advanced concepts. Let us first discuss on the operations
i)Operations
The state diagrams describe the pattern of events and states for a single
object class. How to trigger operations?
i) Controlling Operations
State diagrams could be of little use if they just described the patterns
of the events. A behavior description of an object must specify what the object
does in response to events .Operations attached to states / transitions are
performed in response to corresponding states or events.
“An activity is an operation that takes time to complete.”
* An activity is associated with a state.
* Activities include continuous as well as sequential events.
*A state may control a continuous activity that persists until an event
terminates it by calling a transition from the state.
* do: activity within state box indicates that activity starts an entry
to the state and stops on exit.
*In the case of sequential events also it is the same thing.
* If an event causes a transition from the state before the activity is
complete, it terminates prematurely.
“An action is an instantaneous operation.”
·
it is associated with an event
·
Actions can also represent internal control
operations, such as setting attributes or generating other events.
·
Notation (‘/’ on transition) for action and the
name (or description of the action following the name of the event that causes
it.
ii) Nested State Diagrams
State diagrams can be structured to
permit concise descriptions of complex systems. The ways of structuring state
machines are similar to the ways of structuring objects. Generalization is
equivalent to expanding nested activities.
a) Problems with
Flat State Diagrams:
State diagrams
lack expressive power and are impractical for large problems. These problems
are true of flat, unstructured state diagrams.
b) Nested State
Diagrams
An activity in a
state can be expanded as a lower level state diagram, each state representing
one step of the activity. Nested activities are one shot diagrams with input
and output transitions, similar to subroutines.
c) State
Generalization
A nested state
diagram is actually a form of generalization on states. The states in the
nested diagrams are all refinements of the state in the high level diagrams,
but in general the states in a nested state diagram may interact with other
states. States may have substates that inherit the transitions of superstates,
unless overridden.
d) Event
Generalization
Events can be
organized into generalization hierarchy with inheritance of event attributes.
iii)
Concurrency
a) Aggregation
Concurrency
A dynamic model
describes a set of concurrent objects. A state of an entire system can’t be
represented by a single state in a single object. It is the product of the
states of all objects in it. A state diagram for an assembly is a collection of
state diagram, one for each component. By using aggregation we can represent
concurrency. Aggregate state corresponds to combined state of all component
diagrams.
b) Concurrency
within an object
Concurrency
within a single composite state of an object is shown by partitioning the
composite state into sub diagrams with dotted lines.
6) Summary
By now, you may be able to
represent simple systems using state diagrams and event traces.
Lecture 3
1) Synopsis
Advanced Dynamic Modeling Concepts
2) Target
At the completion of this lecture you should be able to
answer questions like
(a)What are entry and exit
actions?
(b) What is an internal
action?
(c) What is the
difference between an internal action and a self transition?
(d) What is an
automatic transition?
(e) How are
concurrent activities synchronized?
3) Introduction
Now
that you know about dynamic modeling and the preliminary concepts used in it.
Let us discuss about the advanced concepts. These are just extensions of the
concept action we had described in the previous lectures. In particular we will
discuss on the following:
(i)
Entry and Exit Actions
(ii)
Internal Actions
(iii)
Automatic Transitions
(iv)
Sending Events
(v)
Synchronization of Concurrent Activities
4) Revision/Prerequisites
Please refer to pages 101 to
106 of your textbook.
5)
Concepts
Let us discuss about various advanced dynamic modeling
concepts.
i) Entry and Exit Actions
As an
alternative to showing actions on transitions, actions can be associated with
entering or exiting a state. Exit actions are less common. What about the order
of execution of various actions and events associated with states and events?
Of all the action on the incoming transition will be
executed first, then the entry action, followed by the activity within the
state, followed by the exit action and finally the action on the outgoing
action.
The
activities can be interrupted by events causing transitions out of state but
entry and exit can’t be interrupted. The entry/exit actions are useful in state
diagrams .A state can be expressed in terms of matched entry-exit actions.
ii) Internal Actions
An event
can cause an action to be performed without causing a state change .The event
name is written inside state box followed by ‘/’ . Now
to differentiate betw
een a self-transition and an internal action.
Self-transition causes an entry and exit action to be executed but an internal
action does not.
iii) Automatic Transition
A state
performs a sequential activity. When it is over, the transition to another
fires. An arrow without an event name indicates an automatic transition that
fires when the activity associates with the source state is completed.
If there is no activity, the unlabeled transitions fires
as soon as the state is entered. Such transitions are called as ‘lambda’ transitions.
iv) Sending Events
An object
can perform action of sending an event to another object. A system interacts by
events. An event can be directed to a single or a group of objects. Any and all
objects can accept it concurrently.
“If a state can accept events from more than one object,
the order in which concurrent events are received may affect final state. This
is called a race condition. Unwanted race conditions should be avoided.
v) Synchronization of Concurrent Activities
Sometimes
an object must perform two or more activities concurrently. Both activities
must be completed before the object can progress to its next state. The target
state occurs after both events happen in any order.
6) Summary
We have completed with dynamic
modeling .Let us discuss on the last type of modeling the functional modeling
in our next lecture.
Lecture 4
1) Synopsis
Functional Models- Data Flow Diagrams-
Specifying Operations – Constraints- Relation of Functional to Object and
Dynamic Models.
2) Target
At the completion of this lecture you
should be able to answer questions like
(a)What is a data flow
diagram?
(b) What are the components of a
dfd?
3) Introduction
In
the last lecture I have dealt with advanced dynamic modeling concepts. Now let
us discuss about functional modeling. DFDs form the important diagrams in
functional modeling. Let us discuss about this .In particular we will discuss
on the following:
(i)
Functional Models
(ii)
Data Flow Diagrams
a)
Processes
b)
Data Flows
c)
Actors
d)
Data Stores
e)
Nested Data Flow Diagrams
f)
Control Flows
(iii) Specifying Operations
(iv) Constraints
(v)
Relation of Functional to Object and Dynamic Models
4) Revision/Prerequisites
Please refer to pages 123 to 139
of your textbook.
5) Concepts:
i) Functional Models
The functional model specifies the results of a computation without
specifying how or when they are computed. That means it specifies the meaning
of the operations in the object model and the actions in the dynamic model.
Spreadsheet is a kind of functional model. The purpose of the spreadsheet
is to specify values in terms of other values.
ii) Data Flow Diagrams
The functional model consists of multiple data flow diagrams. A Data Flow
Diagram (DFD) shows the functional relationships of the values computed by a
system, including the input values, output values, and internal data stores. Or
we can say that a DFD is a graph showing the flow of data values from their
sources in objects through processes that transform them to their destinations
in other objects.
A DFD contains processes that
transform data, data flows that move
data, actor objects that produce and
consume data, and data store objects
that store data passively.
The DFD shows the sequence of
transformations performed, as well as the external values and objects that
affect the computation.
i) Processes
A process
transforms data values. The lowest level processes are pure functions without
side effects. An entire data flow graph is a high level process. A process may
have side effects if it contains nonfunctional components. A process is drawn
as an ellipse.
Dividend Quotient
Divisor Remainder
Fig: process
ii) Data Flows
A data flow
connects the output of an object or process to the input of another object
or process. It represents an
intermediate data value within a computation. A data flow is drawn as an arrow.
Sometimes an aggregate data value is split into its components, each of which
goes to a different process. Flows on the boundary of a data flow diagram are
its inputs and outputs. Street
Adress City
State
Number
Zip
Code
Fig: Data flows
to copy a value and split an aggregate value
iii)
Actors
An
actor is an active object that drives the data flow graph by producing or
consuming values. Actors are attached to the inputs and outputs of a data flow
graph. The actors are lie on the boundary of the data flow graph. An actor is
drawn as a rectangle.
Icon definition
Application size location
Icon name
vector list window
vector list
Location
Screen
vector
list
Pixel
Operations
Fig: Data flow
diagram for windowed graphics display
iv)
Data Stores
A data store is a passive object within a data flow
diagram that stores data for later access. A data store is drawn as a pair of
parallel lines containing the name of the store. Input arrows indicate
information or operations that modify the stored data. Output arrows indicate
information retrieved from the store. Both actors and data stores are objects.
Temperature Max temp
Min temp
Fig: Data stores
v)
Nested Data Flow Diagrams
A process can be expanded into another data flow diagram. Each
input and output of the process is an input or output of the new diagram. The
new diagram may have data stores. Diagrams can be nested to an arbitrary depth,
and the entire set of nested diagrams forms a tree. A diagram that references
itself represents a recursive computation.
vi)
Control Flows
A control flow is a Boolean value that affects whether a
process is evaluated. The control flow is not an input value to the process
itself. A control flow is shown by a dotted line from a process producing a
Boolean value to the process being controlled.
Account
Verify
password
Balance
Password Password Ok
|
Amount
Fig: Control Flow
iii) Specifying Operations
Each operation can be specified in various ways. These
are :
-
Mathematical functions, such as trigonometric functions
-
Table of input and output values for small finite sets
-
Equations specifying output in terms of input
-
Pre- and post- conditions
-
Decision tables
-
Pseudocode
-
Natural language
Specification of an operation includes a signature and
a transformation. The external specification of an operation only describes
changes visible outside the operation. Access operations are operations that
read or write attributes or links of an object. Nontrivial operations can be
divided into three categories: queries, actions, and activities. A query is an
operation that has no side effects, it is a pure function. An action is a
transformation that has side effects on the target object. An activity is an
operation to or by an object that has duration in time
iv) Constraints
A constraint shows the relationship between two objects
at the same time or between different values of the same object at different
times. A constraint may be expressed as a total function or a partial function.
Object constraints specify that some objects depend entirely or partially on
other objects. Dynamic constraints specify relationships among the states or
events of different objects. Functional constraints specify restrictions on
operations.
v) Relation of Functional to Object and Dynamic
Models.
The functional model shows what has to be done by a
system. The leaf processes are the operations on objects. The processes in the
functional model correspond to operations in the object model. Processes in the
functional model show objects that are related by function.
A process is usually implemented as a method.
Refer:
Text for more details
6) Summary
By now, you may be able to
represent simple systems using state diagrams and event traces.
0 comments:
Post a Comment