目录
1. 🗺️架构设计方法概述
基于架构的软件设计(Architecture-Based Software Design, ABSD)方法。ABSD方法是由架构驱动的,即指由构成架构的业务(商业)、质量和功能需求的组合驱动的。
三大基础:
-
功能的分解,ABSD方法使用已有的基于模块的内聚和耦合技术。
-
选择架构风格来实现质量和业务需求。
-
软件模板的使用,软件模板利用了一些软件系统的结构。
2. 🧭概念与术语
2.1 🏝️设计元素
ABSD 方法是一个自顶向下,递归细化的方法,软件系统的架构通过该方法得到细化, 直到能产生软件构件和类。
ABSD方法中使用的设计元素如下图所示。在最顶层,系统被分解为若干概念子系统和一 个或若干个软件模板。在第2层,概念子系统又被分解成概念构件和一个或若干个附加软件模板。
2.2 👀视角与视图
从不同的视角来检查,会有不同视图。这样做可以帮助软件设计师全面考虑架构的各种属性,确保设计的完整性和合理性。以下是几种常见的视角及其作用的总结:
-
静态视角(逻辑视图):关注系统的功能组织,记录设计元素的功能和概念接口,帮助理解系统内部各组件的功能和职责。
-
动态视角(进程视图):关注系统的并发行为,描述系统的运行时行为,帮助评估系统的性能和可靠性。
-
实现视角(实现视图):关注系统的实现细节,描述源代码的组织和模块间的依赖关系,帮助开发人员进行代码管理和维护。
-
配置视角(部署视图):关注系统的物理部署结构,描述系统的节点和网络连接,帮助系统管理员进行高效的系统管理和运维。
通过这些不同的视角,软件设计师可以全面考虑和评估架构的各个方面,确保设计的合理性和有效性。
2.3 🚵♀️用例和质量场景
用例:用于捕获系统的功能需求,描述用户与系统的交互,确保系统能够提供预期的功能。
质量场景:用于捕获系统的质量需求,包括变更、性能、可靠性和交互性等方面。通过定义预期和非预期场景,帮助评估系统在不同条件下的表现,确保设计的鲁棒性和适应性。
例如,一个预期的性能场景是估计每年用户数量增加10%的影响,一个非预期的场景是估计每年用户数量增加100%的影响。虽然非预期场景可能不会真正实现,但它们在确定设计的边界条件时非常有用。
3. 🧐基于架构的开发模型
传统的软件开发过程可以划分为从概念直到实现的若干个阶段,包括问题定义、 需求分析、软件设计、软件实现及软件测试等。如果采用传统的软件开发模型,软件架构的建立应位于需求分析之后, 概要设计之前。
传统软件开发模型存在开发效率不高,不能很好地支持软件重用等缺点。
也就是说ABSD可以很好的支持软件重用。ABSD通过模块化设计、标准化接口、组件库和框架、领域模型和领域驱动设计、版本管理和文档等多个方面,支持软件重用。
ABSD模型把整个基于架构的软件过程划分为架构需求、设计、文档化、复审、实现和演化6个子过程,
3.1 📚架构文档化
架构文档化过程的主要输出结果是两个文档:架构规格说明和测试架构需求的质量设计说明书。
软件架构的文档要求与软件开发项目中的其他文档是类似的。文档的完整性和质量是软件架构成功的关键因素。
三大注意事项:
✅ 文档要从使用者的角度进行编写
✅ 必须分发给所有与系统有 关的开发人员
✅ 且必须保证开发者手上的文档是最新的
3.2 🛂架构复审
在一个主版本的软件架构分析之后,要安排一次由外部人员(用户代表和领域专家)参加 的复审。
复审的目的是标识潜在的风险,及早发现架构设计中的缺陷和错误
包括架构能否满足需求、质量需求是否在设计中得到体现、层次是否清晰、构件的划分是否合理、文档表 达是否明确、构件的设计是否满足功能与性能的要求等。