objectmodeling-121201024636-phpapp01.ppt

DrKBManwade 8 views 43 slides Aug 30, 2024
Slide 1
Slide 1 of 43
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43

About This Presentation

erarar a rar a arar aararar


Slide Content

Amandeep S. Patti 1
Object Modeling
OOAD
MCA 405 C (N2)

Amandeep S. Patti 2
Objects and Classes

Object can be a concept, abstraction or
thing with crisp boundaries and meaning
for the problem at hand.

They promote understanding of the real
world and provide a practical basis for
computer implementations.

Amandeep S. Patti 3
Objects and Classes

A class describes a group of objects with
similar properties (attributes), common
behaviour (operations), common relations
to other objects and common semantics.

The objects in a class share a common
semantic purpose.

Amandeep S. Patti 4
Object Diagram

Object diagram provide a formal graphic
notation for modeling objects, classes and
their relationships to one another.

Object diagrams are useful both for
abstract modeling and for designing actual
programs.

Amandeep S. Patti 5
Object Diagram
There are two types of object diagrams.

A class diagram is a schema, pattern or
template for describing many possible
instances of data. A class diagram describes
object classes.

An instance diagram describes how a
particular set of objects relate to each other.
An instance diagram describes object
instances.

Amandeep S. Patti 6
Attributes
An attribute is a data value held by the objects in
a class.
Each attribute has a value for each object
instance.
Different object instances may have same or
different values for a given attribute.
Each attribute name is unique within a class.
An attribute should be a pure data value, not an
object.

Amandeep S. Patti 7
Operations and Methods
Operations

An operation is a function or transformation that
may be applied to or by objects in a class.

Each operation has a target object as an implicit
argument. The behaviour of the operation
depends on the class of its target.

The same operation may apply to many different
classes.

Amandeep S. Patti 8
Operations and Methods
A method is the implementation of the operation
for a class.
An operation may have arguments in addition to
its target object. Such arguments parameterize
the operation but do not affect the choice of
method.
The method depends only on the class of the
target object.
When an operation has methods on several
classes, it is important that the methods all have
the same signature.

Amandeep S. Patti 9
Notations for Class Diagram

Place the name of the
class in the first
partition (centered,
bolded, & capitalized),
list the attributes in the
second partition, and
write operations into
the third.
Class Name
Attribute: Type = Value
Operation(arg_List): return type

Amandeep S. Patti 10
Links and Associations

Represent static relationship between
classes.

A link is a physical or conceptual
connection between object instances.

An association describes a group of links
with common structure and common
semantics.

Amandeep S. Patti 11
Links and Associations
All the links in an association connect
objects from the same classes.
Both often appear as verbs in a problem
statement.
Associations are inherently bi-directional.
Associations are often implemented in
programming languages as pointers from
one object to another.

Amandeep S. Patti 12
Links and Associations
1 No more than
one
0..1 Zero or One
* Many
0..* Zero or Many
1..* One or Many
Company
Person
1
1..*

Amandeep S. Patti 13
Multiplicity
It specifies how many instances of one class
may relate to a single instance of an
associated class.
It constrains the number of related objects.
It is generally described as being “one” or
“many”, but it is a subset of non-negative
integers.
It depends on assumptions and how you
define the boundaries of a problem.

Amandeep S. Patti 14
For example, one
company will have one or
more employees, but
each employee works for
one company only.
Multiplicit
y
Operation(arg_List): return
type
Attribute: Type = Value
Class Name
Operation(arg_List): return
type
Attribute: Type = Value
Class Name
{Constraints}**
1..* 1

Amandeep S. Patti 15
Link Attributes

A link attribute is a property of the links in
an association.
Accessible by
Access permission
File User

Amandeep S. Patti 16
Role Names

A role is an end of an association.

A binary association has two roles, each of which
may have a role name.

A role is a name that uniquely identifies one end
of an association.

Role names are necessary for associations
between two objects of same class.
Employee
Person Company
Employer
Works-for

