0% found this document useful (0 votes)
236 views153 pages

Object-Oriented Modeling and Design

link attribute is an attribute that describes a link or association.  It is an attribute of the association, not of the classes.  Examples: date, time, cost, priority etc. Ajay Tripathi 40 1. Object-oriented modeling and design uses objects that combine data structures and behavior to model real-world concepts, with the basic construct being an object. 2. The document discusses object-oriented analysis, design, implementation using the Object Modeling Technique (OMT) methodology, which includes building analysis, design, and implementation models. 3. Key object-oriented concepts discussed include objects, classes, inheritance, polymorphism, encaps

Uploaded by

hossein_eskandar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
236 views153 pages

Object-Oriented Modeling and Design

link attribute is an attribute that describes a link or association.  It is an attribute of the association, not of the classes.  Examples: date, time, cost, priority etc. Ajay Tripathi 40 1. Object-oriented modeling and design uses objects that combine data structures and behavior to model real-world concepts, with the basic construct being an object. 2. The document discusses object-oriented analysis, design, implementation using the Object Modeling Technique (OMT) methodology, which includes building analysis, design, and implementation models. 3. Key object-oriented concepts discussed include objects, classes, inheritance, polymorphism, encaps

Uploaded by

hossein_eskandar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 153

Object-oriented modeling and design

Ajay Tripathi

Introduction

It is 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 + Inheritance + Dynamic Binding

Ajay Tripathi

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
It

means 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

Polymorphism
It

means 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

Inheritance
It

is 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 dataflows.
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 Sharing Object

data and behavior

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

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 17

Synergy
Identity,

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

Ajay Tripathi

18

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 reduced development time; it may take more time than conventional development because it is intended to promote future resue and reduce downstream errors and maintenance.
Ajay Tripathi 19

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

20

Purpose

Testing a physical entity before building it Communication with customers Visualization Reduction of complexity

Ajay Tripathi

21

Object Modeling
Captures

static structure of a system Objects in the system Attributes operations

Ajay Tripathi

22

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 23

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

24

Object diagram
It

provides a formal graphic notation for modeling objects, classes and their relationships to one another. Types Class diagram Instance diagram

Ajay Tripathi

25

Class diagram
A

class diagram is a schema, pattern or templates for describing many possible instances of data. Describes classes.

Ajay Tripathi

26

Instance diagram
Describes

how a particular set of objects relate to each other. Describes objects

Ajay Tripathi

27

Person Class Diagram

(Person) Ram

(Person) Jai

(Person)

Instance Diagram

Ajay Tripathi

28

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

29

Object Modeling Notations


Person name: string age: integer Class with Attributes (Person) Ram 24 (Person) Jai 34

Objects with Values

Ajay Tripathi

30

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 31

Person name age change-job change-add

File name size print

Operations

Ajay Tripathi

32

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

33

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 34

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

35

Country name

Has-capital

City name

Class Diagram

(Country) India

Has-capital

(City) Delhi

Instance Diagram

One-to-One Association and links

Ajay Tripathi

36

Line name (Line) L1 (Line) L2 (Line) L3 (Line) L4 (Line) L5

intersects 2+

Point name

Class Diagram

(Point) P1 Instance Diagram (Point) P2

Many-to-many Association and links

Ajay Tripathi

37

Project Person

Language

(Project) MIS

(Language) .Net

(Person) Jai

(Project) CAD

(Language) C

Ternary Association and Links


Ajay Tripathi 38

Multiplicity
It

specifies 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 39

Link attributes
An

link attribute is a property of the links in an association.

Ajay Tripathi

40

File

Accessible By

User

Access permission

/etc/temp /etc/temp /usr/lgn

read read-write read-write

Ram Mohan Shyam

Link Attributes for a many-to-many association

Ajay Tripathi

41

boss

Person name ssn address worker

Works-for

Company Name address

manages Performance rating

Salary Job-title

Link attributes for one-to-many associations


