Architecture Design Process

Posted feng9exe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Architecture Design Process相关的知识,希望对你有一定的参考价值。

Architecture Design Process

The architecture design process focuses on the decomposition of a system into different components and their interactions to satisfy functional and nonfunctional requirements. The key inputs to software architecture design are ?

  • The requirements produced by the analysis tasks.

  • The hardware architecture (the software architect in turn provides requirements to the system architect, who configures the hardware architecture).

The result or output of the architecture design process is an architectural description. The basic architecture design process is composed of the following steps ?

Understand the Problem

  • This is the most crucial step because it affects the quality of the design that follows.

  • Without a clear understanding of the problem, it is not possible to create an effective solution.

  • Many software projects and products are considered failures because they did not actually solve a valid business problem or have a recognizable return on investment (ROI).

Identify Design Elements and their Relationships

  • In this phase, build a baseline for defining the boundaries and context of the system.

  • Decomposition of the system into its main components based on functional requirements. The decomposition can be modeled using a design structure matrix (DSM), which shows the dependencies between design elements without specifying the granularity of the elements.

  • In this step, the first validation of the architecture is done by describing a number of system instances and this step is referred as functionality based architectural design.

Evaluate the Architecture Design

  • Each quality attribute is given an estimate so in order to gather qualitative measures or quantitative data, the design is evaluated.

  • It involves evaluating the architecture for conformance to architectural quality attributes requirements.

  • If all estimated quality attributes are as per the required standard, the architectural design process is finished.

  • If not, the third phase of software architecture design is entered: architecture transformation. If the observed quality attribute does not meet its requirements, then a new design must be created.

Transform the Architecture Design

  • This step is performed after an evaluation of the architectural design. The architectural design must be changed until it completely satisfies the quality attribute requirements.

  • It is concerned with selecting design solutions to improve the quality attributes while preserving the domain functionality.

  • A design is transformed by applying design operators, styles, or patterns. For transformation, take the existing design and apply design operator such as decomposition, replication, compression, abstraction, and resource sharing.

  • The design is again evaluated and the same process is repeated multiple times if necessary and even performed recursively.

  • The transformations (i.e. quality attribute optimizing solutions) generally improve one or some quality attributes while they affect others negatively

Key Architecture Principles

Following are the key principles to be considered while designing an architecture ?

Build to Change Instead of Building to Last

Consider how the application may need to change over time to address new requirements and challenges, and build in the flexibility to support this.

Reduce Risk and Model to Analyze

Use design tools, visualizations, modeling systems such as UML to capture requirements and design decisions. The impacts can also be analyzed. Do not formalize the model to the extent that it suppresses the capability to iterate and adapt the design easily.

 

https://www.tutorialspoint.com/software_architecture_design/key_principles.htm

以上是关于Architecture Design Process的主要内容,如果未能解决你的问题,请参考以下文章

Netflix System Design- Backend Architecture

Difference between Software Architecture & Design

(You Can Hack It, Architecture and Design) => { Dependency Injection; }

Software--Architecture--Design DataAccess 数据访问

(You Can Hack It, Architecture and Design) => { Dependency Injection; MEF sample; }

CS 350 Software Design / SE 310 Software Architecture