基于体系结构的软件设计(Architecture-Based Software Design,ABSD)方法是由体系结构驱动的,即指由构成体系结构的**「商业、质量和功能需求」**的组合驱动。
ABSD方法是一个自顶向下、递归细化的方法,软件系统的体系结构通过该方法得到细化,直到能产生软件「构件」和「类」。
ABSD设计活动从项目总体框架明确就开始,此时需求抽取和分析还没完成。
要点1: 使用ABSD方法的3个基础** **
1. 功能的分解:使用已有的基于模块的内聚和耦合技术。2. 选择架构风格:实现质量和业务需求。3. 软件模块的使用:复用软件系统的结构。
要点2: 视图与视角** **
视角与视图:描述系统的体系结构,体现关注点分离的思想。
静态视角:展示功能组织,判断质量特性。
动态视角:展示并发行为,判断行为特性。
要点3: 用例和质量场景** **
描述软件架构:视角 + 视图
描述需求:用例(功能需求) + 质量属性场景(质量需求)
用例:用来捕获功能需求。
质量属性:通过定义特定场景来捕获质量需求。
要点4: 基于架构的开发模型** **
-
架构需求:需求获取 -> 生成类图 -> 对类进行分组 -> 把类打包成构件 -> 需求评审
-
架构设计:提出架构模型 -> 映射构件 -> 分析构件相互作用 ->产生架构 -> 设计评审
-
架构文档化:体系结构规格说明 + 测试体系结构需求的质量设计说明书
-
架构复审:标识潜在的风险,及早发现架构设计中的缺陷和错误。
-
架构实现:分析与设计 -> 构件实现 -> 构件组装 -> 系统测试
-
架构演化:制订演化计划 -> 增删改构件 -> 更新构件的相互作用 -> 构件组装与测试
阶段1: 架构需求** **
-
需求获取
-
标识构件:生成类图 —> 对类进行分组 —> 把类打包成构件
-
需求评审
阶段2: 架构设计** **
-
提出架构模型
-
把已标识的构件映射到架构中
-
分析构件之间的相互作用
-
产生软件体系结构
-
设计评审
阶段3: 架构文档化** **
体系结构规格说明测试体系结构需求的质量设计说明书
阶段4: 架构复审** **
安排一次由外部人员(用户代表和领域专家)参加的复审,标识潜在的风险,及早发现架构设计中的缺陷和错误。
阶段5: 架构实现** **
-
复审后的文档化的架构
-
分析与设计
-
构件实现
-
构件组装
-
系统测试
-
架构演化
阶段6 : 架构演化** **
- 需求变化归类2. 制订架构演化计划3. 修改、增加、删除构件4. 更新构件的相互作用5. 构件组装与测试6. 技术评审