EXample: University Artifacts Package: Associations ≤≤ entity>> <<entity>> Schedule Student primary Courses alternate Courses ≤≤en instructor ≤≤ entity>> <<entity>> 0. Professor CourseOffering Course Prerequisites Course OfferingList 匡E喜
11 Student <<entity>> Professor <<entity>> Schedule <<entity>> CourseOffering <<entity>> CourseOfferingList 1 Prerequisites 0..* Course <<entity>> 0..* 1 instructor 0..1 0..* 0..* 0..* 0..* 0..4 primaryCourses 0..* 0..2 alternateCourses 0..* 1 Example: University Artifacts Package: Associations
EXample: EXternal System Interfaces Package <<Interface>> <<Interface>> BIlling System COurse Catalog System 匡E喜
12 IBillingSystem <<Interface>> ICourseCatalogSystem <<Interface>> Example: External System Interfaces Package
Review Subsystems and Interfaces Realizes one or more interfaces that define its behavior <<interface>> Interface Name <<subsystem>> Subsystem Name Realization(Canonical form) Interface Subsystem <<subsystem>> Interface Name Subsystem Name Realization(Elided form) 匡E喜
13 Realizes one or more interfaces that define its behavior Subsystem Review: Subsystems and Interfaces Interface Realization (Canonical form) Realization (Elided form) Interface Name Subsystem Name <<subsystem>> Interface Name <<interface>> Subsystem Name <<subsystem>>
Identify Design Elements Steps Identify classes and subsystems ★◆ Identify subsystem interfaces Identify reuse opportunities 4 Update the organization of the design Model ◆ Checkpoints 匡E喜
14 Identify Design Elements Steps Identify classes and subsystems Identify subsystem interfaces Identify reuse opportunities Update the organization of the Design Model Checkpoints
Example: Design Subsystems and Interfaces Analysis Design <<boundary>> Billing System Billing System /submit billo BIlling System <<boundary>> Course Catalog System Course Catalog System Iget course offerings COurse Catalog system getCourseOfferings(forSemester: Semester, forStudent: Student): CourseOffering List All other analysis classes map directly to design classes 匡E喜
15 All other analysis classes map directly to design classes. Analysis Design Example: Design Subsystems and Interfaces BillingSystem //submit bill() <<boundary>> Billing System <<subsystem>> IBillingSystem submitBill(forTuition : Double, forStudent : Student) CourseCatalogSystem //get course offerings() <<boundary>> Course Catalog System <<subsystem>> ICourseCatalogSystem getCourseOfferings(forSemester : Semester, forStudent : Student) : CourseOfferingList initialize()