2. Review of OO Paradigm and UML UML-1 Venkat Subramaniam Benefits Of OO Development • Models System using Objects • Small Semantic gap between reality & model • Understanding the system is easier • Modifications are localized UML-2 Venkat Subramaniam
Object-Oriented Paradigm Collection of Discrete Objects Data & Behavior OO Paradigm • Abstraction • Encapsulation • Hierarchy – Inheritance hierarchy (“is-a”) – Part of hierarchy (“has a”) • Polymorphism UML-3 Venkat Subramaniam Abstraction “A simplified description ... of a system that emphasizes some of the system’s details ... while suppressing others” “An abstraction denotes the essential characteristics of an object that distinguish it from all other kind of objects and thus provide crisply defined conceptual boundaries, relative to the perspective of the viewer” UML-4 Venkat Subramaniam
Encapsulation • Information hiding • Interface - Implementation • Behavior & Data “Encapsulation is the process of compartmentalizing the elements of an abstraction that constitute its structure and behavior; encapsulation serves to separate the contractual interface of an abstraction and its implementation” UML-5 Venkat Subramaniam What is an Object? • “Concept, abstraction, or thing with crisp boundary & meaning for a problem” • An Object has state and behavior • Objects receive stimuli/messages & respond • Receiving a stimulus, Object may change state Examples: jullie dylan kim charlie charlie.fly() stimulus UML-6 Venkat Subramaniam
What is a Class? • Group of Objects with similar –properties (attributes) –behavior –relationships to other objects –semantics • Blueprints of Objects Parrot Example Girl Boy jullie kim dylan charlie UML-7 Venkat Subramaniam Hierarchy “Hierarchy is a ranking of abstractions” Inheritance : expresses “ is-a ” or “ Kind-of ” relationship • Extensibility & Reusability Part-of: expresses that object is an aggregate of another UML-8 Venkat Subramaniam
Polymorphism Hiding alternative procedures behind a Common Interface Send a Message to an object - Polymorphism guarantees that the correct/proper implementation is invoked. Sender does not know specific class of receiver UML-9 Venkat Subramaniam Object Model • Captures static structure of system • Objects, relationships, attributes & operations • Most important • Intuitive graphic representation • Valuable for communication & documentation UML-10 Venkat Subramaniam
Objects • Decomposing problem into objects – depends on judgement & nature of problem • No one correct representation • Objects have identity UML-11 Venkat Subramaniam Class • Often appear as nouns in problem descriptions • Has semantic • Interpretation of semantics – depends on application and matter of judgement • Each class may have zero, one or more objects • Each object knows it class UML-12 Venkat Subramaniam
Class Diagrams • Provide formal graphic notation for modeling • Concise, easy to understand, practical • Describes many possible instances UML-13 Venkat Subramaniam Object Diagrams • Describes how set of objects relate • Useful for – documenting test cases – Clarification of complex class diagrams • Class Diagram corresponds to infinite set of object diagrams UML-14 Venkat Subramaniam
Notation for Classes & Objects (UML) kelly Girl brenda : Girl dylan Boy Objects Classes UML-15 Venkat Subramaniam Attributes • Data value held by objects of a class • Objects may have same/different values for attribute • Attribute name unique within a class • Adjectives often represent specific enumerated attribute values : “red car” UML-16 Venkat Subramaniam
Attributes... • Attribute is a pure data value - not an object • Internal identifiers must not be shown as attributes • Show only important attributes UML-17 Venkat Subramaniam Derived Attributes Base Attribute : – primitive, not dependent on other attributes Derived Attribute : – computing not considered to change state of an object – dependent on base attributes – may be stored or computed upon a query operation Example : Area of a circle, age of a person UML-18 Venkat Subramaniam
� Attributes Notation PKG::ClassName Society::Girl -attrPrivate #attrProtected +attrPublic -age assumedPrivateAttr +name {readOnly} attrStatic -numberOfGirls /derivedAttribute -attrWType : Int -attrWInitVal : Float = 0.0 +attr {readOnly} UML-19 Venkat Subramaniam Operations & Methods • Operation : Function that may be applied to or by objects • Same Operations applying to different classes: Polymorphic • Method is implementation of an operation for a class • Operation has a target object and may have arguments • Same operations on different classes should have ✁✄✂✆☎✞✝✟✁✡✠☞☛✍✌✎✂✑✏✓✒✕✔✖✝✟✂✆✌✑✗✙✘✛✚✆✌✜✁✢✠☞✁✣✏✤✝✕✌✢✏✥✠✦✌✎✏✧✝✕✌✢✏ • Query Operation : Does not affect the state of object • Show only important methods UML-20 Venkat Subramaniam
Operation Notation PKG::ClassName Society::Girl +methodPublic() #methodProtected() -methodPrivate() +play() assumedPublic() ~sing() methodStatic() GetGirlsCount() : Int ~methodPackageVisible() methodWReturn() : Int finalMethod() {leaf} UML-21 Venkat Subramaniam Example with Attributes & Operations StopWatch -seconds +start() +stop() +reset() +getSeconds(): double UML-22 Venkat Subramaniam
Associations and Links • Link is physical or conceptual connection between objects • Link is an instance of an Association Example: Link : Susan is-wife-of Robert Julie is-wife-of John Association: Woman is-wife-of Man Associations and Links appear as Verbs UML-23 Venkat Subramaniam Associations & Links... • Associations are bi-directional –may be implemented as unidirectional • Implemented usually as pointers – important not to think as pointers • Associations may be –one-to-one –one-to-many –many-to-one –many-to-many UML-24 Venkat Subramaniam
Ternary & High Order Associations Binary Association : Relates two classes Woman is-wife-of Man Ternary Association : Relates three classes Nancy is-daughter-of Susan and Robert n -ary Association : Relates n classes Higher Order Associations – complicated to draw, implement and think – try to avoid if possible UML-25 Venkat Subramaniam Associations Notations Exactly One * Many Directed Association 0..1 Optional * 1..* One Or More 0..* Zero Or More 0..* 1..* Company Person employees employs worksFor UML-26 Venkat Subramaniam
Link Attributes & Association Classes • Attributes that belong to association of object rather than one object • Link Attributes belong in Association Classes • Ex: Salary received by Employee from Company • In an one-to-one association you may try to make it attribute of one of the objects –Leads to extensibility problems UML-27 Venkat Subramaniam Association Class Notation * * Person Company Employment salary:double UML-28 Venkat Subramaniam
Role Names • Name given to either end of an association • Helps to navigate from one object to related objects wife husband Woman Man 0..1 married 0..1 • Helps clarify when two classes have several associations between them wife husband 0..1 married 0..1 Man Woman 1 * daughter children father UML-29 Venkat Subramaniam Qualifiers • Distinguishes among set of associated objects • Models associative arrays, dictionaries • Qualifiers may be wrongly modeled as attribute of associated class Student * * GradeList code Unqualified 1 * code Student GradeList Qualified UML-30 Venkat Subramaniam
Aggregation & Composition Aggregation: • Part-of or part-whole relationship (by reference) • Example : Car has Engine and Transmission • Assembly of objects with aggregate and component parts • Component existence may or may not depend on aggregate UML-31 Venkat Subramaniam Aggregation & Composition... Composition: • Part belongs to only one whole (by Value) • Part lives and dies with the whole • Whole cannot replace the part UML-32 Venkat Subramaniam
Aggregation/ Composition Notation Aggregation Has By Value Has By Reference Engine Vehicle +drive() VIN UML-33 Venkat Subramaniam Aggregation / Composition Example Person brain Composition Aggregation Car UML-34 Venkat Subramaniam
Inheritance • Models is-a relationship • Relationship between a class and its refined versions • Superclass or Base class • Subclass or Derived class • Inheritance is transitive • Discriminator : The property being abstracted by a particular inheritance • Breath Vs. Depth of inheritance UML-35 Venkat Subramaniam Inheritance Notation Generalization Superclass Vehicle +drive() Subclass1 Subclass2 Car Truck -sunRoof UML-36 Venkat Subramaniam
Inheritance Example Animal Child Girl Boy Dog Cat UML-37 Venkat Subramaniam Grouping Mechanism : Package • Grouping classes together into higher-leve units • Package diagram with dependency • Dependency between packages exists if – class in one package depends on a class in the other – definition change of one package may change other UML-38 Venkat Subramaniam
Recommend
More recommend