Amandeep S. Patti 17
Ordering
The ordering is an inherent part of the
association. An ordered set of objects on
the “many” end of an association is
indicated by writing “{ordered}” next to the
multiplicity dot for the role.
This is a special kind of constraint.
Window Screen
{Ordered}
Visible-on

Amandeep S. Patti 18
Qualification

A qualified association relates two classes
and a qualifier.

One to many and many to many
associations may be qualified.

The qualifier is a special attribute that
reduces the effective multiplicity of an
association.

Amandeep S. Patti 19
Qualification

The qualifier distinguishes among the set
of objects at the many end of an
association.

A qualified association can also be
considered as ternary association.
Directory
File name
File

Amandeep S. Patti 20
Aggregation

Aggregation is the “part-whole” or “a-part-of”
relationship in which objects representing the
components of something are associated with
an object representing the entire assembly.

The aggregate is semantically an extended
object that is treated as a unit in many
operations, although physically it is made of
several objects.

Amandeep S. Patti 21
Aggregation

Aggregation is inherently transitive; An
aggregate has parts, which may in turn
have parts.

Many aggregate operations operate on
both direct and indirect parts.

Aggregation can be fixed, variable or
recursive.

Amandeep S. Patti 22
Types of Aggregation

A fixed aggregate has a fixed structure; The
types and number of subparts are predefined.

A variable aggregate has a finite number of
levels, but the number of parts may vary.

A recursive aggregate contains directly or
indirectly, an instance of the same kind of
aggregate; the no. of potential levels is
unlimited.

Amandeep S. Patti 23
Propagation of Operations

Propagation is the automatic application of an
operation to a network of objects when the
operation is applied to some starting object.

The propagation behaviour is bound to an
association, direction and operation.

Propagation is indicated on object models with a
small arrow & operation name next to the
affected association. The arrow indicates the
direction of propagation.

Amandeep S. Patti 24
Generalization

It is the relationship between a class and
one or more refined versions of it. The
class being refined is called the superclass
and each refined version is called
subclass.

It is sometimes called the “is-a” relationship
because each instance of a subclass is an
instance of superclass as well.

Amandeep S. Patti 25
Generalization

The notation for generalization is a triangle
connecting a superclass to its subclasses.
The superclass is connected by a line to
the apex of the triangle and the subclasses
are connected by the line to a horizontal
bar attached to the base of the triangle.

Amandeep S. Patti 26
Generalization

“Dimensionality” is
discriminator.

It is an attribute of
enumeration type that
indicates which property
of an object is being
abstracted by a
particular generalization
relationship.
Figure
Color
Center
position
Move
select
One Dim
Orientation
Scale
Two Dim
Orientation
Fill type
Scale
fill
dimensionality

Amandeep S. Patti 27
Generalization, Inheritance and
Specialization

Generalization is used to refer to the
relationship among classes, while inheritance
refers to the mechanism of sharing attributes
and operations using the generalization
relationship.

Generalization and specialization are two
different viewpoints of the same relationship,
viewed from superclass or from the subclass.

Amandeep S. Patti 28
Aggregation V/s Generalization

Aggregation relates instances. Two distinct
objects are involved; One of them is part of
other whereas generalization relates
classes and is a way of structuring the
description of a single object. Both super
class and subclass refer to properties of a
single object.

Amandeep S. Patti 29
Aggregation V/s Generalization
An aggregation tree is composed of object
instances that are all part of a composite
object; A generalization tree is composed
of classes that describe an object.
Aggregation is often called “a-part-of”
relationship (sometime called “and-relationship”);
Generalization is often called “a-kind of” or
“is-a” relationship (sometime called “or-
relationship”).

Amandeep S. Patti 30
Aggregation v/s Association
Aggregation is a special form of association,
not an independent concept.
Aggregation adds semantic connotations in
certain cases. If two objects are tightly
bound by a part-whole relationship, it is an
aggregation.
If two objects are independent, and they are
linked, it is an association.

