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

原文地址:https://www.cnblogs.com/feng9exe/p/10252129.html

时间: 2024-07-31 21:35:59

Architecture Design Process的相关文章

Agile software architecture design document style..( sketches and no UMLs)

http://www.infoq.com/articles/agile-software-architecture-sketches-NoUML If you're working in an agile software development team at the moment, take a look around at your environment. Whether it's physical or virtual, there's likely to be a story wal

[Architecture Design] 跨平台架构设计

[Architecture Design] 跨平台架构设计 跨越平台 Productivity Future Vision 2011 在开始谈跨平台架构设计之前,请大家先看看上面这段影片,影片内容是微软在2011年所描绘的未来生活蓝图.在观看的过程中,请大家以「软件开发人员」的角度来思考,想想软件开发人员在其中扮演甚么样的角色. 「Productivity Future Vision 2011」 这段影片里面所描绘未来产品,把时间轴拉到现在来看,其实有许多概念已经悄悄融入我们的生活之中.像是影片

[Architecture Design] 3-Layer基础架构

[Architecture Design] 3-Layer基础架构 三层式体系结构 只要是软件从业人员,不管是不是本科系出身的,相信对于三层式体系结构一定都不陌生.在三层式体系结构中,将软件开发所产出的程序代码,依照不同用途归类为:系统表示层.领域逻辑层.数据存取层.其中: 系统表示层 (Presentation Layer),用来归类「提供操作接口」的相关程序代码.例如:提供Textbox接受用户输入地址数据.透过MessageBox通知用户处理结果.甚至是提供Web API给远程系统使用,这

Three Sources of a Solid Object-Oriented Design

pingback :http://java.sys-con.com/node/84633?page=0,1 Object-oriented design is like an alloy consisting of a solid grounding in the object-oriented (OO) approach and implementing the best OO practices heavily laced with how to sidestep the OO pitfal

Understanding Spring Web Application Architecture: The Classic Way--转载

原文地址:http://www.petrikainulainen.net/software-development/design/understanding-spring-web-application-architecture-the-classic-way/ Every developer must understand two things: Architecture design is necessary. Fancy architecture diagrams don’t descri

Understanding Responsive Web Design: Cross-browser Compatibility

http://www.sitepoint.com/understanding-responsive-web-design-cross-browser-compatibility/ In the last article, I described three ways to work with with images from a responsive design standpoint, discussing the best solution to adopt while serving pr

Node.js API —— process(进程)

// 说明 Node API 版本为 v0.10.31.    中文参考:http://nodeapi.ucdok.com/#/api/,http://blog.sina.com.cn/oleoneoy 本段为博主注解. 目录 ● 进程    ○ Event: 'exit'    ○ Event: 'uncaughtException'    ○ Signal Events    ○ process.stdout    ○ process.stderr ○ process.stdin ○ pro

The iOS Design Cheat Sheet 界面设计速参

http://ivomynttinen.com/blog/the-ios-7-design-cheat-sheet/ With the release of iOS 7, app designers and developers will need to adjust their visual language to match the new "flat" design of iOS. In addition to the grid system, the dimensions of

Programming Is an Act of Design

? Programming Is an Act of Design Einar Landre KRiSTEn nygAARd, FATHER oF oBjECT-oRiEnTEd pRogRAMMing and the Simula programming language, used to say programming is learning. Accepting the fact that programming-or more precisely, software develop- m