1 / 38

Software Engineering Dr. K. T. Tsang

Software Engineering Dr. K. T. Tsang. Lecture 7 Advanced class modeling http://www.uic.edu.hk/~kentsang/SWE/SWE.htm. 1. Multiplicity. Multiplicity - a constraint on cardinality of a set Multiplicity also applies to attributes

kathy
Download Presentation

Software Engineering Dr. K. T. Tsang

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software EngineeringDr. K. T. Tsang Lecture 7 Advanced class modeling http://www.uic.edu.hk/~kentsang/SWE/SWE.htm 1

  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. 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. PhoneMailbox maxMsgCount phoneNumber passWord greeting PhoneMessage maxDuration maxDaysRetained dateRecord timeRecorded priority message hasBeenReceived Person name Scope – example 1 * source 0..1 * 1 {ordered} owner * owner 1 Not a good model

  5. PhoneMailbox MailCategory phoneNumber passWord greeting categoryName msgMaxDuration msgDaysRetained msgMaxCount PhoneMessage dateRecord timeRecorded priority message hasBeenReceived Person name Scope – example 2 Preferred model 1 1 owner * * 0..1 * source {ordered} owner * 1

  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. stock * * Company Person Person Company name name name name * Purchase Purchase quantity date cost quantity date cost stock * * 1 1 Restating an N-ary Association • Decompose non-atomic ternary into binary associations

  8. Language Project name name * * * programmer Person name Example - A genuine ternary association p.65 B&R, Fig.4.6 An atomic n-ary association is one that cannot be subdivided into binary associations without losing information. Class diagram

  9. Java:Language P135:Project C:Language library:Project name=“Java” name=“P135” name=“C” name=“library” Mary:Person name=“Mary” Example - A genuine ternary association.. object diagram

  10. Professor * DeliveredCourse * Semester roomNumber * * Course Example 2 - A ternary association p.65 B&R, Fig. 4.7 * TextBook A class associates with an association?

  11. DeliveredCourse Professor roomNumber * * Semester * Course * TextBook Example 2 – An n-ary association A better way??

  12. DeliveredCourse roomNumber Promoting an n-ary association to classes A regular class Professor * Semester TextBook * * * Course Programming languages cannot express n-ary association, so we must promote them to class.

  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. Aggregation - example UML symbol-Hollow diamond * * Auto-mobile * * * * 1 1 Engine Body Wheel Seat

  15. Aggregation & Composition • 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.

  16. Composition - example UML symbol- solid diamond 1 * * 1 Company Division Department 1 * Person

  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. Paragraph Document Character Person copy copy copy 1 1 * * copy copy Propagation of operations * owns The copy operation propagates from document to paragraphs to characters, but not in the reverse direction. 1 p.68 B&R, Fig.4.11

  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. Employee FullTimeEmployee PartTimeEmployee yearTodateEarnings weeklyRate hourlyRate computePay computePay computePay Abstract operation - example Note: Avoid concrete super-class

  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. Employee FullTimeEmployee PartTimeEmployee Partner yearTodateEarnings weeklyRate hourlyRate ownership computePay computePay computePay computePay Multiple inheritance - example FullTimeEmployeePartner

  23. Multiple classification • An object is an instance of all ancestors of its class.

  24. 1 * Multiple classification - example Person UniversityMember {overlapping} Student Staff Faculty Instructor Overlapping means a person may belong to more than one kind of UniversityMember

  25. Delegation using composition of parts p.74 B&R, Fig. 4.19 1 1 Employee 1 1 Worker Management employmentStatus managerialStatus FullTime PartTime Manager Director Workaround for Multiple inheritance: recast a super-class with multiple inheritance as a composition in which each part replaces a subclass (generalization).

  26. Workaround 2 – nested generalization Employee FullTime PartTime FullTimeManager FullTimeWorker PartTimeManager PartTimeWorker

  27. 1 * describes PhysicalCar CarModel serialNumber color options modelName year basePrice * * manufacturer 1 1 owner Company Person 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.

  28. Substance Substance SubstanceName substanceName substanceName Reification • Reification is the promotion of something that is not an object to an object. Reification: Promote attribute to a class alias * 1..*

  29. Window length width Employee Job salary priority Constraints on objects boss 0..1 (0.8<length/width<1.5) * (salary<boss.salary) (priority never increases)

  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. Constraint on links • 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.

  32. Subset constraint between associations * Member of * Person Committee (subset) * 1 Chair of The chair of a committee must be a member of the committee.

  33. Person birthdate / age 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. CurrentDate {age=currentDate – birthdate} Derived attribute

  34. offset offset 1 1 * * Derived object & association Machine Assembly Part 1 / NetOffset 1 / Offset offset = MachineAssembly.offset X PartAssembly.offset Derived data can complicate implementation. Use them only if they are truly necessary.

  35. PackageName 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. Notation of a package

  36. Reading for this lecture • Chapter 4 Blaha & Rumbaugh

  37. Software EngineeringDr. K. T. Tsang Lecture 8 State modeling http://www.uic.edu.hk/~kentsang/SWE/SWE.htm 37

  38. Reading for this lecture • Chapter 5 Blaha & Rumbaugh

More Related