ABSTRACT

Extending the IEEE de¥nition, detailed design is both the process of re¥ning the soƒ- ware architecture to reach a point where construction can begin and the result of such process.  e detailed design activity is the last major design e¨ort before the soƒware construction phase. A fundamental di¨erence between architectural and detailed design is that whereas the former is concerned mostly with de¥ning the major components of the system and their interfaces, the latter is concerned with how these components realize their assigned responsibility.  is suggests that architectural designs employ a holistic approach to soƒware system design, which emphasizes system quality, while detailed design focuses on particular components within the system, which emphasizes the functional aspects of a system.  is fundamental di¨erence is essential in determining what and how work is performed during these activities. For example, whereas the component notation provides an appropriate mechanism for designing logical architectures, their level of abstraction is inappropriate for modeling detailed design elements.  erefore, in object-oriented systems, classes and interfaces become the major unit of design work.  is, in turn, in’uences the type of analyses performed during both activities.  e modeling and analyses that occur during architecture help answer the questions of what needs to be developed, and by themselves these models and analyses cannot be used to build directly a working soƒware system. Detailed design goes deep into each component to de¥ne its internal structure and behavioral capabilities, and the resulting design leads to natural and ešcient construction of soƒware. Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, and Sta¨ord (2002, p. 5) di¨erentiate between architectural and detailed design as follows:

Detailed design is closely related to architecture and construction; therefore, successful designers (during detailed design) are required to have a full understanding of the system’s requirements and architecture, design strategy, programming language, and methods and processes for soƒware quality control. Detailed designers must also work closely with stakeholders (e.g., hardware team, test team, quality team, management) to provide designs that accommodate multiple concerns appropriate to the detailed design activity.  is requires a holistic vision-di¨erent from that of the soƒware architecture designer-to envision detailed designs and how they relate to requirements, architecture, and construction, as presented in Figure 5.1.