Ajay Tripathi 42

Modeling an Association as a Class


Each

link becomes one instance of the class.

Ajay Tripathi

43

User

Authorized on

Workstation

Authorization Priority Privileges Start session

Home directory Directory

Modeling an association as a class


Ajay Tripathi 44

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. A role name is a derived attribute whose value is a set of related objects. 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

45

person

employee Works-for

employer company

Employee Ram Mohan

Employer TCS Wipro

Role names for an association

Ajay Tripathi

46

ordering
If

order of objects required Indicated by writing {ordered} next to multiplicity dot for the role.
window {ordered} Visible-on screen

Ordered sets in an association


Ajay Tripathi 47

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 48

Directory

File name

File

A directory plus a file name yields a file

A qualified association

Ajay Tripathi

49

organization Company office officer Person

Ajay Tripathi

50

Aggregation
It

is a part -of relationship It is a tightly coupled form of association. 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 antisymmetric 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 51

document

paragraph

sentence

Aggregation

Ajay Tripathi

52

Aggregation
It

is 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

53

Aggregation vs association
Aggregation

is a special form of

association. If two objects are tightly bound by a partwhole 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

54

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 55

company

division

department

Work for

person

Aggregation and Association

Ajay Tripathi

56

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

57

Figure Color Pos Thickness Move Select Display rotate

0D

1D

2D

Point

Line

Arc

Spline

Polygon

circle

Inheritance for graphic figure Ajay Tripathi

58

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 59

lamp

base fluorescent incandescent

cover

switch

wiring

part1

part2

part3

part4

Aggregation and generalization

Ajay Tripathi

60

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 aggt. Has a finite number of levels but the no of parts may vary e.g. company.
Ajay Tripathi 61

recursive aggt 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

62

program block

Compound statement

Simple statement

Recursive aggregate

Ajay Tripathi

63

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 aggt moves its parts;the move operation propagates to the parts.

Ajay Tripathi

64

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 65

Propagation

can be possible for save, destroy, print and lock.


Document copy Paragraph copy owns copy copy copy Character

Person

Propagation of operations

Ajay Tripathi

66

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 67

only

concrete classes may be leaf classes in the inheritance tree.

Ajay Tripathi

68

Abstract & concrete class


subclass 1+ class subclass 1+ Has subclasses Has subclasses instance concrete abstract superclass

Direct instances

superclass Non leaf class

Leaf class

Ajay Tripathi

69

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 70

Abstract

class & abstract operation


Employee Earning Pay {abstract}

HRLY Employee Earning pay

SLRD Employee Earning pay

HNRY Employee Earning pay

Ajay Tripathi

71

Overriding operations
Reasons

to use overriding For extension For restriction For optimization For convenience

Ajay Tripathi

72

1.

2. 3.

4.

The new operation is same as inherited except it adds some behavior usually affecting new attributes of the subclass. The new operation restricts the inherited. 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. The new class is made a subclass of the existing class and overrides the methods that are inconvenient.
Ajay Tripathi 73

Multiple inheritance

It permits 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 74

vehicle

Landvehicle

Watervehicle

car

amphibiousvehicle [ join class ]

boat

Multiple inheritance from overlapping classes

Ajay Tripathi

75

hollow triangle indicates disjoint subclasses while a solid triangle indicates overlapping subclasses.

Ajay Tripathi

76

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

77

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. Explicitly showing the instantiation is useful when both classes and instances must be manipulated as objects. It is also useful for documenting examples and test cases.
Ajay Tripathi 78

Person Name Age weight

(Person) Name=ABC Age=40 Weight=40

(Person) Name=XYZ Age=29 Weight=70

Notation for instantiation

Ajay Tripathi

79

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

80

Class descriptors

Window Size:rectangle Visibility:boolean Default_size:rectangle Display New_window Highest_priority_window

Ajay Tripathi

81

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 82

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 83

boss Employee salary { salary < = boss.salary }

