Lehrstuhl für Angewandte Softwaretechnik
Chair for Applied Software Engineering

Chapter 7: System Design: Addressing Design Goals

 

 impossible ridge

 

Abstract

During system design, we identify design goals, decompose the system into subsystems, and refine the subsystem decomposition until all design goals are addressed. In the previous chapter, we described the concepts of design goals and system decomposition. In this chapter, we introduce the system design activities that address the design goals. In particular, we examine

 

  • Selection of off-the-shelf and legacy components. Off-the-shelf or legacy components realize specific subsystems more economically. The initial subsystem decomposition is adjusted to accommodate them.
  • Mapping of subsystem to hardware. When the system is deployed on several nodes, additional subsystems are required for addressing reliability or performance issues.
  • Design of a persistent data management infrastructure. Managing the states that outlives a single execution of the system has an impact on overall system performance and leads to the identification of one or more storage subsystems.
  • Specification of an access control policy. Shared objects are protected so that user access to them is controlled. Access control impacts how objects are distributed within subsystems.
  • Design of the global control flow. Determining the sequence of operations impacts the interface of the subsystems.
  • Handling of boundary conditions. Once all subsystems have been identified, developers decide on the order in which individual components are started and shutdown.

We then describe the management issues related to system design, such as documentation, responsibilities, and communication. We conclude this chapter by discussing in more detail system design issues and trade-offs using the ARENA case study.