EXample: Analysis-Class-To-Design-Element Map Analysis class Design Element Course Catalog System Course Catalog System Subsystem Billing System Billing System Subsystem All other analysis classes map directly to design classes 匡E喜
16 Analysis Class Design Element CourseCatalogSystem BillingSystem All other analysis classes map directly to design classes CourseCatalogSystem Subsystem BillingSystem Subsystem Example: Analysis-Class-To-Design-Element Map
Modeling Convention: Subsystems and Interfaces Course Catalog System I Course Catalog System initialize o getcourseofferings o Interfaces start with an " <<interface>> <<subsystem>> COurse Catalog System Course Catalog System getCourseOfferings O initialize o initialize o getCourseOfferings o 匡E喜
17 Interfaces start with an “I” Modeling Convention: Subsystems and Interfaces CourseCatalogSystem <<subsystem>> ICourseCatalogSystem + initialize () + getCourseOfferings () CourseCatalogSystem <<subsystem>> + initialize () + getCourseOfferings () ICourseCatalogSystem <<interface>> + getCourseOfferings () + initialize ()
EXample: Subsystem Context: Course CatalogSystem <<control>> <<control>> Required interface RegistrationController CloseRegistrationController defined +l/is registration open? 0 delete Current Schedule +l close registration submitscheduleo save Schedule getCourseOfferingso +courseCatalogv 1 setsessiono +<<class>> newo <<Interface>> COurse CatalogSystem getstudento getCourseOfferings( for Semester Semester) initialize o Course Offeringlist Provided interface newo defined addo ≤< subsystem> Course Catalog System initialize o getcourseofferings o 匡E喜
18 Example: Subsystem Context: CourseCatalogSystem Provided interface defined ICourseCatalogSystem <<Interface>> CloseRegistrationController + // is registration open?() + // close registration() <<control>> 0..1 +courseCatalog CourseCatalogSystem <<subsystem>> + initialize () + getCourseOfferings () + getCourseOfferings ( for Semester: Semester ) + initialize () RegistrationController + getCurrentSchedule() + deleteCurrentSchedule() + submitSchedule() + saveSchedule() + getCourseOfferings() + setSession() + <<class>> new() + getStudent() <<control>> CourseOfferingList + new() + add() 1 Required interface defined
EXample: Subsystem Context: Billing System <<control>> CloseRegistration Controller +// is registration open?0 +∥ close registration biller <Interface> BIlling System ≤≤ entity> Student submit Bill(for Student Student, for Tuition: double △ Billing System submit Bill(for Student: Student, for Tuition double) 匡E喜
19 Example: Subsystem Context: Billing System IBillingSystem + submitBill(forStudent : Student, forTuition : double) <<Interface>> 1 0..1 + Biller 1 Student <<entity>> CloseRegistrationController + // is registration open?() + // close registration() <<control>> BillingSystem <<subsystem>> + submitBill(forStudent : Student, forTuition : double)
Identify Design Elements Steps 4 Identify classes and subsystems Identify subsystem interfaces ★◆ Identify reuse opportunities 4 Update the organization of the design Model ◆ Checkpoints 匡E喜
20 Identify Design Elements Steps Identify classes and subsystems Identify subsystem interfaces Identify reuse opportunities Update the organization of the Design Model Checkpoints