【重点1】基于架构的软件开发
- 基于架构的软件设计ABSD
Architecture-Based Software Design
架构驱动,强调由业务、质量、功能需求的组合驱动架构设计。
描述软件架构:视角+视图
描述需求:用例(描述功能需求) + 质量属性场景(描述质量需求)
要点1:使用ABSD方法的3个基础
(1)功能的分解:使用已有的基于模块的内聚和耦合技术。
(2)选择架构风格:实现质量和业务需求。
(3)软件模板的使用:软件系统的结构,复用。
要点2:基于架构的软件开发 6个过程
(1)需求
需求获取 -> 生成类图 -> 对类进行分组 ->把类打包成构件 -> 需求评审
(2)设计
提出架构模型 -> 映射构件 -> 分析构件相互作用 -> 产生架构 -> 设计评审
(3)文档化
体系结构/架构规格说明
测试体系结构/架构需求的质量设计说明书
(4)复审:外部人员参加(用户代表)。
(5)实现
(6)演化:对架构进行改变,按需求增删构件,使架构可复用。
【重点2】软件架构复用
- DSSA 特定领域软件架构
domain-specific software architecture
专用于一类特定的问题领域,支持一组应用的领域参考模型、参考需求、参考架构等组成的开发基础,其目标是支持在一个特定领域中多个应用的生成。
标准的组合结构的软件构件的集合。
在整个领域中能有效使用。
垂直域:在一个特定领域中的通用的完整的软件架构。
水平域:横跨了很多个不同特定领域之间的相同的部分的小工具(购物和教育都有收费系统,收费系统即使水平域)。
要点1:DSSA的3个基本活动
(1)领域分析:分析领域中系统的需求,确定哪些需求是领域中的系统广泛共享的,从而建立领域模型(问题域)。
(2)领域设计:获得DSSA特定领域的软件架构,DSSA描述在领域模型中表示的需求的解决方案,适应领域中多个系统的需求的一个高层次的设计(解空间)。
(3)领域实现:开发和组织可重用信息(从现有系统中提取 or 新的开发)。
要点2:建立DSSA的过程
(1)定义领域范围:领域中的应用要满足用户一系列的需求。
(2)定义领域特定的元素:建立领域的字典,归纳领域中的术语,识别出领域中相同和不同的元素。
(3)定义领域特定的设计和实现需求的约束
(4)定义领域模型和架构
(5)产生、搜集可复用的产品单元:为DSSA增加复用构件。
要点3:三层次模型
(1)领域开发环境:核心通用架构、参考架构、领域模型。
(3)领域特定的应用开发环境:根据具体环境把核心架构实例化。
(3)应用执行环境:实现实例化的架构。
【重点3】系统架构评估(SAAM、ATAM、CBAM)
系统架构评估:架构分析、架构权衡分析、成本效益分析
- SAAM 体系结构/架构分析方法
Software Architecture Analysis Method
这一方法的基本特点是把任何形式的质量属性都具体化为场景,但可修改性是SAAM分析的主要质量属性。
SAAM的三个输入
(1)问题描述
(2)需求声明
(3)体系结构/架构描述
SAAM的5个步骤
(1)场景开发:场景描述列表。
(2)体系结构/架构描述
(3)单个场景评估
(4)场景交互评估:得出系统中所有场景对系统中的构件所产生的影响的列表。
(5)总体评估:对场景和场景间的交互作一个总体的权衡和评价。
- ATAM 架构权衡分析法 【重点】
Architecture Tradeoff Analysis Method
以属性作为架构评估的核心概念,针对性能、可用性、安全性、可修改性等质量属性进行评价和折中,分析多个质量属性间的关系,属性间可能存在冲突,需要权衡取舍。
4个活动阶段
(1)场景和需求收集
(2)体系结构/架构视图描述 + 场景实现
(3)属性模型构造和分析
(4)对质量属性进行评价和折中
评估的步骤
(1)评估小组负责人描述ATAM方法(宣读规则)
(2)项目决策者描述业务动机(明确业务需求)
(3)架构设计师描述架构
(4)架构设计师确定架构方法
(5)生成质量属性效用树:对质量属性进行刻画和排序
质量属性 -> 质量属性子特性 -> 子特性的具体描述
(6)评估小组分析架构方法:能否满足质量属性。
(7)项目干系人讨论场景和对场景分级
(8)架构设计师分析架构方法
(9)评估小组负责人描述评估结果(产出具体的报告)
- CBAM 成本效益分析法
Cost Benefit Analysis Method
对架构建立的成本进行设计和建模,根据投资收益率来选择合适的架构。作为ATAM的补充,在ATAM确定质量合理的基础上,再对效益进行分析。