3 3 OBJECT MODELING OBJECT MODELING Object-Oriented Analysis and Design Object-Oriented Analysis and Design Source: OBJECT-ORIENTED MODELING AND DESIGN James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, William Lorensen PAUL VOUGNY - EPITA 2008 Source: OBJECT-ORIENTED MODELING AND DESIGN James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, William Lorensen PAUL VOUGNY - EPITA 2008
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
33 OBJECTMODELINGOBJECTMODELING
Object-OrientedAnalysis and Design
Object-OrientedAnalysis and Design
Source: OBJECT-ORIENTED MODELING AND DESIGN
James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy,
William Lorensen
PAUL VOUGNY - EPITA 2008
Source: OBJECT-ORIENTED MODELING AND DESIGN
James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy,
William Lorensen
PAUL VOUGNY - EPITA 2008
1. OBJECTS AND CLASSES
Two types of object diagrams :- class diagram- instance diagram
✘ CLASS DIAGRAM
Describes many possible instances of data.It describes object classes.
✘ INSTANCE DIAGRAM
Describes how a particular set of objects relate to each other.It describes object instances.
(Person)Joe Smith
(Person)Mary Sharp (Person)Person
Class Objects
class diagram instance diagram
Personname : stringage : integer
(Person)Joe Smith24
(Person)Mary Sharp52
Class with Attributes Objects with Values
Personperson_ID : IDname : stringage : integer
Personname : stringage : integer
Wrong Correct
Do not explicitly list object identifiers
Do not explicitly list object identifiers
A method (body) is the implentation of an operation (prototype, signature) for a class. Several methods may be refered by a generic operation. However, each method may be implemented by a different piece of code.
✘ LINK : physical or conceptual connection between object instances. Instance of an association.
✘ ASSOCIATION : describes a group of links with common structure and common semantics. Inherently bidirectionnal. Often implemented as pointers from one object to another.
Pointer = attribute in one object that contains an explicit reference to another object.
WARNING: associations as pointers means not modeling them.
Each association in the class diagram corresponds to a set of links in the instance diagram, just as each class corresponds to a set of objects.
Countryname
Cityname
Has_capital
(Country)Canada
(City)Ottawa
Has_capital
(Country)France
(City)Paris
Has_capital
(Country)Senegal
(City)Dakar
Has_capital
objectlink
object
association
class class
CLASSDIAGRAM
INSTANCEDIAGRAM
association and link names are
optionalleft to right if possible
One-to-one association
and links
CAD:COMPUTER-AIDED
DESIGN
Linename
Pointname2+
CLASSDIAGRAM
INSTANCEDIAGRAM
(Line)L1
(Line)L2
(Line)L4
(Line)L5
(Line)L3
(Point)P1
(Point)P2
L3
L2
L1L4
L5
SAMPLE DATA
P2P1
Workstationconsole
Window zero-or-one multiplicity
multiplicity symbols:hollow ball (◦), solid ball (●) and "2+"
Many-to-many association
and links
Projet
Person
Language
CLASSDIAGRAM
(Projet)accounting system
(Person)Mary
(Language)Cobol
INSTANCEDIAGRAM
(Projet)CAD Program
(Language)C
diamond
atomic unit
Many-to-many association
and links
Ternary association
and links
3. ADVANCED LINK AND ASSOCIATION CONCEPTS
LINK ATTRIBUTES
File User
access permission
Accessible by
/etc/termcap/etc/termcap/usr/doe/.login
(read)(read-write)(read-write)
John DoeMary BrownJohn Doe
Link attribute for a many-to-many
association
Ternary association
and links
salaryjob title
Works_forPerson
namesocial security no.address
Companynameaddress
Manages
boss
worker
performance rating
Link attributes for a one-to-many
association
Pitcher
Team
Year
winslosses
Harry EisenstatHarry EisenstatWillis HudinWillis HudinWillis HudinWillis Hudin
Personnamesocial security no.addresssalaryjob title
Discouraged form
Link attributeversus
object attribute
MODELING AN ASSOCIATION AS CLASS
User WorkstationAuthorized on
Authorizationpriorityprivilegesstart session
Directory
home directory
Modeling an association as a class
ROLE NAMES
✘ A role is one end of an association.A binary association has two roles, each of which may have a role name.
✘ A role name is a name that uniquely identifies one end of an association.
Person CompanyWorks_for
employee employer
role
Joe DoeMary BrownJean Smith
employeeSimplexSimplexUnited Widgets
employer Role names for an
association
Use of role names is optional, but it is often easier and less confusing to assign role names instead of, or in addition to, association names.Role names are necessary for associations between two objects of the same class.
Person Companyowner
authorized usercontents
containerRole names
for a directory hierarchy
ORDERING
Window ScreenVisible_on
{ordered}
Special kind of constraint
Ordered sets in an
association
QUALIFICATION
A qualified association relates two object classes and a qualifier. The qualifier is a special attribute that reduces the effective multiplicity of an association. One-to-many and many-to-many associations may be qualified.
Directory file name File
Object class Qualifier Object class
Directory File
one-to-manyone-to-one
Qualification reduces the effective multiplicity of this association from one-to-many to one-to-one. A directory has many files, each with a file unique name.One way to find a file is to first find the directory and then traverse the file name link. For instance, a directory provides the context for a file name.
Roger StickJoe EmbezzleJoe DoeJane DoeMoe BrownMoe Brown
Many-to-many qualification
Qualification partitions a set of related objects into disjoint subsets, but the subsets may contain more than one object.
AGGREGATION
Aggregation is a tightly coupled form of association with some extra semantics.
Aggregation is:
✘ transitive: A part of B, B part of C ⇒ A part of C.✘ antisymetric: if A part of B, then B is not part of A.
Aggregation relationship ~ relating an assembly class to one component class. An assembly with many kinds of components corresponds to many aggregation relationships. We define each individual pairing as an aggregation so that we can specify the multiplicity of each component within the assembly. This definition emphasizes that aggregation is a special form of association.
Document Paragraph Sentence
Aggregation
Aggregation is drawn like association, except a small diamond indicates the assembly end of the relationship.
The figure shows a portion of an object model for a word processing program. A document consists of many
paragraphs, each of which consists of many sentences.
Paragraphs cannot exist apart from a Document
Sentences cannot exist apart from a Paragraph
Microcomputer
Monitor System box Mouse Keyboard
Monitor System box Mouse Keyboard
MultilevelAggregation
4. GENERALIZATION AND INHERITANCE
GENERAL CONCEPTS
Generalization and inheritance are powerful abstractions for sharing similarities among classes while preserving their differences.Each subclass is said to inherit the features of its superclass.
Generalization is sometimes called the IS A relationship because each instance of a subclass is an instance of the superclass as well. The terms ancestor and descendant refer to generalization of classes across multiple levels.
An instance of subclass is simultaneously an instance of all its ancestor classes. The state of an instance includes a value for every attribute of every ancestor class. Any operation on any ancestor class can be applied to an instance.
Centrifugal pumpimpeller diameternumber of bladesaxis of rotation
Diaphragm pumpdiaphragm material
Plunger pumpplunger lenghtplunger diameternumber of cylinders
Spherical tankdiameter
Pressured tankdiameterheight
Floating roof tankdiameterheight
pump type
. . .tank type
. . .
discriminator(optional part of a generalization relationship)
Generalization
Specialization
A discriminator is an attribute of enumeration type that indicates which property of an object is being abstracted by a particular generalization relationship.Only one property should be discriminated at once.Discriminator values are inherently in one-to-one correspondence with the subclasses of a generalization.
"too deeply nested"depends upon judgment and the particular details
of a problem.
USE OF GENERALIZATION
Generalization is a useful construct for both conceptual modeling and implementation programming community. The terms inheritance, generalization, and specialization all refer to aspects of the same idea and are often used interchangeably.
✘ Inheritance: mechanism of sharing attributes and operations using the generalization relationship.
✘ Generalization: derives from the fact that the superclass generates the subclasses.
✘ Specialization: refers to the fact that the subclasses refine or specialize the superclass.
OVERRIDING FEATURES
✘ A subclass may override a superclass feature by defining a feature with the same name. The overriding feature (subclass) refines and replaces the overriden feature (superclass).
✘ An override should preserve attribute type, number, and type of arguments to an operation and operation return type. We should never override the signature, or form, of a feature.
✘ Tightening the type of an attribute or operation argument to be a subclass of the original type is a form of restriction and must be done with care.
5. GROUPING CONSTRUCTS
MODULE
✘ A module is a logical construct for grouping classes, associations, and generalizations.
SHEET
✘ A sheet is the mechanism for breaking a large object model down into a series of pages. Each module consists of one or more sheets.
✘ Never more than one module per sheet.
✘ A sheet is just a notational convenience, not a logical construct.
✘ Multiple copies of the same class form the bridge for connecting sheets in an object model.
6. A SAMPLE OBJECT MODEL Windowx1x2y1y2displayundisplayraiselower
6. A SAMPLE OBJECT MODEL Windowx1x2y1y2displayundisplayraiselower