Download presentation
Presentation is loading. Please wait.
1
Jan 2003Ron McFadyen 91.39131 Generalization (Ch 26) a generalization is a relationship between a general thing (the superclass or parent class) and a more specific kind of thing (the subclass or child class) example: a MemberOfStaff is a specialized kind of LibraryMember LibraryMember MemberOfStaff
2
Jan 2003Ron McFadyen 91.39132 Generalization example continued: everything a LibraryMember can do, a MemberOfStaff can do a LibraryMember can borrow a book, so can a MemberOfStaff there are some things that a MemberOfStaff can do that a LibraryMember cannot (the specialization aspect) the MemberOfStaff has all the attributes the LibraryMember has, and possibly more (again, the specialization aspect) LibraryMember MemberOfStaff
3
Jan 2003Ron McFadyen 91.39133 a Generalization example: a SavingsAccount is a specialized kind of BankAccount a ChequingAccount is a specialized kind of BankAccount an Asset may be a BankAccount, RealEstate, or a Security Asset RealEstateBankAccountSecurity SavingsAccountChequingAccount
4
Jan 2003Ron McFadyen 91.39134 Text: All members of a conceptual subclass set are members of their superclass set 100% of the conceptual superclass’s definition should be applicable to the subclass. The subclass must conform to 100% of the superclass’s: attributes associations
5
Jan 2003Ron McFadyen 91.39135 Figure 26.7 Payment Amount: money Cash Payment Credit PaymentCheque Payment Sale Pays-for 1 1 Every payment, regardless of whether it is cash, credit, or cheque, has an Amount and it is associated with a Sale CreditCardCheque 1 1 1 *
6
Jan 2003Ron McFadyen 91.39136 Motivation for partitioning a conceptual class into subclasses: the subclass has additional attributes of interest the subclass has additional associations of interest the subclass is operated on, handled, reacted to, or manipulated differently than the superclass or other subclasses the subclass concept represents an animate thing that behaves differently than the superclass or other subclasses Examples a chequing account will accrue interest differently from a savings account a loan account will have different associations from a savings account
7
Jan 2003Ron McFadyen 91.39137 Figure 26.12 The name Payment is italicized - meaning it is an abstract class An abstract class is a class that will never be instantiated; only its subclasses can exist If “Payment” was not in italics then a Payment could exist that is not a Cash, Credit, or Check payment
8
Jan 2003Ron McFadyen 91.39138 Figure 26.7 Payment Amount: money Cash Payment Credit PaymentCheque Payment Sale Pays-for 1 1 Credit and Cheque participate in other associations CreditCardCheque 1 1 1 *
9
Jan 2003Ron McFadyen 91.39139 Watch for objects that are performing roles, or moving from one state to another. ROT: Do not model with subclasses. Model with states. Text: Consider payments that begin as unauthorized and may eventually become authorized. Do not model as: Payment Unauthorized Payment Authorized Payment
10
Jan 2003Ron McFadyen 91.391310 Text: Instead of Payment Unauthorized Payment Authorized Payment Use: PaymentState Unauthorized StateAuthorized State Payment Is-in * 1 Figure 26.13
11
Jan 2003Ron McFadyen 91.391311 PaymentState Unauthorized StateAuthorized State Payment Is-in * 1 authorize() cancel() getStatus() cancel() A payment that is not authorized has an authorize operation, but authorize cannot be executed by a payment that has already been authorized. Cancel has two different implementations (polymorphism). Every payment has getStatus and cancel operations
12
Jan 2003Ron McFadyen 91.391312 dogcat Constraints Shown inside curly braces ({constraint}) incomplete complete disjoint overlapping mammal {disjoint, incomplete}
13
Jan 2003Ron McFadyen 91.391313 Ch 27 - Refining the Domain Model 27.1 Association Classes 27.2 Aggregation and Composition 27.4 Association Role Names 27.5 Roles as Concepts vs Roles in Associations 27.8 Reflexive Associations 27.10 Packages
14
Jan 2003Ron McFadyen 91.391314 Aggregation and Composition both are associations used to denote that an object from one class is part of an object of another class HonoursProgrammeCourse An example of Aggregation: a course is part of an honours programme. The same module could be part of several honours courses “Software Engineering with Objects and Components” is part of both the “Software Engineering” and the “Computer Science” honours programmes **
15
Jan 2003Ron McFadyen 91.391315 Aggregation and Composition BoardSquare Composition is similar to, but stronger than aggregation. If you specify composition, then you are saying that one object owns its parts. A Board is made up of several Squares. A Square will belong to just one Board. If a Board is deleted, then its Squares are deleted too. What is the multiplicity at the composition end of the association?
16
Jan 2003Ron McFadyen 91.391316 Aggregation and Composition InvoiceInvoiceLine Consider Invoices and their Invoice Lines Question: Is the association aggregation or composition? ? ? *
17
Jan 2003Ron McFadyen 91.391317 Aggregation and Composition SaleSalesLineItem Consider Sales and their SalesLineItems Is the association an aggregation or a composition? ? ? * Consider the Product Catalogue and its Product Specifications. Is the association an aggregation or a composition?
18
Jan 2003Ron McFadyen 91.391318 Aggregation and Composition Figure 27.6 Hand Finger Palm Thumb 0..7 0..1 Several associations sharing the same aggregation/composition can be drawn with converging lines
19
Jan 2003Ron McFadyen 91.391319 Aggregation and Composition Suppose a document comprises a TOC, a preface, a number of sections, and possibly an index. Use composition or aggregation?
20
Jan 2003Ron McFadyen 91.391320 Association Class Figure: 27.3: Business rule: a store has a different merchant ID for each service Association Class: a modeling element that is both an association and a class. It has attributes, operations, multiplicities, etc. It can participate in other relationships.
21
Jan 2003Ron McFadyen 91.391321 Top of Figure 27.4 (ignore rest of it) Many to many associations likely candidate for an Association Class Limitation : each company object can be associated to a person object only once. If we wanted to provide for a person to be employed by the same company more than once, we would need to promote Employment to be a regular class. How do we model this?
22
Jan 2003Ron McFadyen 91.391322 Reflexive Association An association involving the same class more than once. marries Person 1 1 comprises Part * *
23
Jan 2003Ron McFadyen 91.391323 Figure 27.11 Contrasting two models Can be very accurate: one person plays more than one role More difficult to implement: may need to mutate an object from one class to another
24
Jan 2003Ron McFadyen 91.391324 Packages Packages are used to organize model elements. Figures 27.21 shows the POS Domain package comprising the Payments, Product, etc. packages 27.22 the core package 27.23 the payments package … name
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.