Presentation is loading. Please wait.

Presentation is loading. Please wait.

11 Software Engineering Dr. K. T. Tsang Lecture 7 Advanced class modeling

Similar presentations


Presentation on theme: "11 Software Engineering Dr. K. T. Tsang Lecture 7 Advanced class modeling"— Presentation transcript:

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


Download ppt "11 Software Engineering Dr. K. T. Tsang Lecture 7 Advanced class modeling"

Similar presentations


Ads by Google