Object Modeling          OOAD                  1
Objects and Classes   Object can be a concept, abstraction or    thing with crisp boundaries and meaning    for the probl...
Objects and Classes   A class describes a group of objects with    similar properties (attributes), common    behaviour (...
Object Diagram   Object diagram provide a formal graphic    notation for modeling objects, classes and    their relations...
Object Diagram   There are two types of object diagrams.       A class diagram is a schema, pattern or        template f...
Attributes   An attribute is a data value held by the objects in    a class.   Each attribute has a value for each objec...
Operations and MethodsOperations An operation is a function or transformation that  may be applied to or by objects in a ...
Operations and Methods   A method is the implementation of the operation    for a class.   An operation may have argumen...
Notations for Class Diagram                                      Place the name of the        Class Name                 ...
Links and Associations   Represent static relationship between    classes.   A link is a physical or conceptual    conne...
Links and Associations   All the links in an association connect    objects from the same classes.   Both often appear a...
Links and Associations1    No more than one   Company0..1 Zero or One             1*    Many0..* Zero or Many            1...
Multiplicity   It specifies how many instances of one    class may relate to a single instance of an    associated class....
Class Name    Multiplicity           Attribute: Type = Value                           Operation(arg_List): return type   ...
Link Attributes   A link attribute is a property of the links in    an association.                    Accessible by     ...
Role Names   A role is an end of an association.   A binary association has two roles, each of which    may have a role ...
Ordering   The ordering is an inherent part of the    association. An ordered set of objects on    the “many” end of an a...
Qualification   A qualified association relates two classes    and a qualifier.   One to many and many to many    associ...
Qualification   The qualifier distinguishes among the set    of objects at the many end of an    association.   A qualif...
Aggregation   Aggregation is the “part-whole” or “a-part-of”    relationship in which objects representing the    compone...
Aggregation   Aggregation is inherently transitive; An    aggregate has parts, which may in turn    have parts.   Many a...
Types of Aggregation   A fixed aggregate has a fixed structure; The    types and number of subparts are predefined.   A ...
Propagation of Operations   Propagation is the automatic application of an    operation to a network of objects when the ...
Generalization   It is the relationship between a class and    one or more refined versions of it. The    class being ref...
Generalization   The notation for generalization is a triangle    connecting a superclass to its subclasses.    The super...
Generalization                       Color                                               Figure                           ...
Generalization, Inheritance and     Specialization   Generalization is used to refer to the    relationship among classes...
Aggregation V/s Generalization   Aggregation relates instances. Two distinct    objects are involved; One of them is part...
Aggregation V/s Generalization   An aggregation tree is composed of object    instances that are all part of a composite ...
Aggregation v/s Association   Aggregation is a special form of association,    not an independent concept.   Aggregation...
Abstract class   An incomplete superclass that defines common    features to several classes.   Not instantiated.   Fre...
Concrete class   Is a complete class.   Describes a concept completely.   Is intended to be instantiated.   It may hav...
Generalization as Extension and    Restriction   In generalization, an instance of a class is an    instance of the class...
Overriding Operations   The mechanism by which a child class can    provide an alternative implementation of a    method ...
Overriding Operations   Overriding for optimization: An implementation    can take advantage of the constraints imposed  ...
Multiple Inheritance   A class may inherits features from more than one    superclass. Such class is called a join class....
Workarounds                        Employee            Employee                    Employee            Payroll            ...
Workarounds                                            Employee           Employee                                        ...
Metadata   Data about data.      Models are inherently metadata.      Parts catalogs, blue-prints, dictionaries etc.  ...
Constraints   Constraints are functional relationships between    entities of an object model. The term entity    include...
Constraints  Employe                     Window  e                        Length     Salary                width{Salary <=...
Derived Objects, Links and Attributes   A derived object is defined as a function of    one or more objects, which in tur...
Homomorphism                                    Maps                   Contains     ContainsCatalogItem                   ...
Upcoming SlideShare
Loading in …5
×

Object modeling

903 views

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
903
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
32
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Object Oriented Analysis &amp; Design
  • Object modeling

    1. 1. Object Modeling OOAD 1
    2. 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. 2
    3. 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. 3
    4. 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. 4
    5. 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. 5
    6. 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. 6
    7. 7. Operations and MethodsOperations 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. 7
    8. 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. 8
    9. 9. Notations for Class Diagram  Place the name of the Class Name class in the firstAttribute: Type = Value partition (centered, bolded, & capitalized), list the attributes in the second partition, andOperation(arg_List): return type write operations into the third. 9
    10. 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. 10
    11. 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. 11
    12. 12. Links and Associations1 No more than one Company0..1 Zero or One 1* Many0..* Zero or Many 1..*1..* One or Many Person 12
    13. 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. 13
    14. 14. Class Name Multiplicity Attribute: Type = Value Operation(arg_List): return type * {Constraints} *For example, onecompany will have one ormore employees, but 1..* 1each employee works for Class Nameone company only. Attribute: Type = Value Operation(arg_List): return type 14
    15. 15. Link Attributes A link attribute is a property of the links in an association. Accessible by File User Access permission 15
    16. 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 Employe Person Works-for r Company 16
    17. 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. {Ordered} Window Screen Visible-on 17
    18. 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. 18
    19. 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 File name 19
    20. 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. 20
    21. 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. 21
    22. 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. 22
    23. 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. 23
    24. 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. 24
    25. 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. 25
    26. 26. Generalization Color Figure Center position “Dimensionality” is Move discriminator. select It is an attribute of enumeration type that dimensionality indicates which property One Dim Two Dim of an object is being Orientation Orientation abstracted by a Fill type particular generalization Scale Scale relationship. fill 26
    27. 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. 27
    28. 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. 28
    29. 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”). 29
    30. 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. 30
    31. 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. 31
    32. 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. 32
    33. 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. 33
    34. 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. 34
    35. 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. 35
    36. 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. 36
    37. 37. Workarounds Employee Employee Employee Payroll PensionHourly Salaried Exempt Vested UnvestedEmployee Employee Employee Employee Employee Multiple Inheritance Using delegation 37
    38. 38. Workarounds Employee Employee Pension Pay Status Pension StatusHourly Salaried Exempt Vested UnvestedEmployee Employee Employee Employee Employee Multiple Inheritance using inheritance & delegation 38
    39. 39. Metadata Data about data.  Models are inherently metadata.  Parts catalogs, blue-prints, dictionaries etc. Patterns and Metadata 39
    40. 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. 40
    41. 41. Constraints Employe Window e Length Salary width{Salary <= boss.Salary} {length > width} Constraints on objects {ordered} Country Office Person Constraints on association links 41
    42. 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 offset Offset 42
    43. 43. Homomorphism Maps Contains ContainsCatalogItem ItemModel number Serial number Describes{Item1 contains item2 => item1.model contains item2.model} Homomorphism for a parts catalog 43

    ×