Use-Case Design Steps Describe interaction among design objects Simplify sequence diagrams using subsystems Describe persistence-related 0 behavior Refine the flow of events description ◆ Unify classes and subsystems← H
6
Use-Case Design Steps ★◆ Describe interaction among design objects Simplify sequence diagrams using subsystems Describe persistence-related behavior Refine the flow of events description Unify classes and subsystems H
7
Representing Subsystems on a Sequence Diagram ◆| interfaces Represent any model element that realizes the interface No message should be drawn from the interface ◆ Subsystem Component Represents a specific subsystem Messages can be drawn from the subsystem Obiect A Interface Object B ObjectA Subsystem Object B Component 1: Message 1 Message 1 2:Me、sa,e2 2: Message 2 Invalid message Valid message E写喜
8 Representing Subsystems on a Sequence Diagram Interfaces Represent any model element that realizes the interface No message should be drawn from the interface Subsystem Component Represents a specific subsystem Messages can be drawn from the subsystem Object A Interface Object B 1: Message 1 2: Message 2 Object A Subsystem Component Object B 1: Message 1 2: Message 2 X Invalid message Valid message
EXample: Incorporating Subsystem Interfaces Analysis Classes Design Elements <<subsystem>> <<boundary>> Billing System Billing System /submit billo I System submit Bill(for Tuition: Double, for Student: Student) <<boundary>> Course Catalog System <<subsystem>> Course Catalog system get course offerings lCourse Catalog System get CourseOfferings(for Semester: Semester, for Student: Student): Course OfferingList All other analysis classes are mapped directly to design classes
9 All other analysis classes are mapped directly to design classes. Analysis Classes Design Elements Example: Incorporating Subsystem Interfaces BillingSystem //submit bill() <<boundary>> Billing System <<subsystem>> IBillingSystem submitBill(forTuition : Double, forStudent : Student) CourseCatalogSystem //get course offerings() <<boundary>> ICourseCatalogSystem getCourseOfferings(forSemester : Semester, forStudent : Student) : CourseOfferingList initialize() Course Catalog System <<subsystem>>
EXample: Incorporating Subsystems Before Analysis class to be replaced RegisterForCoursesForm: Registration Controller: Course Catalog System: Schedule Student Student 1.∥ create schedule 1.1.get course offerings() Student wishes to create a new 1.1.1.get course offerings(forSemester) schedule 1. 2. / display course offerings() A list of the available course offerings for this semester are displayed a blank schedule 1.3. /I display blank schedule() is displayed for the students to select oFFerings Select Offerings Submit Schedule
10 Example: Incorporating Subsystems (Before) Analysis class to be replaced : Student : RegisterForCoursesForm : RegistrationController : CourseCatalogSystem : Schedule : Student Student wishes to create a new schedule 1. // create schedule( ) 1.2. // display course offerings( ) 1.1. // get course offerings( ) 1.1.1. // get course offerings(forSemester) 1.3. // display blank schedule( ) A blank schedule is displayed for the students to select offerings A list of the available course offerings for this semester are displayed Select Offerings Submit Schedule ref ref