Presentation is loading. Please wait.

Presentation is loading. Please wait.

OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 1 R Subsystem Design.

Similar presentations


Presentation on theme: "OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 1 R Subsystem Design."— Presentation transcript:

1 OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 1 R Subsystem Design

2 OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 2 R Objectives: Subsystem Design  Understand the purpose of Subsystem Design and where in the lifecycle it is performed  Define the behaviors specified in the subsystem's interfaces in terms of collaborations of contained classes  Document the internal structure of the subsystem  Determine the dependencies upon elements external to the subsystem

3 OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 3 R So Where Are We? Architect Architectural Analysis Architectural Design Describe Concurrency Describe Distribution Review the Architecture Database Design Use-Case Analysis Subsystem Design Class Design Use-Case Design Review the Design Designer Database Designer Design Reviewer Architecture Reviewer

4 OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 4 R Subsystem Design Overview Subsystem Design Use-Case Realization Use Case Realization Design Subsystems and Interfaces Design Classes

5 OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 5 R Subsystem Design Steps  Distribute Subsystem behavior to Subsystem Elements  Document Subsystem Elements  Describe Subsystem Dependencies

6 OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 6 R Key Concepts : Interface and Subsystem  What is an interface?  Defines a set of behaviors  What is a subsystem?  Contains other model elements and has behavior  Realizes one or more interfaces > Finance System Financial Transaction FinancialTransaction > Realizes relationship > Finance System

7 OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 7 R Subsystem Design Steps  Distribute Subsystem behavior to Subsystem Elements  Document Subsystem Elements  Describe Subsystem Dependencies

8 OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 8 R Subsystem Responsibilities  Subsystem responsibilities defined by interface operations  Interface operations may be realized by  Internal class operations  Internal subsystem operations

9 OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 9 R Distributing Subsystem Responsibilities  Identify or reuse existing classes and/or subsystems  Allocate subsystem responsibilities to classes and/or subsystems  Incorporate the applicable mechanisms (e.g., persistence, distribution, etc.)  Document collaborations with “interface realization” diagrams  1 or more sequence diagrams per interface operation  Revisit Architectural Design  Adjust subsystem boundaries and/or dependencies, as needed

10 OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 10 R Example: CourseCatalog Subsystem Context Subsystem Interface : RemoteRegistration Controller : MainStudent Form : Maintain ScheduleForm : Registration Controller : NamingClientSchedule : Schedule : Student 2: open( ) 3: new(SecureUser) 5: setSession(SecureUser) 4: lookup("RemoteRegistrationController") 1: registerForCourses( ) 6: selectCurriculum( ) 7: getOfferings(curriculum) 8: getOfferings(curriculum) 10: displayOfferings( ) 11: new(Student) : ICourse Catalog 9: getOfferings(curriculum, semester) 12: display(Schedule) ClientServer

11 OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 11 R Example: Local CourseCatalog Subsystem Interaction : Course Offering CourseCatalog Client : CourseCatalog : DBCourse Offering : RDBMSTransaction : sql:CourseOffering List Do until fetch returns Not Found status Get attribute values from raw data 1: getCourseOfferings(string) 5: getCourseOfferings(string) 9: parseResults( ) 10: new(offeringId, number, startTime, endTime, days, courseId) 2: new 3: start( ) 4: startTrans( ) 6: bind() 7: execsql(String) 8: fetch( ) 11: add (CourseOffering) 12: commit() RDBMS Retrieve 13: entTrans( ) The string represent s some criteria. Sometimes a more robust solution with a query object is used. 6: new()

12 OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 12 R Subsystem Design Steps  Distribute Subsystem behavior to Subsystem Elements  Document Subsystem Elements  Describe Subsystem Dependencies  Checkpoints: Design Subsystems

13 OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 13 R Documenting the Subsystem Elements CourseCatalog + getOfferings() > sql + bind() + execsql() + startTrans() + commit() + fetch() + endTrans() (from RelationalDBMS) > RDBMSTransaction + start() + commit() + rollback() + new() (from RelationalDBMS) DBCourseOffering + getCourseOfferings() + parseResults() 11 CourseOffering + getCourseId() + addStudent() + new() + getNumber() + getStartTime() + getEndTime() + getDays() + getNumStudents() + removeStudent() + update() (from University Artifacts) > 0..* 1 CourseOfferingList + new() + add() (from University Artifacts) List (from Base Reuse) > ICourseCatalog 1 0..*

14 OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 14 R Subsystem Design Steps  Distribute Subsystem behavior to Subsystem Elements  Document Subsystem Elements  Describe Subsystem Dependencies

15 OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 15 R Describing Subsystem Dependencies  Model dependency on subsystem as dependency on subsystem interface  Ability to “plug and play” subsystems  Subsystem design freedom  Express any required behavior in an interface  Eliminate  Dependencies on specific model elements within a subsystem  Circular dependencies

16 OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 16 R Client Support > Server Support > More flexible Server Client Support > Server Support > Server > Client (from Client Support) Describing Subsystem Dependencies  Subsystem layering using direct dependency  Subsystem layering using interface dependency Not recommended

17 OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 17 R Example: Describing Subsystem Dependencies ICourseCatalog RegistrationCourseCatalog > University Artifacts RelationalDBMS


Download ppt "OOAD Using the UML - Subsystem Design, v 4.0 Copyright  1994-1998 Rational Software, all rights reserved 1 R Subsystem Design."

Similar presentations


Ads by Google