object oriented modeling and design
TRANSCRIPT
![Page 1: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/1.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 1
Object-oriented modeling and design
![Page 2: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/2.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 2
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.
![Page 3: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/3.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 3
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.
![Page 4: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/4.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 4
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
![Page 5: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/5.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 5
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.
![Page 6: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/6.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 6
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.
![Page 7: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/7.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 7
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.
![Page 8: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/8.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 8
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.
![Page 9: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/9.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 9
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.
![Page 10: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/10.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 10
Object-oriented methodology
Stages-AnalysisSystem designObject designimplementation
![Page 11: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/11.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 11
3 models
Object modelDynamic modelFunctional model
![Page 12: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/12.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 12
Object model
Describes basic structure of objects and their relationship
Contains object diagramObject diagram is a graph whose nodes
are object classes (Classes) and whose arcs are relationships among classes.
![Page 13: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/13.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 13
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.
![Page 14: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/14.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 14
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.
![Page 15: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/15.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 15
Object-Oriented concepts
AbstractionEncapsulationCombining data and behaviorSharingObject structure, not Procedure
StructureSynergy
![Page 16: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/16.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 16
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.
![Page 17: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/17.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 17
![Page 18: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/18.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 18
Encapsulation
Information hidingSeparating 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.
![Page 19: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/19.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 19
![Page 20: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/20.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 20
Synergy
Identity, Classification, polymorphism and inheritance can be used in isolation but together they complement each other synergistically.
![Page 21: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/21.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 21
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.
![Page 22: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/22.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 22
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)
![Page 23: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/23.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 23
Purpose –Testing a physical entity before building
itCommunication with customersVisualizationReduction of complexity
![Page 24: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/24.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 24
Object Modeling
Captures static structure of a system-Objects in the systemAttributesoperations
![Page 25: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/25.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 25
Objects
Define objects as a concept, abstraction or thing with purposeful meaning.
Two purpose of objects-Promote understanding of the real worldProvide a practical basis for computer
implementation.All objects have identity and are
distinguishable.
![Page 26: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/26.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 26
![Page 27: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/27.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 27
Classes
An object class describes a group of objects with similar properties (attributes), common behavior (operations), common relationships to other objects and common semantics.
![Page 28: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/28.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 28
Object diagram
It provides a formal graphic notation for modeling objects, classes and their relationships to one another.
Types-Class diagram Instance diagram
![Page 29: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/29.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 29
Class diagram
A class diagram is a schema, pattern or templates for describing many possible instances of data.
Describes classes.
![Page 30: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/30.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 30
Instance diagram
Describes how a particular set of objects relate to each other.
Describes objects
![Page 31: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/31.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 31
Person
Class Diagram
(Person)Ram
(Person)Jai
(Person)
Instance Diagram
![Page 32: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/32.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 32
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.
![Page 33: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/33.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 33
Object Modeling Notations
Person
name: stringage: integer
Class with Attributes
(Person)Ram
24
(Person)Jai34
Objects with Values
![Page 34: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/34.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 34
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.
![Page 35: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/35.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 35
Personnameage
change-jobchange-add
Personnameage
change-jobchange-add
Personnameage
Filenamesize
Operations
![Page 36: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/36.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 36
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.
![Page 37: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/37.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 37
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.
![Page 38: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/38.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 38
A link shows a relationship between two or more objects.
All connections among classes should be modeled as association.
One-to-one associationMany-to-many associationTernary association
![Page 39: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/39.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 39
Countryname
Cityname
Has-capital
(Country)India
(City)Delhi
Has-capital
Has-capital
Class Diagram
Instance Diagram
One-to-One Association and links
![Page 40: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/40.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 40
Linename
Pointname
intersects2+
(Line)L1
(Line)L2
(Line)L3
(Point)P1
(Line)L4
(Line)L5
(Point)P2
Many-to-many Association and links
Class Diagram
Instance Diagram
![Page 41: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/41.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 41
Project Language
Person
(Project)MIS
(Language).Net
(Project)CAD
(Language)C
(Person)Jai
Ternary Association and Links
![Page 42: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/42.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 42
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 moreHollow ball -> optional (zero or one)Multiplicity depends upon assumptions
and how you define the boundaries of a problem.
![Page 43: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/43.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 43
Link attributes
An link attribute is a property of the links in an association.
![Page 44: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/44.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 44
File UserAccessible By
Access permission
/etc/temp read Ram/etc/temp read-write Mohan/usr/lgn read-write Shyam
Link Attributes for a many-to-many association
![Page 45: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/45.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 45
Personnamessn
address
CompanyName
address
Works-for
SalaryJob-title
Performance rating
boss
manages
worker
Link attributes for one-to-many associations
![Page 46: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/46.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 46
Modeling an Association as a Class
Each link becomes one instance of the class.
![Page 47: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/47.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 47
User WorkstationAuthorized on
AuthorizationPriority
PrivilegesStart session
Directory
Home directory
Modeling an association as a class
![Page 48: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/48.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 48
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.
![Page 49: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/49.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 49
person companyemployee employer
Works-for
Employee Employer
Ram TCS
Mohan Wipro
Role names for an association
![Page 50: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/50.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 50
ordering
If order of objects requiredIndicated by writing “{ordered}” next to
multiplicity dot for the role.
window screen{ordered}
Visible-on
Ordered sets in an association
![Page 51: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/51.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 51
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.
![Page 52: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/52.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 52
Directory FileFile name
A qualified association
A directory plus a file name yields a file
![Page 53: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/53.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 53
Company office Person organization
officer
![Page 54: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/54.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 54
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.
![Page 55: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/55.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 55
document paragraph sentence
Aggregation
![Page 56: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/56.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 56
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.
![Page 57: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/57.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 57
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.
![Page 58: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/58.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 58
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.
![Page 59: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/59.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 59
company division department
person
Work for
Aggregation and Association
![Page 60: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/60.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 60
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.
![Page 61: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/61.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 61
FigureColorPos
ThicknessMoveSelectDisplayrotate
0 D 1 D 2 D
Point Line Arc Spline circlePolygon
Inheritance for graphic figure
![Page 62: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/62.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 62
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”
![Page 63: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/63.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 63
lamp
base cover switch wiring
incandescentfluorescent
part4part3part2part1
Aggregation and generalization
![Page 64: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/64.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 64
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.
![Page 65: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/65.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 65
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.
![Page 66: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/66.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 66
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;
program
block
Compound statement
Simple statement
Recursive aggregate
![Page 67: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/67.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 67
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.
![Page 68: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/68.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 68
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.
![Page 69: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/69.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 69
Propagation can be possible for save, destroy, print and lock.
Person Document
copy
Paragraph
copy
Character
copyowns
copy copy
Propagation of operations
![Page 70: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/70.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 70
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.
![Page 71: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/71.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 71
only concrete classes may be leaf classes in the inheritance tree.
![Page 72: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/72.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 72
Abstract & concrete class
class
concrete abstractinstance
Leaf classNon leaf class
subclass1+ 1+
subclass
Has subclasses
Has subclasses
superclass
superclass
Directinstances
![Page 73: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/73.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 73
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.
![Page 74: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/74.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 74
Abstract class & abstract operation
EmployeeEarning
Pay {abstract}
SLRD EmployeeEarning
pay
HNRY EmployeeEarning
pay
HRLY EmployeeEarning
pay
![Page 75: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/75.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 75
Overriding operations
Reasons to use overriding-For extensionFor restrictionFor optimizationFor convenience
![Page 76: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/76.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 76
ExtensionThe new operation is same as inherited except it adds some behavior usually affecting new attributes of the subclass.
RestrictionThe new operation restricts the inherited.
OptimizationThe new method must have the same external protocol (prototype) and results as the old one but its internal representation and algorithm may differ completely.
ConvenienceThe new class is made a subclass of the existing class and overrides the methods that are inconvenient.
![Page 77: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/77.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 77
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.
![Page 78: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/78.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 78
vehicle
WatervehicleLandvehicle
boatamphibiousvehiclecar
Multiple inheritance from overlapping classes
[ join class ]
Overlapping Classes
![Page 79: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/79.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 79
A hollow triangle indicates disjoint subclasses while a solid triangle indicates overlapping subclasses.
![Page 80: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/80.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 80
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.
![Page 81: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/81.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 81
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.
![Page 82: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/82.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 82
PersonNameAge
weight
(Person)Name=ABC
Age=40Weight=40
(Person)Name=XYZ
Age=29Weight=70
Notation for instantiation
![Page 83: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/83.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 83
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.
![Page 84: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/84.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 84
Class descriptors
WindowSize:rectangle
Visibility:booleanDefault_size:rectangle
DisplayNew_window
Highest_priority_window
![Page 85: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/85.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 85
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 {}
![Page 86: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/86.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 86
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.
![Page 87: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/87.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 87
Employee
salary
boss
{ salary < = boss.salary }
Window
Lengthwidth
{ 0.8 <= length / width < = 1.5 }
Constraints on objects
![Page 88: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/88.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 88
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.
Person Committee
Member_of
Chair_of{subset }
![Page 89: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/89.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 89
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
Current date
{ age = currentdate – birthdate }
![Page 90: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/90.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 90
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.
![Page 91: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/91.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 91
Homomorphism
It maps between two associations.
catalogItemModel#
ItemSl#
contains containsMaps
Describes
{ item 1 contains item 2 => item1.model contains item2.model }
Homomorphism for a parts catalog
![Page 92: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/92.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 92
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.
![Page 93: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/93.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 93
A
C
B
D
r
s
t u{u ( b, d)=>t ( b.r, d.s ) }
General Homomorphism
![Page 94: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/94.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 94
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.
![Page 95: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/95.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 95
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.
![Page 96: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/96.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 96
concepts
Events – represent external stimuliStates – values of objectsState diagram
![Page 97: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/97.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 97
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.
![Page 98: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/98.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 98
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.
![Page 99: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/99.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 99
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.
![Page 100: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/100.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 100
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.
![Page 101: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/101.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 101
Airplane flight departs (airline, flight#, city)Mouse button pushed (button, location)Input string entered (text)Phone receiver liftedDigit dialed (digit)
Event classes and attributes
![Page 102: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/102.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 102
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.
![Page 103: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/103.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 103
Caller lifts receiverDial tone beginsCaller dials digit (5)Dial tone endsCaller dials digit (5)Caller dials digit (4)Caller dials digit (3)Caller dials digit (2)Caller dials digit (1)Called phone begins ringingRinging tone appears in calling phoneCalled party answersCalled phone stops ringingRinging tone disappears in calling phonePhones are connectedCalled party hangs upPhones are disconnectedCaller hangs up
Scenario for phone call
![Page 104: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/104.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 104
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.
![Page 105: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/105.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 105
Event trace for phone call
Caller phone line calleeCaller lifts receiverDial tone beginsCaller dials digit (5)Dial tone endsCaller 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 stopsphones are connected phones connected
Callee hangs updisconnected disconnectedCaller hangs up
![Page 106: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/106.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 106
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.
![Page 107: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/107.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 107
A state has durationAn 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.
![Page 108: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/108.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 108
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.
![Page 109: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/109.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 109
idle
Timed- out
disconnected
Busy tone
Fast busy tone
Dial tone
dialing
connecting
ringing
connected
Recorded message
On-hook On-hook
Off-hook
Time_
out
Digit(n)
Invalid novalid
routed
Called phone answers
Called phone hangs up
Trunk busy
Num busy
State diagram for phone line
![Page 110: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/110.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 110
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.
![Page 111: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/111.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 111
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]
![Page 112: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/112.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 112
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.
![Page 113: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/113.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 113
Action for pop-up menu
idle Menu visible
Right button down/display menu
Right button up/erase menu
Cursor moved/highlight menu item
![Page 114: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/114.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 114
State1do:activity1
State2do:activity1
Event1 (attributes)[condition1]/action1
![Page 115: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/115.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 115
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.
![Page 116: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/116.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 116
Aggregation and its concurrent state diagram
Car
Ignition Transmission Brake Accelerator
Ignition
off starting on
Turn key to start[Transmission in Neutral] Released Key
Turn key off
![Page 117: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/117.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 117
Sate of car transmission with generalization
Transmission
Neutral Reverse
Push R
Push N
Forward
First Second Third upshift upshift
downshift downshift
Stop
Push N Push F
![Page 118: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/118.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 118
Accelerator
Off Onpress
Release
Accelerator
Off
Brake
Off On press
Release
![Page 119: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/119.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 119
Functional Modeling
![Page 120: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/120.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 120
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.
![Page 121: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/121.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 121
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.
![Page 122: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/122.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 122
Elements of DFD
Processes -> Transform dataData flow -> move dataActor ->objects that produce and consume data.Data store -> objects that store data
passively.
ProcessName
actorName
Data_storeNameInformation/operation that modify stored data
Information received from stored data
![Page 123: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/123.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 123
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.
![Page 124: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/124.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 124
Data store for temprature readings..
ReadingsMax temp
Min temp
![Page 125: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/125.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 125
Data store for bank account
Customer withdrawl -
Account
balance
Double headed arrow indicates that balance is both an i/p and o/p of Subtract operation.
![Page 126: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/126.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 126
Data store for price list for items
Price list Item_name
cost
Find costItem name cost
![Page 127: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/127.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 127
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.
Bank Account selectaccounts
Customer
name
updaterequest
balance
( i/p and o/p)
Selection with an object as result
![Page 128: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/128.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 128
Creation of new object
Create account Bank account
AccountCustomer Name, deposit
account
![Page 129: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/129.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 129
Nested DFD
The nesting of a diagram is also called leveling.
A process can be expanded into another DFD.
![Page 130: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/130.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 130
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.
![Page 131: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/131.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 131
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.
![Page 132: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/132.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 132
customer update
verify
Account
password
amount
cash
Coded password
PasswordOK
balance
![Page 133: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/133.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 133
Specifying Operations
Each operation may be specified as-Mathematical functionsTable of input and output values.EquationsPre and post conditionsDecisions tablesPseudo code, etc
![Page 134: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/134.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 134
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.
![Page 135: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/135.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 135
Operations can be divided into three parts-QueriesActionsActivities
![Page 136: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/136.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 136
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.
![Page 137: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/137.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 137
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.
![Page 138: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/138.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 138
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.
![Page 139: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/139.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 139
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.
![Page 140: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/140.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 140
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.
![Page 141: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/141.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 141
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.
![Page 142: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/142.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 142
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.
![Page 143: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/143.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 143
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.
![Page 144: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/144.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 144
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.
![Page 145: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/145.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 145
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.
![Page 146: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/146.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 146
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.
![Page 147: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/147.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 147
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.
![Page 148: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/148.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 148
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.
![Page 149: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/149.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 149
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.
![Page 150: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/150.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 150
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.
![Page 151: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/151.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 151
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.
![Page 152: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/152.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 152
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-
![Page 153: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/153.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 153
Entity actionEntity structureInitial modelFunction System timingimplementation
![Page 154: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/154.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 154
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.
![Page 155: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/155.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 155
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.
![Page 156: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/156.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 156
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.
![Page 157: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/157.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 157
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
![Page 158: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/158.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 158
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.
![Page 159: Object oriented modeling and design](https://reader035.vdocument.in/reader035/viewer/2022070519/58ee1be71a28ab570d8b4605/html5/thumbnails/159.jpg)
Mrs S G Bavachkar ATS SBGI MIRAJ 159
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.