Download presentation
Presentation is loading. Please wait.
Published byNoel Murphy Modified over 9 years ago
1
SWE © Solomon Seifu 2010 1 ELABORATION
2
SWE © Solomon Seifu 2010 2 Lesson 11 Subsystem Design
3
SWE © Solomon Seifu 2010 3 Requirements Analyst ArchitectDesigner Requirements Analysis Architecture Analysis Use Case Analysis Architecture Design Use Case Design Subsystem Design Class Design
4
SWE © Solomon Seifu 2010 4 SWE: Elaboration - Subsystem Design (Objectives) The main goal of a subsystem is to encapsulate behavior. When the subsystem's clients (which are outside the subsystem) request the subsystem to perform a service, they should not be connected directly to the implementation of that service (which is inside the subsystem) Instead, the clients should access the subsystem only through an interface that is also on the outside
5
SWE © Solomon Seifu 2010 SWE: Elaboration - Subsystem Design (Objectives) To define the behaviors specified in the subsystem's interfaces in terms of collaborations of contained design elements and external subsystems & interfaces To document the internal structure of the subsystem 5
6
SWE © Solomon Seifu 2010 SWE: Elaboration - Subsystem Design (Objectives) (Cont.) To define realizations between the subsystem's interfaces and contained classes To determine the dependencies upon other subsystems 6
7
SWE © Solomon Seifu 2010 7 SWE: Elaboration - Subsystem Design (Objectives) (Cont.) To define the behaviors specified in the subsystem's interfaces in terms of collaborations of contained classes To document the internal structure of the subsystem To define realizations between the subsystem's interfaces and contained classes To determine the dependencies upon other subsystems
8
SWE © Solomon Seifu 2010 SWE: Elaboration - Subsystem Design (Activities) Create a subsystem context diagram for all subsystem you have in your system. For example: Presentation BL (Business Logic) DAL (Data Access) Show collaborations of subsystems using subsystem context diagram Create VOPC for each subsystem
9
SWE © Solomon Seifu 2010 9 SWE: Elaboration - Subsystem Design (What is a Subsystem?) A subsystem is a cross between a package and a class It behaves like a package in that it groups other model elements, but it also behaves like a class because it has a specified behavior A component is a subsystem in UML
10
SWE © Solomon Seifu 2010 10 SWE: Elaboration - Subsystem Design (What is a Subsystem?) (Cont.) Subsystems have an external view (what is known to the outside world) and an internal view (what is known only to the subsystem) The difference between a subsystem and a package is that, for a package, a client asks some element inside the package to fulfill a behavior; for a subsystem, a client asks the subsystem itself to fulfill the behavior
11
SWE © Solomon Seifu 2010 11 SWE: Elaboration - Subsystem Design (What is a Subsystem?) (Cont.) In UML, a subsystem is modeled as a package with the stereotype subsystem. The operations of the subsystem are shown in the one or more interface(s) that the subsystem realizes A useful convention is to have interface names start with a capital "I“. Also, if there is only one interface on the subsystem, it can be named ISubsystemName
12
SWE © Solomon Seifu 2010 12 SWE: Elaboration - Subsystem Design (Canonical & Elided Forms)
13
SWE © Solomon Seifu 2010 13 SWE: Elaboration - Subsystem Design (Internal View)
14
SWE © Solomon Seifu 2010 SWE: Elaboration - Subsystem Design (Combined View [Internal & External])
15
SWE © Solomon Seifu 2010 15 SWE: Elaboration - Subsystem Design (What is a Subsystem? [Components]) Subsystem consists of Interfaces & Facades The subsystems interface defines all responsibilities The interface is external to the system The Façade realizes the subsystem interfaces
16
SWE © Solomon Seifu 2010 16 SWE: Elaboration - Subsystem Design (Architectural Benefits) Insulation from Change Dynamic Replacement Abstraction Reuse Parallel Development
17
SWE © Solomon Seifu 2010 17 SWE: Elaboration - Subsystem Design (Architectural Benefits [Replaceable Implementation])
18
SWE © Solomon Seifu 2010 18 SWE: Elaboration - Subsystem Design (Architectural Benefits [Delay of Detailed Design])
19
SWE © Solomon Seifu 2010 19 SWE: Elaboration - Subsystem Design (Comparison with Other Activities) (Cont.) In use case analysis we have identified analysis classes from the perspective of the problem domain In architecture design we determined the subsystem interfaces and dependencies In use case design we refine our use case realizations taking into account technology concerns, business rules and implementation platform In subsystem design we develop the internals (interfaces and facades)
20
SWE © Solomon Seifu 2010 20 SWE: Elaboration - Subsystem Design (Subsystem Context Diagram) For each interface operation: Identify existing or new classes (and/or subsystems) that realize the interface operation Incorporate applicable mechanisms (persistence, distribution, etc) Create one or more interaction diagram(s) Draw the subsystem context diagram The subsystem context diagram relates each subsystem with other subsystems
21
SWE © Solomon Seifu 2010 SWE: Elaboration – ( Subsystem Design Subsystem Context Diagram) (Cont.) A subsystem context class diagram should contain the following: Subsystem Interface(s) Associated realizes relationship(s), and Any subsystem relationships (both to/from the subsystem from/to other design elements)
22
SWE © Solomon Seifu 2010 SWE: Elaboration - Subsystem Design: Subsystem Context Diagram (Presentation Subsystem Machine Control Example) Presentation IPresentation +authenticate(id: String, password: String) GuiFormPresentationFacade PresentationController authenticate() LoginForm UserMgmtForm MachineMgmtForm MachineControlForm BL
23
SWE © Solomon Seifu 2010 23 SWE: Elaboration - Subsystem Design (A Pattern for design and Implementation) Interface implemented by a Façade A Façade is a design pattern which encapsulates a subsystem Hides internal classes Forwards requests for services to internal classes Frequently, the façade will contain a Mediator Pattern or Controller Pattern Similar to VOPC controllers Mediator responsible for internal “workflow” of subsystem
24
SWE © Solomon Seifu 2010 24 SWE: Elaboration - Subsystem Design (Guidelines [Abstraction and Encapsulation]) A subsystem should be As independent as possible from other parts of the system A replaceable element in the model Insulated from change in other parts of the system Able to evolve independently of other parts of the system Should not expose any of its contents, only interfaces Should only depend on interfaces of other model elements
25
SWE © Solomon Seifu 2010 25 The purpose of subsystem design is to develop the internal operations of subsystems Subsystems are a major means of decomposing large systems Subsystems promote parallel development and reuse The steps for designing the internal behavior of a subsystem are very similar to the steps of use case analysis and use case design SWE: Elaboration - Subsystem Design (Summary)
26
SWE © Solomon Seifu 2010 26 Interaction diagrams should be created for all of the important subsystem operations (optional for this course but good idea for real projects) Class diagrams should be created for the participating subsystem elements, and also for subsystem dependencies Subsystems are often implemented as software components and follow a general pattern such as Enterprise Component SWE: Elaboration - Subsystem Design (Summary) (Cont.)
27
SWE © Solomon Seifu 2010 27 Subsystem Design Document
28
SWE © Solomon Seifu 2010 Subsystem Design Document Example
29
SWE © Solomon Seifu 2010 29 Subsystem Design Exercise
30
SWE © Solomon Seifu 2010 30 Subsystem Design Exercise Answer
31
SWE © Solomon Seifu 2010 SWE: Elaboration - Subsystem Design (Wholeness) A subsystem is a cross between a package and a class. It behaves like a package in that it groups other model elements. But it differs from a package in that it exposes only APIs through its Service Access Point (SAP) Communication between subsystem must be done using application programming interfaces (APIs), which are externally exposed to other systems The APIs are realized by a façade which is internal to a given subsystem
32
SWE © Solomon Seifu 2010 SWE: Elaboration - Subsystem Design (Wholeness) (Cont.) A subsystem context diagram for a given subsystem provides a given subsystem to other subsystems in the system A subsystem context diagram for a given subsystem emphasizes its own context while showing its relationship with other subsystems A subsystem context diagram required for each subsystem of a given system
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.