Chapter No.6 System Design: Decomposing The System
Chapter No.6 System Design: Decomposing The System
6
System Design: Decomposing the System
6.2: An overview of system design
Analysis results in the requirements model described by the following
products:
• a set of non-functional requirements and constraints
• a use case model
• an object model
• a sequence diagram for each use case.
The analysis model describes the system completely from the actors’ point of
view and serves as the basis of communication between the client and the
developers.
Continue…..
The analysis model, however, does not contain information about the internal
structure of the system, its hardware configuration, or more generally, how
the system should be realized. System design is the first step in this direction.
System design results in the following products:
• design goals, describing the qualities of the system that developers should
optimize
• software architecture, describing the subsystem decomposition in terms of
subsystem responsibilities
• boundary use cases, describing the system configuration, start-up,
shutdown, and exception handling issues.
Continue…..
The design goals are derived from the non-functional requirements. Design
goals guide the decisions to be made by the developers when trade-offs are
needed. The subsystem decomposition constitutes the bulk of system design.
Developers divide the system into manageable pieces to deal with complexity
Relationship of system design with other
software engineering activities
6.3: System Design Concepts
6.3.1: Subsystems and Classes
6.3.2: Services and Subsystem Interfaces
6.3.3: Coupling and Cohesion
6.3.4: Layers and Partitions
6.3.5: Architectural Styles
6.3.1: Subsystems and Classes