Chapter 07
Chapter 07
Goals
Chapter 7
System Design:
Addressing Design
Overview
System Design I
Overview of System Design
Design Goals
Subsystem Decomposition
Architectural Styles
System Design II
• Hardware/Software Mapping
• Persistent Data Management
• Global Resource Handling and Access Control
• Software Control
• Boundary Conditions
• Deployment Diagram:
• Illustrates the distribution of components at run-time.
• Deployment diagrams use nodes and connections to
depict the physical resources in the system.
• Component Diagram:
• Illustrates dependencies between components at
design time, compilation time and runtime
reservations
UML!
Component!
update
UML Interface!
UML!
Interface!
Dependency !
(between nodes)!
Rule-based
Logic Programming
Control
Decentralized Centralized
Control Control
Event-based Procedural
Control Control.
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java 24
Centralized vs. Decentralized Designs
• Centralized Design
• One control object or subsystem ("spider") controls
everything
• Pro: Change in the control structure is very easy
• Con: The single control object is a possible
performance bottleneck
• Decentralized Design
• Not a single object is in control, control is distributed;
That means, there is more than one control object
• Con: The responsibility is spread out
• Pro: Fits nicely into object-oriented development
• Initialization
• The system is brought from a non-initialized state to
steady-state
• Termination
• Resources are cleaned up and other systems are
notified upon termination
• Failure
• Possible failures: Bugs, errors, external problems
• Good system design foresees fatal failures and
provides mechanisms to deal with them.
• Initialization
• What data need to be accessed at startup time?
• What services have to registered?
• What does the user interface do at start up time?
• Termination
• Are single subsystems allowed to terminate?
• Are subsystems notified if a single subsystem
terminates?
• How are updates communicated to the database?
• Failure
• How does the system behave when a node or
communication link fails?
• How does the system recover from failure?.
<<include>>
StartServer
Server <<include>>
Administrator
ManageServer
ShutdownServer
<<include>>
ConfigureServer