Example:Incorporating Subsystem Interfaces Analysis Classes Design Elements <<subsystem>> <<boundary>> Billing System BillingSystem //submit bill() IBillingSystem submitBill(forTuition Double,forStudent Student) <<boundary>> <<subsystem>> CourseCatalogSystem Course Catalog System //get course offerings() ICourseCatalogSystem getCourseOfferings(forSemester Semester,forStudent Student):CourseOfferingList initialize0 Analysis classes are mapped directly to design classes Object Oriented Analysis and Design 11
Object Oriented Analysis and Design 11 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>> Course Catalog System <<subsystem>> ICourseCatalogSystem getCourseOfferings(forSemester : Semester, forStudent : Student) : CourseOfferingList initialize()
Example:Incorporating Subsystem Interfaces(Before) Analysis class to be replaced with an interface RegisterForCoursesForm RegistrationController CourseCatalogSystem Schedule Student Student 1.∥create schedule()i 1.1./get course offerings() Student wishes to create a new 1.1.1./get course offeririgs(forSemester) schedule 1.2./display course offerings() A list of the available course offerings for this semester are displayed A blank schedule 1.3./display blank schedule() is displayed for the students to select offerings 2./select 4 primary and 2 alternate offerings() 2.1 create schedule with offerings() 2.1.1./create with offerings() 2.1.2./add schedule(Schedule) At this point,the Submit Schedule subflowis executed Object Oriented Analysis and Design 12
Object Oriented Analysis and Design 12 Example: Incorporating Subsystem Interfaces (Before) Analysis class to be replaced with an interface : 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( ) 2. // select 4 primary and 2 alternate offerings( ) 2.1. // create schedule with offerings( ) 2.1.1. // create with offerings( ) A blank schedule is displayed for the students to select offerings 2.1.2. // add schedule(Schedule) At this point, the Submit Schedule subflow is executed A list of the available course offerings for this semester are displayed