(Architecture-Based Software Design,ABSD),ABSD方法为产生软件系统的概念体系结构提供基础,它描述了系统的主要设计元素及其关系。
ABSD方法取决于决定系统的体系结构驱动。所谓体系结构驱动,是指构成体系结构的业务、质量和功能需求的组合。
ABSD方法有三个基础:
- 基础功能分解
- 通过选择体系结构风格来实现质量和业务需求
- 软件模板的使用,软件模板包括描述所有这种类型的元素在共享服务和底层构造的基础上如何进行交互。软件模板还包括属于这种类型的所有元素的功能。
基本概念
设计元素
提前设计好系统的概念,而不参与实际的实现过程。
设计元素有一个概念接口,该接口封装了输入和输出的数据信息,可能的一种情形是一个阶 段的特定设计元素的功能在后续阶段中将发散为若干个设计元素。一旦决定开始构造类、方法、进 程或线程,ABSD方法就终止了。然而,经验表明,一旦概念构件已经定义好,则几乎总是可以产生 实际构件。
视角和视图
从不同的角度查看设计系统的不同属性,逻辑视图、进程视图、实现视图和配置视图。 用户视图,运营视图,数据视图等。
用例和质量属性
系统在什么样的情况下游什么类型的结果。
同时考虑一些预期场景内的结果以及非预期场景内的结果。
用例已经成为推测系统在一个具体设置中的行为的重要技术,用例是系统的一个给予用户一个结果值的功能点,用例用来捕获功能需求。
ABSD输入和输出
输入:
- 抽象功能需求,包括变化的需求和通用的需求;
- 用例(实际功能需求);
- 抽象的质量和业务需求;
- 质量因素(实际质量和业务需求);
- 体系结构选项;
- 约束
输出:
- 不同视图的概念构件集合
- 包括能产生每个概念构件的假定
- 软件模板的集合和那些已经作出的具体实现的决策
ABSD方法步骤
1. 定义设计元素
2. 设计元素产生顺序
3. 设计元素的活动
- 功能分解
- 选择体系结构风格
- 为风格分配元素
- 细化模板
- 功能校验
- 创建并发视图
- 创建配置视图
- 验证质量场景
- 验证约束
最后
ABSD只能算是众多软件设计方法种的一种,如果说对我们有什么借鉴意义,那就是:
- 在写代码之前,先定义概念,定义好概念的关系和视图,想清楚比动手更重要
还有一个作用就是这是考系统架构师的知识点,记录一下。
参考《软件体系结构原理、方法与实践_第2版》