SEG-2106 "Software Construction"

Implementation Design Choices

(based on the book by Braek et al.: "Engineering Real Time Systems", Chapter 9 - this book considers co-design : system design choices concerning hardware and software design)

1. What is "Implementation Design" ?

 The scope of implementation design is shown on the following diagram:

Example of the Access Control System - Question: "Which part should be implemented in hardware, which in software ?"

The following two diagrams show (a) the simple case (where the implementation has the same structure as the functional specification), and (b) the case where the design of the implementation leads us to revise the SDL specification (called "SDL description" of the system) in order to include functional aspects that are pertinant for the implementation or to adapt the design to the implementation constraints (in particular, the non-functional requirements).

Steps during the implementation design phase

  1. Choice ("trade-off") between hardware and software
  2. Definition of the hardware architecture
  3. Definition of the software architecture
  4. Revision and refinement of the functional specification

2. Aspects that are ignored by the functional specification

There are two reasons for differences between the functional specification and the description of the implementation elaborated during the implementation design phase:

2.1 Execution time

2.2 Imperfections of hardware and software: errors, failures, background noise, etc.

2.3 Physical distribution

2.4 Limited ressources

2.5 Security

2.6 Requirements concerning system operations and maintenance

2.7 Development costs and hardware production cost

2.8 Reutilization of existing components

The application of these design considerations in the case of the example Access Control System is discussed in the book by Braek at al. in Section 9.4.

Note: The book by Braek et al. uses certain graphical notations for describing hardware and software architectures. These notations are not generally accepted in the community; you do not need to learn them.


Initially written: March 22, 2003; revised; translated into English: March 2008; last revision: 23 March 2015