软件架构的设计步骤
经过查阅资料,我了解到在软件架构设计这方面并没有一个统一的、适用于一切软件的步骤,因为毕竟每一个软件都是不同的。所以说这
软件架构的设计步骤
经过查阅资料,我了解到在软件架构设计这方面并没有一个统一的、适用于一切软件的步骤,因为毕竟每一个软件都是不同的。所以说这里总结的不一定适合所有的,只是用来做一个参考。
软件架构设计的实现步骤主要有以下6步:
- 需求分析。在没有全面认识需求并权衡不同需求之间关系及相互影响的情况下,设计出的框架就可能出现问题。
在需求分析这一环节要注意几个概念:
需求捕获:是获取知识的过程,知识从无到有。
需求分析:是挖掘和整理知识的过程,它在已经掌握的知识基础上进行。
系统分析:需求分析着重于“做什么”,系统分析着重于“怎么做”。
- 领域建模。领域建模的目的是,透过问题领域的重重现象,捕捉其背后的最为稳定的领域概念,以及这些概念之间的关系。在项目前期,所建立的领域模型将为所有的团队成员之间、团队成员和客户之间的交流提供共同认可的语言核心。随着项目的进展,领域模型不断被精化,最终成为整个软件问题领域层,该层决定了软件系统能力的范围。
领域模型的概念:领域模型是对实际问题领域的抽象表示,它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。
- 确定关键需求。这不仅要求对功能进行筛选,还要对非功能需求进行权衡,最终确定对软件架构起关键作用的需求子集。
什么是对软件架构关键的需求:关键的功能需求、关键的质量性需求、关键的商业需求
- 概念架构设计。概念架构设计必须同时重视关键功能和关键质量。
概念架构设计主要有三个步骤:1.鲁棒性分析2.引入架构模式3.质量属性分析
- 细化架构设计。这里提出“5视图法”的细化架构设计方法论,其中的5视图法指的是:
逻辑架构:逻辑架构关注功能。其设计着重考虑功能需求。
开发架构:开发架构关注功能。其设计着重考虑开发期质量属性,如可扩展性、可重用性、可移植性、易理解性和易测试性等。
运行架构:运行架构关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。其设计着重考虑运行期质量属性,例如性能、可伸缩性、持续可用性和安全性等
物理架构:物理架构关注软件系统最终如何安装或部署到物理机器。其设计着重考虑“安装和部署需求”
数据架构:数据架构关注持久化数据的存储方案。其设计着重考虑“数据需求”。
- 架构验证。对后续工作产生重大影响、返工代价很高的任何工作都应该进行验证。软件需求如此,架构设计方案也是如此。从架构验证工作得到不应该仅仅是“软件架构是否有效”的回答,还必须有可实际运行的程序。这些成果为后续开发提供了实在支持。
验证架构的两种方法:
1> 原型法
2> 框架法