System design is the transformation of an analysis model into a system design model.
During system
design, developers define the design goals of the project and decompose the system into smaller
subsystems that can be realized by individual teams.
The result of system design is a model that includes a subsystem decomposition and a clear description
of each of these strategies.
System design is decomposed into several activities, each addressing part of the overall problem of
decomposing the system:
Identify design goals. Developers identify and prioritize the qualities of the system that they should
optimize. • Design the initial subsystem decomposition. Developers decompose the system into smaller
parts based on the use case and analysis models. Developers use standard architectural styles as a
starting point during this activity. • Refine the subsystem decomposition to address the design goals.
The initial decomposition usually does not satisfy all design goals. Developers refine it until all goals are
satisfied
System design is the first step in this process and focuses on decomposing the system into manageable
parts. During requirements elicitation and analysis, we concentrated on the purpose and the
functionality of the system. During system design, we focus on the processes, data structures, and
software and hardware components necessary to implement it.
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,
dependencies among subsystems, subsystem mapping to hardware, and major policy decisions such as
control flow, access control, and data storage
• boundary use cases, describing the system configuration, startup, shutdown, and exception handling
issues.