0% found this document useful (0 votes)
27 views159 pages

Object-Oriented Modeling and Design

Uploaded by

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

Object-Oriented Modeling and Design

Uploaded by

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

Object-oriented modeling and

design
.

Ajay Tripathi 1
Introduction
 Itis a new way of thinking about problems
using models based on real world concepts.
 The basic construct is object which combines
both data structure and behavior in a single
entity.
 Rambaugh presents an object oriented
software development methodology, the
Object Modeling Technique (OMT) which
extends from analysis through design to
implementation.
Ajay Tripathi 2
 Analysis model is built to abstract essential
aspects of application domain which contains
objects found in application, their properties
and behavior.
 Then design model is made to describe and
optimize the implementation.
 Finally the design model is implemented in a
programming language, database or
hardware.
 Graphical notation is used for expressing
object-oriented models.
Ajay Tripathi 3
What is object-oriented?
 Software is organized as a collection of
discrete objects that incorporate both data
structure and behavior.
 In general it includes- identity, classification,
polymorphism and inheritance.
 Object Oriented Programming Language

= Object Based Programming Language(e.g.


'83 Ada and Modula-2)
+ Inheritance + Dynamic Binding

Ajay Tripathi 4
Identity
 Identity means that data is organized into
discrete, distinguishable entities called objects.
 Objects can be concrete or conceptual.
 In real world an object simply exist but within a
programming language each object has a
unique handle by which it can be uniquely
referenced.
 The handle can be implemented by address,
array index or unique value of an attribute.

Ajay Tripathi 5
Classification

 Itmeans that objects with same data


structure (attribute) and behavior
(operations) are grouped into a class.
 A class is an abstraction that describes
important properties and ignores the
rest.

Ajay Tripathi 6
Polymorphism

 Itmeans that the same operation (i.e.


action or transformation that the object
performs) may behave differently on
different classes.
 Specific implementation of an operation
by a certain class is called a method.

Ajay Tripathi 7
Inheritance

 Itis the sharing of attributes and


operations among classes based on a
hierarchical relationship.
 Subclasses can be formed from broadly
defined class.
 Each subclass incorporates or inherits all
the properties of its super class and
adds its own unique properties.

Ajay Tripathi 8
Object-oriented development?
 The theme is the identification and
organization of application concepts rather
than final representation in a prog. Language.
 OOD approach encourages software
developers to work and think in terms of the
application domain through most of the
software engineering life cycle.
 It is a conceptual process independent of a
programming language until the final stage.

Ajay Tripathi 9
Object-oriented methodology

 Stages-
 Analysis
 System design
 Object design
 implementation

Ajay Tripathi 10
3 models

 Object model
 Dynamic model
 Functional model

Ajay Tripathi 11
Object model

 Describes basic structure of objects and


their relationship
 Contains object diagram
 Object diagram is a graph whose nodes
are object classes (Classes) and whose
arcs are relationships among classes.

Ajay Tripathi 12
Dynamic model

 Describes the aspects of a system that


change over time.
 It specifies and implement control
aspects of a system.
 Contains state diagram.
 State diagram is a graph whose nodes
are states and whose arcs are data-
flows.

Ajay Tripathi 13
Functional Model

 Describes data value transformation


within a system.
 Contains data flow diagram.
 Data Flow Diagram is a graph whose
nodes are processes and whose arcs
are data flows.

Ajay Tripathi 14
Object-Oriented concepts

 Abstraction
 Encapsulation
 Combining data and behavior
 Sharing
 Object structure, not Procedure
Structure
 Synergy

Ajay Tripathi 15
Abstraction
 It consists of focusing on essential aspects of an entity and
ignoring accidental properties.
 The goal is to isolate those aspects that are important for some
purpose and suppress those aspects that are unimportant.
 Abstraction must always for some purpose because the purpose
determines what is and what is not important.
 Many different abstractions of same thing are possible,
depending on the purpose for which they are made.
 In building models, one must not search for absolute truth but for
adequacy for some purpose.
 A good model captures the crucial aspects of a problem and
omits the others.
 Focus on what an object is and does, not how to implement.

Ajay Tripathi 16
Ajay Tripathi 17
Encapsulation
 Information hiding
 Separating external aspects of an object
which are accessible to other objects,
from the internal implementation details
of the object, which are hidden from
other objects.
 The implementation of an object can be
changed without affecting the
applications that use it.

Ajay Tripathi 18
Ajay Tripathi 19
Synergy

 Identity,Classification, polymorphism
and inheritance can be used in isolation
but together they complement each
other synergistically.

Ajay Tripathi 20
Advantages of OOD……………
 Used in developing Compilers, Graphics, UI,
databases, Object oriented languages, CAD
systems, simulations, etc.
 Used to document existing programs that are
ill-structured and difficult to understand.
 Not reduces development time; it may take
more time than conventional development
because it is intended to promote future reuse
and reduce downstream errors and
maintenance.

Ajay Tripathi 21
Modeling
A model is an abstraction of something
for the purpose of understanding it
before building it.
 The word model has 2 dimensions- a
view of a system ( object, dynamic or
functional) and a stage of development
( analysis, design or implementation)

Ajay Tripathi 22
 Purpose –
 Testing a physical entity before building
it
 Communication with customers
 Visualization
 Reduction of complexity

Ajay Tripathi 23
Object Modeling

 Captures static structure of a system-


 Objects in the system
 Attributes
 operations

Ajay Tripathi 24
Objects

 Define objects as a concept, abstraction


or thing with purposeful meaning.
 Two purpose of objects-
 Promote understanding of the real world
 Provide a practical basis for computer
implementation.
 All objects have identity and are
distinguishable.
Ajay Tripathi 25
Ajay Tripathi 26
Classes

 An object class describes a group of


objects with similar properties
(attributes), common behavior
(operations), common relationships to
other objects and common semantics.

Ajay Tripathi 27
Object diagram

 Itprovides a formal graphic notation for


modeling objects, classes and their
relationships to one another.
 Types-
 Class diagram
 Instance diagram

Ajay Tripathi 28
Class diagram

A class diagram is a schema, pattern or


templates for describing many possible
instances of data.
 Describes classes.

Ajay Tripathi 29
Instance diagram

 Describes how a particular set of objects


relate to each other.
 Describes objects

Ajay Tripathi 30
Person (Person) (Person) (Person)
Ram Jai
Class Diagram

Instance Diagram

Ajay Tripathi 31
Attribute

 An attribute is a data value held by the


objects in a class.
 Each attribute name is unique within a
class.
 An attribute should be a pure data value,
not an object.

Ajay Tripathi 32
Object Modeling Notations
Person (Person) (Person)
Ram Jai
name: string 24 34
age: integer

Class with Attributes Objects with Values

Ajay Tripathi 33
Operations and Methods
 An operation is a function or transformation that
may be applied to or by objects in a class.
 All objects in a class share the same operations.
 The same operation may apply to many
different classes.
 Such an operation is polymorphic i.e. the same
operation takes on different forms in different
classes.
 A method is the implementation of an operation
for a class.

Ajay Tripathi 34
Person File
name name
age size
change-job print
change-add

Operations

Ajay Tripathi 35
Links and Association
 Links and associations are the means for establishing
relationships among objects and classes.
 A link is a physical or conceptual connection between objects.
 A link is an instance of an association.
 An association describes a group of links with common structure
and semantics.
 All the links in an association connect objects from the same
classes.
 Association and links often appear as verbs in a problem
statement.
 An association describes a set of potential links in the same way
that a class describes a set of potential objects.

Ajay Tripathi 36
 Associations are bidirectional.
 In real, both directions of traversal are equally
meaningful and refer to same association.
 Associations are often implemented in
programming languages as pointers from one
object to another.
 A pointer is an attribute in one object that
contains an explicit reference to another
object.

Ajay Tripathi 37
A link shows a relationship between two
or more objects.
 All connections among classes should
be modeled as association.
 One-to-one association
 Many-to-many association
 Ternary association

Ajay Tripathi 38
Country Has-capital City
name name Class Diagram

(Country) Has-capital (City) Instance Diagram


India Delhi

One-to-One Association and links

Ajay Tripathi 39
Line intersects Point Class Diagram
name 2+ name

(Line)
L1
(Point)
(Line) P1
L2 Instance Diagram
(Line)
L3 (Point)
P2
(Line)
L4
(Line)
L5

Many-to-many Association and links

Ajay Tripathi 40
Project Language

Person

(Project) (Language)
MIS .Net

(Person)
Jai

(Project) (Language)
CAD C

Ternary Association and Links

Ajay Tripathi 41
Multiplicity

 Itspecifies how many instances of one


class may relate to a single instance of an
associated class.
 In OMT solid ball -> zero or more
 Hollow ball -> optional (zero or one)
 Multiplicity depends upon assumptions
and how you define the boundaries of a
problem.

Ajay Tripathi 42
Link attributes

 An link attribute is a property of the links


in an association.

Ajay Tripathi 43
Accessible By
File User

Access permission

/etc/temp read Ram


/etc/temp read-write Mohan
/usr/lgn read-write Shyam

Link Attributes for a many-to-many association

Ajay Tripathi 44
boss Person Works-for Company
name Name
ssn address
address
worker Salary
Job-title
manages

Performance rating

Link attributes for one-to-many associations

Ajay Tripathi 45
Modeling an Association as a Class

 Each link becomes one instance of the


class.

Ajay Tripathi 46
Authorized on
User Workstation

Authorization
Priority
Privileges
Start session

Home directory

Directory

Modeling an association as a class

Ajay Tripathi 47
Role Names
A role is one end of an association.
 A binary association has 2 roles, each of
which may have a role name.
 A role name is a name that uniquely identifies
one end of an association.
 Roles often appear as nouns in problem
descriptions.
 Use of role name is optional.
 Role names are necessary for associations
between two objects of the same class.

Ajay Tripathi 48
employee employer
person Works-for company

Employee Employer
Ram TCS
Mohan Wipro

Role names for an association

Ajay Tripathi 49
ordering

 Iforder of objects required


 Indicated by writing “{ordered}” next to
multiplicity dot for the role.

{ordered}
window screen
Visible-on

Ordered sets in an association

Ajay Tripathi 50
Qualification
 It relates two classes and a qualifier.
 Qualifier is a special attribute that reduces the
effective multiplicity of an association.
 One-to-many or many-to-many may be
qualified that can be reduced to one-to-one.
( but not always)
 It distinguishes among the set of objects at the
many end of an association.
 A qualified association can also be considered
a form of ternary association.

Ajay Tripathi 51
Directory File name File

A directory plus a file name yields a file

A qualified association

Ajay Tripathi 52
organization
Company office Person
officer

Ajay Tripathi 53
Aggregation

 It is a part-of relationship
 It has transitivity property i.e. A is part of
B and B is part of C then A is part of C.
 It is anti symmetric i.e. if A is a part of B
then B is not a part of A.
 Aggregation is a special form of
association.

Ajay Tripathi 54
document paragraph sentence

Aggregation

Ajay Tripathi 55
Aggregation

 Itis a form of association in which an


aggregate object is made of
components.
 Components are part of aggregate.
 Aggregate is inherently transitive i.e. an
aggregate has parts which may in turn
have parts.

Ajay Tripathi 56
Aggregation vs. Association

 Aggregation is a special form of


association.
 If two objects are tightly bound by a part-
whole relationship, it is an aggregation.
 If two objects are usually considered as
independent even though they may often
be linked, it is an association.

Ajay Tripathi 57
A company is an aggregation of its
divisions which are in turn aggregations
of their departments; a company is
indirectly an aggregation of departments.
 A company is not an aggregation of its
employees since the company and
person are independent objects of equal
structure and status.

Ajay Tripathi 58
company division department

Work for

person

Aggregation and Association

Ajay Tripathi 59
Generalization

 It is a relationship between base class


and sub class.
 It is “is-a” relationship because each
instance of a sub class is an instance of
super class as well.

Ajay Tripathi 60
Figure
Color
Pos
Thickness
Move
Select
Display
rotate

0D 1D 2D

Point Line Arc Spline Polygon circle

Inheritance for graphic figure

Ajay Tripathi 61
Aggregation vs. Generalization
 Aggregation relates instances.
 Two distinct objects are involved; one of them
is a part of the other.
 Generalization relates classes.
 Aggregation is often called “a part of”
relationship; generalization is often called “a
kind-of” or “is-a” relationship.
 Aggregation is sometimes called an “and
relationship” and generalization refers to “or
relationship”

Ajay Tripathi 62
lamp

base cover switch wiring

fluorescent incandescent

part1 part2 part3 part4

Aggregation and generalization

Ajay Tripathi 63
 Aggregation can be fixed, variable or
recursive.
 A fixed aggregate has a fixed structure;
the number and types of sub parts are
predefined e.g. lamp.
 A variable aggregation has a finite
number of levels but number of parts
may vary e.g. company.

Ajay Tripathi 64
A recursive aggregation contains directly
or indirectly an instance of the same kind
of aggregate; the number of potential
levels is unlimited e.g. computer
program.

Ajay Tripathi 65
program

block Recursive aggregate

Compound Simple
statement statement

 Simple Statement:
x=i;
 Block(combination of more than one simple statements):
++i;
x=i;
 Compound Statement(single statement combines work of multiple
statement optionally blocks):
x=++i;

Ajay Tripathi 66
Propagation of operations

 Propagation (triggering) is automatic


application of an operation to a network
of objects when the operation is applied
to some starting object.
 E.g. moving an aggregation moves its
parts; the move operation propagates to
the parts.

Ajay Tripathi 67
A person owns multiple documents.
Each document is composed of
paragraphs that are in turn composed of
characters. The copy operation
propagates from documents to
paragraphs to characters. Copying a
paragraph copies all the characters in it.
 The operation does not propagate in
reverse direction.

Ajay Tripathi 68
 Propagation can be possible for save,
destroy, print and lock.

Person Document copy Paragraph copy Character


owns
copy copy copy

Propagation of operations

Ajay Tripathi 69
Abstract classes
 An abstract class is a class that has no
direct instances but whose descendent
classes have direct instances.
 A concrete class is a class that is
instantiable i.e. it can have direct
instances.
 A concrete class may have abstract
subclasses but they must have concrete
descendents.

Ajay Tripathi 70
 onlyconcrete classes may be leaf
classes in the inheritance tree.

Ajay Tripathi 71
Abstract & concrete class

subclass subclass
1+ class
1+
Has subclasses
Has subclasses

instance concrete abstract superclass


Direct
instances

superclass Non leaf class Leaf class

Ajay Tripathi 72
 Abstract classes organize features common to
several classes
 Abstract classes are frequently used to define
methods to be inherited by subclasses.
 An abstract class can define methods to be
inherited by subclasses.
 An abstract operation defines the form of an
operation for which each concrete subclass
must provide its own implementation.

Ajay Tripathi 73
 Abstract class & abstract operation

Employee
Earning
Pay {abstract}

SLRD Employee HNRY Employee


HRLY Employee
Earning Earning
Earning
pay pay
pay

Ajay Tripathi 74
Overriding operations

 Reasons to use overriding-


 For extension
 For restriction
 For optimization
 For convenience

Ajay Tripathi 75
 Extension
The new operation is same as inherited except it adds some
behavior usually affecting new attributes of the subclass.
 Restriction
The new operation restricts the inherited.
 Optimization
The new method must have the same external protocol
(prototype) and results as the old one but its internal
representation and algorithm may differ completely.
 Convenience
The new class is made a subclass of the existing class and
overrides the methods that are inconvenient.

Ajay Tripathi 76
Multiple inheritance
 Itpermits to have more than one super class
and to inherit features from all parents.
 A class with more than one super class is
called a join class.
 A feature from the ancestor class found along
more than one path is inherited only once.
 Conflicts among parallel definitions create
ambiguities that must be resolved in
implementation.

Ajay Tripathi 77
vehicle

Landvehicle Watervehicle Overlapping Classes

car amphibiousvehicle boat


[ join class ]

Multiple inheritance from overlapping classes

Ajay Tripathi 78
A hollow triangle indicates disjoint
subclasses while a solid triangle
indicates overlapping subclasses.

Ajay Tripathi 79
Metadata

 Metadata is data that describes other


data.
 The definition of a class is metadata.
 Models are metadata since they
describe the things being modeled.
 RDBMS uses metadata.

Ajay Tripathi 80
A class describes a set of instances of a
given form.
 Instantiation relates a class to its
instances.
 The dotted arrows connect the instances
to the class.
 It is also useful for documenting
examples and test cases.

Ajay Tripathi 81
(Person)
Name=ABC
Age=40
Weight=40
Person
Name
Age
weight
(Person)
Name=XYZ
Age=29
Weight=70

Notation for instantiation

Ajay Tripathi 82
Class descriptors
 Classes are meta objects and not real world objects.
 Class descriptors have features and they have their
own classes which are called meta classes.
 A class attribute describes a value common to an
entire class of objects rather than data particular to
each instance.
 Class attributes are useful for storing default
information for creating new objects or summary
information about instances of the class.
 A class operation is an operation on the class itself.
 The most common is to create new instances.
 Operations on class structure are class operations.

Ajay Tripathi 83
Class descriptors

Window
Size:rectangle
Visibility:boolean
Default_size:rectangle

Display
New_window
Highest_priority_window

Ajay Tripathi 84
Candidate keys
A candidate key is a minimal set of
attributes that uniquely identifies an
object or link.
 A class may have one or more candidate
keys each of which may have different
combinations and numbers of attributes.
 Each candidate key constrains the
instances in a class.
 Notation is {}

Ajay Tripathi 85
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.

Ajay Tripathi 86
Window
boss
Employee Length
width
salary

{ 0.8 <= length / width < = 1.5 }


{ salary < = boss.salary }

Constraints on objects

Ajay Tripathi 87
General constraints

 Itmust be expressed with natural


languages or equations.
 Draw a dotted line between classes
involved in the constraint and specify the
details with comments in braces.
Member_of
Person {subset } Committee
Chair_of

Ajay Tripathi 88
Derived objects, links and attributes

 The notation for a derived entity is a


slash or diagonal line on the corner of a
class box, on an association line or in
front of an attribute.
 Show the constraint that determines the
derived value. (optional)
Person
Current date
Birthdate
/age
{ age = currentdate – birthdate }

Ajay Tripathi 89
Homomorphism
 A mapping between mathematical structures of the same type
(eg groups or rings) that preserves the structure.
 similarity of form
 Homos = same & morphe = structure
 E.g. in a parts catalog for a automobile, a catalog item may
contain other catalog items.
 Each catalog item is specified by a model number that
corresponds to number of individual manufactured items, each
with its own serial number.
 The individual items are also composed of sub items.
 The structure of each item’s parts has the same form as the
catalog item’s parts.
 Thus the “contains” aggregation on catalog items is a
homomorphism of the “contains” aggregation on physical items.

Ajay Tripathi 90
Homomorphism

 It maps between two associations.


contains
Maps contains

catalogItem Item
Model# Sl#
Describes

{ item 1 contains item 2 => item1.model contains item2.model }

Homomorphism for a parts catalog

Ajay Tripathi 91
 In general, a homomorphism involves 4
relationships among 4 classes.
 The homomorphism maps links of one general
association {u} into links of another general
association {t} as a many-to-one mapping.
 Two instantiation relationships map elements
of one class into another:
 r is a many-to-one mapping from class B to A and
 s is a many-to-one mapping from class D to C.

Ajay Tripathi 92
r
A B

t u
{u ( b, d)=>t ( b.r, d.s ) }

C D
s

General Homomorphism

Ajay Tripathi 93
 In general where t is on a single class
and u is on a single class then A=C, B=D
and r=s.
 Homomorphism is a special type of
relationship between relationships.

Ajay Tripathi 94
Dynamic Modeling
 First examine the system at a single moment of time.
 Then examine changes to objects and their
relationships over time.
 Those aspects of a system that are concerned with
time and changes are dynamic model, in contrast with
static or object model.
 Control is the aspect of a system that describes the
sequences of operations that occur in response to
external stimuli without considering what the operation
do, what they operate on, and how they are
implemented.

Ajay Tripathi 95
concepts

 Events – represent external stimuli


 States – values of objects
 State diagram

Ajay Tripathi 96
Events
 Itis something that happens at a point in time
 One event may logically precede or follow
another or the two events may be unrelated.
 The two events are casually related.
 The two events are casually unrelated are said
to be concurrent i.e. they have no effect on
each other.
 In modeling a system we do not establish an
ordering between concurrent events because
they can occur at any order.

Ajay Tripathi 97
 An event is a one-way transmission of
information from one object to another.
 In real world, all objects exist
concurrently.
 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.

Ajay Tripathi 98
 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.
 This structure is hierarchical as class structure.
 E.g. flight 123 departs from Delhi and flight 321
departs from Rome are instances of event class
airplane flight departs having attributes airline flight no,
city.
 The time at which an event occurs is an implicit
attribute of all events.

Ajay Tripathi 99
 An event conveys information from one
object to another.
 Some classes of events may be simply
signals that something has occurred
while other convey data values i.e.
attributes.
 Showing attributes is optional.

Ajay Tripathi 100


Airplane flight departs (airline, flight#, city)
Mouse button pushed (button, location)
Input string entered (text)
Phone receiver lifted
Digit dialed (digit)

Event classes and attributes

Ajay Tripathi 101


Scenarios and event traces
A scenario is a sequence of events that occurs
during one particular execution of a system.
 The scope of a scenario can vary; it may
include all events in the system or it may
include only those events generated by certain
objects in the system.
 It can be the historical record of executing a
system or a thought experiment of executing a
proposed system.

Ajay Tripathi 102


Caller lifts receiver
Dial tone begins
Caller dials digit (5)
Dial tone ends
Caller dials digit (5)
Caller dials digit (4)
Caller dials digit (3)
Caller dials digit (2)
Caller dials digit (1)
Called phone begins ringing
Ringing tone appears in calling phone
Called party answers
Called phone stops ringing
Ringing tone disappears in calling phone
Phones are connected
Called party hangs up
Phones are disconnected
Caller hangs up

Scenario for phone call

Ajay Tripathi 103


 The next step after writing scenario is to identify the
sender and receiver objects of each event.
 The sequence of events and the objects exchanging
events are shown in event trace diagram.
 This diagram shows each object as a vertical line and
each event as a horizontal arrow from the sender to
receiver objects.
 Time increases from top to bottom.
 Sequences of events are shown not their exact timing.

Ajay Tripathi 104


Event trace for phone call
Caller phone line callee
Caller lifts receiver
Dial tone begins
Caller dials digit (5)
Dial tone ends
Caller dials digit (5)
Caller dials digit (4)
Caller dials digit (3)
Caller dials digit (2)
Caller dials digit (1)
Called phone begins ringing phone rings
answer phone
ringing stops ringing stops
phones are connected phones connected
Callee hangs up
disconnected disconnected
Caller hangs up

Ajay Tripathi 105


States
 It is an abstraction of the attribute values and links of
an object.
 Set of values are grouped together into a state
according to properties that affect the gross behavior
of the object e.g. the state of bank is either solvent or
insolvent whether its assets are greater than liabilities.
 A state specifies the response of the object to input
events.
 Response is same for all values within the same state
and may be different for values in different states.
 Response of an object to an event may include an
action or change of states by the object.

Ajay Tripathi 106


A state has duration
 An event separates two states and a
state separates two events.
 In defining states we ignore those
attributes that do not affect the behavior
of the objects.

Ajay Tripathi 107


State diagram

 Itrelates 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.
 State diagram is a graph whose nodes
are states and whose directed arcs are
transitions labeled by event names.

Ajay Tripathi 108


On-hook
On-hook
idle
Off-hook
Dial tone out Timed- out
Digit(n) e_
m
Ti
dialing Recorded message
Invalid no
Num busy valid
Busy tone
connecting
Fast busy tone Trunk busy routed
ringing
Called phone answers
connected
Called phone hangs up
disconnected
State diagram for phone line
Ajay Tripathi 109
A state diagram describes the behavior of a
single class.
 Since all instances of a class have same
behavior they all share the same state
diagram as they all share the same class
features.
 But as each object has its own attribute values
so each object has its own state.
 Each object is independent of the other
objects and proceeds as its own pace.

Ajay Tripathi 110


Conditions

A condition is a Boolean function of


object values.
 When Ram goes out in morning( event),
if the temperature is below
freezing( condition), then he puts on his
gloves (next state).
 Notation is [condition]

Ajay Tripathi 111


Operations
 An activity is an operation that takes time to complete.
 An activity is associated with a state.
 Notation “do:A” within a state box indicates that activity A starts
on entry to the state and stops on exit.
 An action is an instantaneous operation.
 An operation is associated with an event.
 An action represents an operation whose duration is insignificant
compared to the state diagram e.g. disconnect phone line might
be an action in response to an on_hook event for phone line.
 Actions can also represent internal control operations such as
setting attributes or generating other events.
 The notation for an action is (“/”) and the name of action,
following the name of the event that causes it.

Ajay Tripathi 112


Action for pop-up menu

Right button down/display menu


idle Menu visible
Right button up/erase menu

Cursor moved/highlight menu item

Ajay Tripathi 113


State1 Event1 (attributes)[condition1]/action1 State2
do:activity1 do:activity1

Ajay Tripathi 114


Sate generalization

A nested state diagram is a form of


generalization on states.
 Generalization is “or-relation”.
 States may have sub states that inherit
the transitions of their super states just
as classes have subclasses that inherit
the attributes and operations of their
super classes.

Ajay Tripathi 115


Aggregation and its concurrent state
diagram
Car

Ignition Transmission Brake Accelerator

Ignition
Turn key to
start[Transmission
in Neutral] Released Key
off starting on

Turn key off

Ajay Tripathi 116


Sate of car transmission with
generalization
Transmission Push R
Neutral Reverse
Push N

Push N Push F

Forward

Stop upshift upshift


First Second Third
downshift downshift

Ajay Tripathi 117


Accelerator Brake
press press
Off On Off On
Release Release

Ajay Tripathi 118


Functional Modeling

Ajay Tripathi 119


 It specifies the results of a computation
without specifying how or when they are
computed.
 It specifies the meaning of operations in
object model and actions in dynamic
model as well as constraints in object
model.
 Functional model exists where
transformation is a key factor.

Ajay Tripathi 120


DFD
 It shows the functional relationships of the
values computed by a system, including input
values, output values and internal data stores.
 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.
 It does not show control information like time,
etc.

Ajay Tripathi 121


Elements of DFD

 Processes -> Transform data ProcessName


 Data flow -> move data
 Actor ->objects that produce and consume

data. actorName
 Data store -> objects that store data
passively.
Data_storeName
Information/operation Information received from
that modify stored data stored data

Ajay Tripathi 122


Data Stores
 It is a passive object within the graph that stores
data.
 It does not generate any operation but merely
responds to requests to store and access data.
 It 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 data store.
 In general data store is implemented as a file.

Ajay Tripathi 123


Data store for temprature readings..

Max temp
Readings
Min temp

Ajay Tripathi 124


Data store for bank account

Account

balance
withdrawl
Customer -

Double headed arrow indicates that balance is both an i/p and o/p of
Subtract operation.

Ajay Tripathi 125


Data store for price list for items

Item_name
cost Price list

Item name Find cost cost

Ajay Tripathi 126


A data flow that generates an object
used as the target of another operation
is indicated by a hollow triangle at the
end of data flow.

accounts select Account


Bank
balance
name
request
update ( i/p and o/p)
Customer

Selection with an object as result

Ajay Tripathi 127


 Creation of new object

account
Create account Bank

Name, deposit
Customer Account
account

Ajay Tripathi 128


Nested DFD

 The nesting of a diagram is also called


leveling.
 A process can be expanded into another
DFD.

Ajay Tripathi 129


Control Flows

A data flow diagram shows all possible


computation paths for values.
 Decisions and sequencing are control
issues that are part of dynamic model.
 It is sometime useful to include it in
functional model so that they can not be
forgotten. This is done by including
control flows in DFD.

Ajay Tripathi 130


A control flow is a Boolean value that
affects whether a process is evaluated or
not.
 It is shown by a dotted line from a
process producing a Boolean value to
the process being controlled.

Ajay Tripathi 131


Coded password
Account

verify

password balance
Password
OK

amount
customer update
cash

Ajay Tripathi 132


Specifying Operations

 Each operation may be specified as-


 Mathematical functions
 Table of input and output values.

 Equations

 Pre and post conditions

 Decisions tables

 Pseudo code, etc

Ajay Tripathi 133


 Specification of an operation includes a
signature and a transformation.
 Signature defines the interface to the
operation i.e. arguments, value returns.
 The transformation defines the effect of
an operation i.e. the output values and
the side effects of the operation on its
operand objects.

Ajay Tripathi 134


 Operations can be divided into three
parts-
 Queries

 Actions

 Activities

Ajay Tripathi 135


Query
A query is an operation that has no side
effects on externally visible state of any object.
 An action is a transformation that has side
effects on the target object or other objects in
the system reachable from the target object.
 Actions can be defined by mathematical
equations, decision trees, decision tables, etc.

Ajay Tripathi 136


Activity

 It is an operation to or by an object that


has duration in time.
 It has inherently side effects because of
its extension in time.
 Activity only make sense for actors.

Ajay Tripathi 137


constraints
 It shows the relationship between two objects at the same
time (frequency and wavelength )Or between different
values of the same object at different times (no of
outstanding shares of mutual fund).
 It can appear in each model.
 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.
 A constraint between values of an object over time is
called as invariant i.e. it specifies that some functions of
values remain constant over time.

Ajay Tripathi 138


FM Vs OM & DM
 FM shows what has to be done by a
system.
 The object model shows the “doers”- the
object.
 DM shows the sequences in which the
operations are performed.
 The three models come together in the
implementation of methods.
 FM is a guide to the methods.

Ajay Tripathi 139


A process is usually implemented as a
method.
 Actors and data stores are objects in the
object model.
 Data flows are values in object model.

Ajay Tripathi 140


 Relative to functional model the object
model shows the structure of the actors,
data store and flows.
 Relative to functional model the dynamic
model shows the sequence in which
processes are performed.

Ajay Tripathi 141


 Relative to object model the functional
model shows the operations on classes
and the arguments of each operations.
 Relative to object model the dynamic
model shows the states of each object
and the operations that are performed as
it receives events and changes state.

Ajay Tripathi 142


 Relative to dynamic model the functional
model shows the definition of actions
and activities that are undefined with
dynamic model.
 Relative to dynamic model the object
model shows what changes state and
undergoes operations.

Ajay Tripathi 143


Structured analysis/structured
design (SA/SD)
 During analysis DFD, data dictionary,
state transition diagram and ER diagram
are used to logically describe a system.
 In the design phase, details are added to
the analysis models and the DFDs are
converted into structure chart describing
program language code.

Ajay Tripathi 144


Data dictionary

A paragraph is written that precisely


describe each class.
 Describe the scope of class, any
assumptions, restrictions.
 It also describes associations, attributes
and operations.

Ajay Tripathi 145


SA/SD and OMT
 Both support object, dynamic and functional
model for a system.
 OMT designs are dominated by object
modeling while SA/SD stresses on functional
decomposition.
 SA/SD organizes a system around procedures
while OMT organizes a system around real
world objects or conceptual objects that exist
in user’s view of the world.

Ajay Tripathi 146


 SA/SD is useful for problems where functions
are more important and complex than data.
 SA/SD design has a clearly defined system
boundary across which the software
procedures must communicate with the real
world. so it can be difficult to extend a SA/SD
design to a new boundary.
 It is much easier to extend object oriented
design; one merely design adds objects and
relationships.

Ajay Tripathi 147


 In SA/SD the decomposition of a process into
sub process is somewhat arbitrary.
 Different people will produce different
decomposition.
 In OMT the decomposition is based on objects
in problem domain, so developers of different
programs in same domain tend to discover
similar objects. This increases reusability of
components from one project to the next.

Ajay Tripathi 148


 An OMT approach better integrates
database with programming code.
 Object oriented database may improve
the situation.
 In contrast, SA/SD is inherently awkward
at dealing with databases. It is difficult to
merge programming code organized
about functions with database organized
with data.

Ajay Tripathi 149


Reasons to use SA/SD

 Programmers have tended to think in


terms of functions so data flow based
method have been easier to learn.
 Another reason is historical; SA/SD was
one of the first well-thought-out formal
approach to software and system
development.

Ajay Tripathi 150


Jackson Structured Development
(JSD )
 Developed by Michael Jackson
 Popular in Europe.
 It does not distinguish between analysis and
design rather lumps both phases together as
specification.
 It first determine “what” and then “how”
 It is useful for application where timing is
important.
 It is less graphical oriented than SA/SD and
OMT.

Ajay Tripathi 151


 JSD model describes the real world in
terms of entities, action and ordering of
actions.
 Entities usually appear as nouns in
requirements statements and actions
appear as verbs.
 JSD consists of six sequential steps-

Ajay Tripathi 152


 Entity action
 Entity structure
 Initial model
 Function
 System timing
 implementation

Ajay Tripathi 153


Entity action

 The software developer lists entities and


actions for part of real world.
 The purpose is to guide the choice of
entities and actions for overall system.
 The input to this step is requirement
statement
 The output is list of entities and actions.

Ajay Tripathi 154


 The entity structure step partially orders
the actions of each entity by time.
 The initial model step states how the real
world connects to the abstract model.
 The function step uses pseudo code to
state outputs of actions.
 At the end of this step the developer has
a complete specification of required
system.

Ajay Tripathi 155


 The system timing step considers how
much the model is permitted to gap the
real world.
 The implementation step focuses on the
problems of processes scheduling and
allocates processors to processes.

Ajay Tripathi 156


JSD and OMT

 JSD is more obscure than data flow and


object-oriented approaches.
 One reason for this is its reliance on
pseudo codes; graphical models are
easier to understand.
 It is also complex because it was
specifically designed to handle difficult
real time problems

Ajay Tripathi 157


JSD is useful in applications like-
 More emphasis on actions and less on
attributes.
 Where processed must synchronize with each
other
 Real time software
 Microcode. It is thorough and makes no
assumptions about the availability of an
operating system and considers synchronized
processing and timing.
 Programming parallel computers.

Ajay Tripathi 158


JSD is ill suited for applications like-

 High level analysis. It is ineffective at


abstraction and simplification.
 Databses. It is biased towards actions
and away from entities and attributes. It
is poor technique for database design.
 Conventional software running under an
operating system. Its abstraction of
hundreds or thousands of processes is
confusing and unnecessary.

Ajay Tripathi 159

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy