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