Download presentation
Presentation is loading. Please wait.
Published byJodie Moody Modified over 9 years ago
1
11 Software Engineering Dr. K. T. Tsang Lecture 7 Advanced class modeling http://www.uic.edu.hk/~kentsang/SWE/SWE.htm
2
2 Multiplicity Multiplicity - a constraint on cardinality of a set Multiplicity also applies to attributes Multiplicity for an attribute specifies the number of possible values for each instantiation of an attribute Person name: string [1] birthday: date [1] phoneNumber: string [*] address: string [1..*]
3
3 Scope & visibility of features Scope – whether a feature applies to an object (object scope) or an entire class (static, class scope) Visibility – public(+), protected(#) or private(- )
4
4 Scope – example 1 PhoneMessage maxDuration maxDaysRetained dateRecord timeRecorded priority message hasBeenReceived PhoneMailbox maxMsgCount phoneNumber passWord greeting Person name owner source * * * 0..1 1 1 Not a good model {ordered}
5
5 Scope – example 2 PhoneMessage dateRecord timeRecorded priority message hasBeenReceived PhoneMailbox phoneNumber passWord greeting MailCategory categoryName msgMaxDuration msgDaysRetained msgMaxCount Person name * * 0..1 1 owner source {ordered} 1 * owner * 1 Preferred model
6
6 N-ary Associations Binary Associations – 2 ends Ternary Associations – 3 ends N-ary Associations – n ends, avoid them Most N-ary Associations can be decomposed into binary associations
7
7 Restating an N-ary Association Decompose non-atomic ternary into binary associations Company name * * Person name Purchase quantity date cost 1 1 stock Company name * * Person name Purchase quantity date cost *
8
8 Example - A genuine ternary association p.65 B&R, Fig.4.6 Language name * * Project name Person name * programmer An atomic n-ary association is one that cannot be subdivided into binary associations without losing information. Class diagram
9
9 object diagram Java:Language name=“Java” P135:Project name=“P135” Mary:Person name=“Mary” C:Language name=“C” library:Project name=“library” Example - A genuine ternary association..
10
10 Example 2 - A ternary association TextBook Semester Course Professor roomNumber DeliveredCourse * * ** * A class associates with an association? p.65 B&R, Fig. 4.7
11
11 Semester Course Professor roomNumber DeliveredCourse * * * TextBook * Example 2 – An n-ary association A better way??
12
12 Promoting an n-ary association to classes Semester Course Professor roomNumber DeliveredCourse * * * TextBook * A regular class Programming languages cannot express n-ary association, so we must promote them to class.
13
13 Aggregation Aggregation is a special form of association in which an aggregate object is made of constituent parts (is a part of). An aggregate object is an extended object treated as a unit in many operation. Properties of Aggregation –Transitive: if A is part of B and B is part of C, then A is also part of C –Anti-symmetric: if A is part of B then B is not part of A
14
14 Aggregation - example Auto-mobile EngineBodyWheelSeat 11 * ** * * * UML symbol-Hollow diamond
15
15 There are 2 forms of part-whole relationships in UML. The general form is Aggregation. The more restricted form is Composition: –a part can belong to at most to one assembly –once assigned, the part has the same lifetime as the assembly Deletion of the assembly object triggers the deletion of all objects in the composition. Aggregation & Composition
16
16 Composition - example CompanyDivisionDepartment Person * ** 1 1 1 UML symbol- solid diamond
17
17 Propagation of operations The automatic application of an operation to a group of objects when the operation is applied to a starting object. Examples – –Moving an aggregate moves its parts –Copying a document copies all its paragraphs and all the characters in a paragraph
18
18 Paragraph copy Document copy Character copy * 1 * 1 Propagation of operations Person 1 * The copy operation propagates from document to paragraphs to characters, but not in the reverse direction. owns copy p.68 B&R, Fig.4.11
19
19 Abstract & concrete classes An abstract class has no direct instance but its descendant classes have direct instances. A concrete class is a class that can have direct instances (instantiable). Abstract class can have abstract operation, designated by italics or the keyword {abstract}. An abstract operation defines the signature of an operation for which each concrete subclass may provide its own implementation. A concrete class may not contain any abstract operation.
20
20 Abstract operation - example Employee yearTodateEarnings computePay FullTimeEmployee weeklyRate computePay PartTimeEmployee hourlyRate computePay Note: Avoid concrete super-class
21
21 Multiple inheritance Allows a class to have more than one superclass, and inherit features from all parents. Some OOP languages does not support multiple inheritance, e.g. Java. Multiple inheritance may create ambiguities. Be careful with its usage.
22
22 Multiple inheritance - example Employee yearTodateEarnings computePay FullTimeEmployee weeklyRate computePay PartTimeEmployee hourlyRate computePay Partner ownership computePay FullTimeEmployeePartner
23
23 An object is an instance of all ancestors of its class. Multiple classification
24
24 Multiple classification - example UniversityMember Person Faculty Student Staff * 1 Instructor {overlapping} Overlapping means a person may belong to more than one kind of UniversityMember
25
25 Delegation using composition of parts WorkerManagement Employee ManagerDirectorFullTimePartTime 1 11 1 employmentStatusmanagerialStatus p.74 B&R, Fig. 4.19 Workaround for Multiple inheritance: recast a super- class with multiple inheritance as a composition in which each part replaces a subclass (generalization).
26
26 Workaround 2 – nested generalization Employee FullTimePartTime FullTimeManagerFullTimeWorkerPartTimeManagerPartTimeWorker
27
27 Metadata Metadata is data that describes other data. Example: A class definition is metadata. Class is meta-object. Class that describes other class is meta-class. CarModel modelName year basePrice PhysicalCar serialNumber color options Company Person * 1 * 1 manufacturer owner * 1 describes
28
28 Reification Reification is the promotion of something that is not an object to an object. Substance substanceName Reification: Promote attribute to a class SubstanceSubstanceName substanceName * 1..* alias
29
29 Constraints on objects Employee salary boss 0..1 * (salary<boss.salary) Window length width (0.8<length/width<1.5) Job priority (priority never increases)
30
30 Constraint on generalization set (subclasses) Disjoint – subclasses are mutually exclusive Overlapping – an object can belong to more than one subclass Complete – the generalization lists all possible subclasses Incomplete – the generalization may miss some subclasses
31
31 Multiplicity for an association restricts the number of objects related to a given object. An ordinary association has no presumed order on the objects of the “many” end. The constraint {ordered} indicates that objects of the “many” end have an order that must be preserved. Constraint on links
32
32 Subset constraint between associations PersonCommittee Member of Chair of (subset) ** * 1 The chair of a committee must be a member of the committee.
33
33 Derived data Classes, attributes and associations may be derived from others. The notation for a derived element is a slash (/) in front of the element name. The constraint that determines the derivation should also be shown. Person birthdate / age {age=currentDate – birthdate} CurrentDate Derived attribute
34
34 Derived object & association MachineAssemblyPart * 1 * 1 offset / Offset 1 1 offset = MachineAssembly.offset X PartAssembly.offset / NetOffset Derived data can complicate implementation. Use them only if they are truly necessary.
35
35 Package A package is a group of elements (classes, associations, generalizations and packages of smaller sizes) with a common theme or purpose. Packages partition a model, making it easier to understand or manage. Large applications may have several tiers of packages. PackageName Notation of a package
36
36 Reading for this lecture Chapter 4 Blaha & Rumbaugh
37
37 Software Engineering Dr. K. T. Tsang Lecture 8 State modeling http://www.uic.edu.hk/~kentsang/SWE/SWE.htm
38
38 Reading for this lecture Chapter 5 Blaha & Rumbaugh
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.