280 likes | 407 Views
Software Design Methodologies: UML in Action. Dr. Mohamed Fayad, J.D. Edwards Professor Department of Computer Science & Engineering University of Nebraska, Lincoln Ferguson Hall, P.O. Box 880115 Lincoln, NE 68588-0115 http://www.cse.unl.edu/~fayad. Lesson 11: Object-Oriented
E N D
Software Design Methodologies: UML in Action Dr. Mohamed Fayad, J.D. Edwards Professor Department of Computer Science & Engineering University of Nebraska, Lincoln Ferguson Hall, P.O. Box 880115 Lincoln, NE 68588-0115 http://www.cse.unl.edu/~fayad ISISTAN Research Institute – Tandil, Argentina
Lesson 11: Object-Oriented Concepts -2 2 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
Lesson Objectives • Review of previous lecture • Discuss associations • Explore recursive associations, attributed association • Understand association constraints • Understand qualified & derived associations • Discuss UML – aggregation 3 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
An association shows a two-way relationship between objects (instances) of two or more classes and requiring special implementation to ensure integrity. A particular instance of an association is often called a link. Associations between classes are required if the objects need to communicate. Associations are often named, and have role-names for each side of the link. Associations 11 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
More on Associations Association Name Car Person Vehicle Registration model year # of doors name age address registeredCar owner Roles Names 5 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
Simple example: An association has a name and a numerical specification (multiplicity indication) of how many objects on one side of the association are connected with how many objects on the other side. Associations are called use relationships – even if this may seem somewhat cheeky in the example below More on Associations displays 0..* Window GeomFigure employs 0..* Company Person 6 Employer Employee ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
Associations are directed (one way), bidirectional, and undirected. UML makes no distinction between bidirectional and undirected associations. More on Associations Multiplicity Stereotype RelationName {Constraints} 1 * Class1 Class2 7 role1 Role2: interface ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
Recursive association: A class has a relation with itself. It is also possible to model associations that are valid only temporarily “stereotype or temporary” Constraints may be used to restrict the relation under specific aspects. A role name describes how the object is seen by the opposite object in the association. An association can be described in more detail by means of constraints, tagged values, and stereotypes. Stereotypes are noted before or above the relation name, constraints, and tagged values after or below the name. More on Associations 8 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
Directed association is a one-way association, in which one side knows the other, but not vice versa. Multiplicity Specification: 1 exactly one 0, 1 zero or one 0..4 between zero and four 3, 7 either three or seven More on Associations 9 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
More multiplicity specifications: 0..* greater than or equal to zero (default) * ditto 1..* greater than or equal to one 0..3, 7, 9..* between zero and three, or exactly seven, or greater than or equal to nine. More on Associations 10 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
Recursive associations are associations in which one class is involved. More on Associations has Patient Employee name staffNo roomNo office clerk relative * * 1 manager Person leads 11 reports to ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
An n-ary association is like a common (binary) association, except that more than two association roles involved in it. N-ary Association N-ary association Class1 Class2 Ternary association 12 Class3 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
More on n-ary Association Reservation Seat Train 1..* 1 carriageNo seatNo date trainNo 1..* Passenger name title Ternary association 13 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
More on Associations • Recursive Associations • N-ary Associations • Attributed Associations (Association Class) • Association Constraints • Qualified Associations • Derived Associations • Directed Associations • Ordered Associations • Realization/Refinements • Dependency 14 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
More on Associations • Associations are usually bidirectional • Allows each object involved in the relationship to refer to the object to which it is related. • Bidirectional association means at the relationship has an inverse. • Associations do not have to be bidirectional. 15 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
Association Type One-to-One One-to-Many (One-to-Zero-or-More) Many-to-Many Zero or One Man Woman Marriage husband wife Screen Window Windows Nets User Authorization Car Trailer 16 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
Association Type Specified the # of instances on the “many” side Specify the possible # of instances using “or” Ternary relationship Square Line Sides Secure Room Person Occupants TraditionalFamily Male Female • father mother • children 17 Child ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
Association Class Server Client Connection Connection baudRate protocol wireType disconnect rerouteLink • These attributes don’t belong in either the Client or Server class. • They are attributes of the connection itself. 18 • The association class can have behaviors as well as attributes. ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
Aggregation is a special form of association. Aggregation is used when the relationship is “part/whole” or “contains/is-part-of” Aggregation is transitive and operations on “whole” often cascade down to “parts”. Aggregation & Composite 19 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
Aggregation & Composite Computer Server Aggregation “whole” “part” 52 * CPU Disk Drive Client Keyboard Mouse 20 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
Special diamond symbol used on “whole” side to indicate aggregation. Aggregation is an anti-symmetric that is, if A is part of B, then B is not part of A. DO NOT confuse aggregation with generalization An essential property of aggregates is that the whole acts as a proxy for its parts. A composition is a strict form of aggregation, in which the parts are existence-dependent on the entirely Aggregation & Composite 21 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
Aggregation & Composite Aggregation Part Entirely Composition Existence- DependentPart 22 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
Mr. Clinton’s hand is part-of Mr. Clinton & Mr. Clinton is part-of U.S.A. Therefore: Mr. Clinton’s hand is part-of U.S.A. Aggregation Problem 23 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
Keypad Cash Register Example * Total Key Subtotal Key Number Keys display display display drawer Drawer Display 24 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
Aggregation vs. Inheritance AggregationInheritance Instances of distinct classes Instances of a single class “a-part-of” (APO) “a-kind-of” or “is-a” (AKO) Contains superclass-of Aggregate + parts Superclass + subclass “and” relationship “or” relationship Propagated only if specified Inheritance 25 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
What is an association? Give examples Associations are usually bidirectional. Please describe. Describe the basic difference between aggregation and inheritance. What do they have in common? What do you think “multiple inheritance” means? Which type of association is more likely to yield savings in the amount of code required for implementation? why? Define the process of identifying objects, classes, inheritance, associations & aggregation, attributes, and behaviors Define Polymorphism with examples What do we mean by saying “Model/View/Controller”? Discussion Questions 26 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad
Define: Use Case Structured English What are the good, bad, and ugly of Use Case? Questions for the Next Lecture 27 ISISTAN Research Institute – Tandil, Argentina -- M.E. Fayad