Candidate Subsystems Analysis classes which may evolve into subsystems: Classes providing complex services and/or utilities ■ Boundary classes (user interfaces and external system interfaces) ◆ Existing products or external systems in the design (e.g., components): ■ Communication software <<subsystem>> Subsystem A ■ Database access support Types and data structures <<subsystem>> Subsystem B Common utilities <<subsystem>> Subsystem C Application-specific products Object Oriented Analysis and Design 11
Object Oriented Analysis and Design 11 Analysis classes which may evolve into subsystems: ▪ Classes providing complex services and/or utilities ▪ Boundary classes (user interfaces and external system interfaces) Existing products or external systems in the design (e.g., components): ▪ Communication software ▪ Database access support ▪ Types and data structures ▪ Common utilities ▪ Application-specific products Candidate Subsystems Subsystem A <<subsystem>> Subsystem B <<subsystem>> Subsystem C <<subsystem>>
Identifying Subsystems “Superma nClass” ClassA YO <<Interface>> <<subsystem>> Subsystem K 8 Object Oriented Analysis and Design 12
Object Oriented Analysis and Design 12 Identifying Subsystems ClassA Y() Z() Y() Z() <<Interface>> Subsystem K <<subsystem>> “Superma nClass
Modeling Convention:Subsystems and Interfaces <<subsystem>>package <<subsystem>> CourseCatalogSystem ICourseCatalogSystem Interfaces start <<subsystem proxy>>class with an“r <<subsystem proxy>> ICourseCatalogSystem CourseCatalogSystem getCourseOfferings(forSemester Semester,forStudent Student):CourseOfferingList initialize0 getCourseOfferings() initialize() Object Oriented Analysis and Design 13
Object Oriented Analysis and Design 13 Interfaces start with an “I” <<subsystem>> package <<subsystem proxy>> class Modeling Convention: Subsystems and Interfaces CourseCatalogSystem <<subsystem>> ICourseCatalogSystem CourseCatalogSystem getCourseOfferings() initialize() <<subsystem proxy>> ICourseCatalogSystem getCourseOfferings(forSemester : Semester, forStudent : Student) : CourseOfferingList initialize()
Outline Identify classes and subsystems Update the organization of the Design Model Describe Distribution Runtime Architecture ClassB ClassA Classcl ClassC ClassE ClassD 8 Object Oriented Analysis and Design 14
Object Oriented Analysis and Design 14 ClassB Y() Z() ClassA Y() Z() Outline ClassC Y() Z() ClassD Y() Z() ClassC Y() Z() ClassE Y() Z() Identify classes and subsystems Update the organization of the Design Model Describe Distribution Runtime Architecture
Review:Typical Layering Approach Specific functionality Distinct application subsystems that make Application Subsystems up an application -contains the value adding software developed by the organization. Business specific-contains a number of Business-specific reusable subsystems specific to the type of business. Middleware-offers subsystems for utility Middleware classes and platform-independent services for distributed object computing in heterogeneous environments and so on. System software-contains the software for System Software the actual infrastructure such as operating systems,interfaces to specific hardware, device drivers and so on. General functionality Object Oriented Analysis and Design 15
Object Oriented Analysis and Design 15 Review: Typical Layering Approach General functionality Specific functionality Distinct application subsystems that make up an application – contains the value adding software developed by the organization. Business specific – contains a number of reusable subsystems specific to the type of business. Middleware – offers subsystems for utility classes and platform-independent services for distributed object computing in heterogeneous environments and so on. System software – contains the software for the actual infrastructure such as operating systems, interfaces to specific hardware, device drivers and so on. Application Subsystems Business-specific Middleware System Software