Software Architectural and Detailed Design Options

codeling Posts: 1109 Points: 4668
Posted: Friday, July 12, 2019 11:14:39 PM

The Software Architectural and Detailed Design activity transforms the software requirements to the system software architecture and software detailed design.

  • The elements of a software architecture are the main building blocks of a software project, typically subsystems, major components, modules, etc.
  • Detailed design refines the elements of the software architecture and provides a detailed specifications to the programmers responsible for the implementation of the software application.

Why software architectural and detailed design is Important? Investing effort in the design activity ensures that the proposed solution (e.g. software to be built) will have been given some thought prior to implementation (e.g., coding). Building something without designing it typically yields a solution that doesn't meet the requirements, is delivered late, exceeds the budget or is of poor quality.

The Software Architectural and Detailed Design activity produces a document termed the Software Design that enables stakeholders to understand the interactions in the software, and the tracing of design elements to the requirements. This provides a way to verify that each requirement has been addressed (e.g., design completeness). The Software Design is also used when maintaining software because it describes the components and their interfaces.


codeling Posts: 1109 Points: 4668
Posted: Friday, July 12, 2019 11:49:17 PM

Software Architectural Design – Describes the overall Software structure and behaviour:

  • Identifies architectural design stakeholders and their concerns
  • Identifies relevant architectural mechanisms (patterns, tactics, heuristics, rules of thumb, ...)
  • Identifies the types of views that are relevant to convey the software architecture, taking into consideration the stakeholders concerns and the various requirements (functional and non-functional)
  • Provides relevant software architectural views in various forms (diagrams, models, tables, plain text, ...)
  • Identifies and describes the main elements of the software architecture (subsystems, layers, modules) and their relationships
  • Identifies and describes the required software Components, their interfaces and the relationships among them
  • Describes rationale, provides any analysis used to produce the solution, identifies known risks and inconsistencies.


Detailed Software Design – includes details of the Components to facilitate their construction and testing within the programming environment:

  • Provides detailed design (could be represented as a prototype, flow chart, entity relationship diagram, pseudo code, etc.)
  • Provides format of input / output data
  • Provides specification of data storage needs
  • Establishes required naming conventions
  • Defines the format of required data structures
  • Defines the data fields and purpose of each required data element
  • Provides the specifications of the program structure
Users browsing this topic