Architecture Design and Detailed Design

Bread Crumbs: Home - SW_Dev_Proc - Arch & Det Des

Architecture design and detailed design are two fundamental facets of system design. Architecture design is more abstract than detailed design and it specifies the fundamental structure and patterns of the system under development. Detailed design focuses on all of the implementation details necessary to implement the architecture that is specified.

The ultimate purpose of Architectural Design and Detailed Design is to create a system that fulfills a set of valid requirements. Part of this process involves creation of the interface design which is very important to establish as early as possible. This allows detailed test plans to be completed and for test code implementation to begin. One caveat associated with an early specification of the interface design is that it is very painful to change the interface once it has been agreed upon by the development team. Changing the interface design downstream will have a huge impact on the project by forcing test plans, test code, prototype code, detailed designs, and perhaps even product code to be reworked. The further downstream in the software development process an interface change takes place, the more severe the effect of the change.

Earlier in this software development process, the system models were created to obtain a better understanding of the problem space. At this point in the development process, the activities are focused entirely on the solution space. The transition from "what is wanted" to "how it will be accomplished" has now taken place. This means that the artifacts generated during this phase of the software development process will require much detail and precision. The artifacts produced must trace to the requirements specified earlier in the process so that accuracy can be assured. We must now build the correct thing correctly.

Architecture Design and Detailed Design Activities PNG
The architecture design of the system will have a large impact on the system's ability to fulfill both functional and non-functional requirements. The correct design patterns, mechanisms, and technology must be specified in the design of the architecture. Interface design of the system needs to stabilize very early in the development process in order to begin creating the stubbed-out function tests that call the API functions that are part of the system's external interface (V-Development). Detailed design of the system is the last design activity before implementation begins. The hardest design problems must be addressed by the detailed design or the design is not complete. The detailed design is still an abstraction as compared to source code, but should be detailed enough to ensure that translation to source is a precise mapping instead of a rough interpretation.

No part of this work should be produced or used without the permission of the authors: Michael Turner and Dr. Sharon A White.