Amandeep S. Patti 31
Abstract class
An incomplete superclass that defines common
features to several classes.
Not instantiated.
Frequently used to define methods to be
inherited by subclasses.
It can define the protocol for an operation
(abstract operation) without supplying a
corresponding method, for which each subclass
must provide its own implementation.

Amandeep S. Patti 32
Concrete class
Is a complete class.
Describes a concept completely.
Is intended to be instantiated.
It may have abstract subclasses (but they in
turn must have concrete descendants).
Only concrete classes may be leaf classes
in the inheritance tree.

Amandeep S. Patti 33
Generalization as Extension and Restriction
In generalization, an instance of a class is an instance
of the class. Therefore all ancestor class features
must apply to the subclass instances. A descendent
class cannot omit or suppress an ancestor attribute
because then it could not truly be an ancestor
instance. Similarly operations on an ancestor class
must apply to all descendent classes. A subclass may
re-implement an operation for reasons of efficiency
but cannot change the external protocol.
Adding features is called Extension.
Constraining ancestor attributes is called Restriction.

Amandeep S. Patti 34
Overriding Operations
The mechanism by which a child class can
provide an alternative implementation of a
method currently provided by a parent class.
Overriding for extension: the new operation is the
same as the inherited operation, except it adds
some behaviour, usually affecting new attributes
of the subclass.
Overriding for restriction: The new operation
restricts the protocol, such as tightening the
types of arguments.

Amandeep S. Patti 35
Overriding Operations
Overriding for optimization: An implementation
can take advantage of the constraints imposed
by a restriction to improve the code for an
operation, and it is valid use of overriding.
Overriding for convenience: A common practice
in developing new classes is to look for a class
similar to what is desired. The new class is made
a subclass of the existing class and overrides
the methods that are inconvenient. This ad hoc
use of inheritance is semantically wrong.

Amandeep S. Patti 36
Multiple Inheritance
A class may inherits features from more than one
superclass. Such class is called a join class.
A feature from the same ancestor class found
along more than one path is inherited only once.
The advantage of multiple inheritance is greater
power in specifying classes and an increased
opportunity for reuse. It brings object modeling
closer to the way people thinks.
The disadvantage is a loss of conceptual and
implementation simplicity.

Amandeep S. Patti 37
Workarounds
Employee
Employee
Payroll
Employee
Pension
Hourly
Employee
Salaried
Employee
Exempt
Employee
Vested
Employee
Unvested
Employee
Multiple Inheritance Using delegation

Amandeep S. Patti 38
Workarounds
Employee
Employee
Pension
Hourly
Employee
Salaried
Employee
Exempt
Employee
Vested
Employee
Unvested
Employee
Pay Status
Pension
Status
Multiple Inheritance using inheritance &
delegation

Amandeep S. Patti 39
Metadata

Data about data.

Models are inherently metadata.

Parts catalogs, blue-prints, dictionaries etc.

Patterns and Metadata

Amandeep S. Patti 40
Constraints
Constraints are functional relationships between
entities of an object model. The term entity
includes objects, classes, attributes, links and
associations.
A constraint restricts the values that entities can
assume.
A good object model captures many constraints
through its structure.
Object modeling notation for constraints is as follows: Constraints are
delimited by braces and positioned near the constrained entity. A
dotted line connects multiple constrained entities.

Amandeep S. Patti 41
Constraints
Employee
Salary
{Salary <= boss.Salary}
Window
Length
width
{length > width}
Constraints on objects
Country Office Person
{ordered}
Constraints on association links

Amandeep S. Patti 42
Derived Objects, Links and Attributes

A derived object is defined as a function of
one or more objects, which in turn may be
derived.

The notation for derived entity is a slash or
diagonal line (on the corner of a class box, or
an association line, or in front of an attribute).
Machine Assembly Part
Offset
offse
t
offse
t

Amandeep S. Patti 43
Homomorphism
CatalogItem Item
Model number Serial number
Describes
Maps
Contain
sContain
s
{Item1 contains item2 => item1.model contains
item2.model}
Homomorphism for a parts catalog
Tags