Window Length width { 0.8 <= length / width < = 1.5 }

Constraints on objects

Ajay Tripathi

84

General constraints
It

must 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 } Chair_of Committee

Ajay Tripathi

85

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 Birthdate /age { age = currentdate birthdate }
Ajay Tripathi 86

Current date

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 items parts has the same form as the catalog items parts. Thus the contains aggregation on catalog items is a homomorphism of the contains aggregation on physical items.

Ajay Tripathi

87

Homomorphism
It

maps between two associations.


Maps Item Sl# contains

contains catalogItem Model#

Describes

{ item 1 contains item 2 => item1.model contains item2.model } Homomorphism for a parts catalog
Ajay Tripathi 88

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

89

concepts
Events

represent external stimuli States values of objects State diagram

Ajay Tripathi

90

Events

It is 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 91

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 92

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

93

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

94

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

95

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 96

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 97

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

98

Event trace for phone call


Caller phone line 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 stops phones are connected disconnected Caller hangs up callee

phone rings answer phone ringing stops phones connected Callee hangs up disconnected

Ajay Tripathi

99

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 100

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

101

State diagram
It

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

On-hook idle Off-hook Dial tone Digit(n) dialing Busy tone Fast busy tone Num busy valid
m Ti

On-hook
t u o

Timed- out

e_

Recorded message Invalid no

Trunk busy

connecting routed ringing Called phone answers connected Called phone hangs up disconnected

State diagram for phone line


Ajay Tripathi 103

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 104

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

105

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

106

Action for pop-up menu

Right button down/display menu idle Right button up/erase menu Menu visible

Cursor moved/highlight menu item

Ajay Tripathi

107

State1 do:activity1

Event1 (attributes)[condition1]/action1

State2 do:activity1

Ajay Tripathi

108

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 109

Aggregation and its concurrent state diagram


Car Ignition Transmission Brake Accelerator

Ignition

Turn key to start[Transmission in Neutral] starting Turn key off

Released Key on

off

Ajay Tripathi

110

Sate of car transmission with generalization


Transmission Neutral Push N Push N Push F Push R Reverse

Forward Stop upshift First downshift Second downshift upshift Third

Ajay Tripathi

111

Accelerator press Off Release On Off

Brake press Release On

Ajay Tripathi

112

Functional Modeling

Ajay Tripathi

113

It

specifies the results of a computation without specifying how or when then 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 114

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 115

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.
Information/operation that modify stored data Data_storeName Information received from stored data
Ajay Tripathi 116

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 117

Data store for temprature readings..

Max temp Readings Min temp

Ajay Tripathi

118

Data store for bank account


Account balance Customer withdrawl -

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

Ajay Tripathi

119

Data store for price list for items


Item_name Price list cost

Item name Find cost cost

Ajay Tripathi

120

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 name request Customer Selection with an object as result
Ajay Tripathi 121

Bank

Account balance update ( i/p and o/p)

Creation

of new object

Create account

account

Bank

Name, deposit Customer account Account

Ajay Tripathi

122

Nested DFD
The

nesting of a diagram is also called leveling. A process can be expanded into another DFD.

Ajay Tripathi

123

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 124

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

125

Coded password verify password Password OK amount cash

Account

balance

customer

update

Ajay Tripathi

126

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 127

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 128

Operations

can be divided into three

parts Queries Actions Activities

Ajay Tripathi

129

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

130

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

131

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 132

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 133

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

134

Relative

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

Ajay Tripathi

135

Relative

to objective model the functional model shows the operations on classes and the arguments of each operations. Relative to objective 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

136

Relative

to dynamic model the functional model shows the definition of leaf 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

137

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

138

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

139

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 users view of the world.
Ajay Tripathi 140

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 141

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 142

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 143

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

144

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 145

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

146

Entity

action Entity structure Initial model Function System timing implementation

Ajay Tripathi

147

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

148

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 149

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

150

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 151

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 152

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 153

You might also like