文章目录世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。
- 软件架构设计
- 架构设计
- 软件架构文档化
- 软件架构评估
-
演变交付生命周期
过程 软件概念 初步的需求分析 架构和系统核心的设计 开发一个版本 交付最终版本 汇总客户反馈 交付该版本 获取客户反馈 -
属性驱动设计法(ADD)
条目 内容 输入 功能需求 质量需求 限制条件 过程 选择模块 对模块进行分解求精 -
按架构组织开发团队
条目 内容 分组方式 根据模块分组 -
开发骨架系统
条目 内容 内容 根据架构开发一个可运行的原型(骨架) -
利用商用构件进行开发
顺序 过程 1 选用相应的模式设计架构 2 根据模式选择对应的商用构件进行开发
-
作用
方面 描述 过程 编档过程能促使架构设计师进一步思考,使得架构更完善 结果 描述架构的文档将作为架构开发的成果,供项目关系人使用 -
架构文档的使用者
条目 内容 架构文档使用者 架构的项目关系人 编写原则 从读者的角度编写 用途 项目关系人之间交流的工具 -
合理的编档规则
序号 规则 1 从读者的角度编写文档 2 避免出现不必要的重复 3 避免歧义 4 使用标准结构 5 记录基本原理 6 使文档保持更新,但更新频率不要过高 7 针对文档的适宜性对文档进行评审 -
视图编档
序号 条目 细节 1 视图概述 2 元素目录(重要部分) 元素及属性 关系及属性 元素接口 元素行为 3 上下文图 4 可变性指南 5 架构背景 设计理由 结构分析 假设条件 6 术语表
- 软件架构评估的方法
方法 特点 基于调查问卷或检查表的方式 缺点 :依赖于评估人员的主观性 基于场景的方式 分析软件架构对场景的支持程度,例,ATAM(架构权衡分析法),SAAM(软件架构分析法) 基于度量的方式 三个基本活动 :1. 建立质量属性和度量之间的映射关系;2. 获取度量信息;3. 根据映射推导质量属性。例,ATAM - ATAM(架构权衡分析法)
- 功能
序号 内容 1 揭示架构如何满足特定的质量需求 2 分析质量需求之间的交互作用 - 产生的结果
序号 结果 1 一个简洁的架构表述 2 表述清楚的业务目标 3 用场景集合捕获质量需求 4 架构决策到质量需求的映射 5 确定敏感点和权衡点的集合 6 有风险决策和无风险决策 7 风险主题的集合 8 产生一些附属结果,如,文档 9 产生一些无形结果,如,使大家更好的理解架构 - 步骤
序号 步骤 1 ATAM方法的表述 2 商业动机的表述 3 架构的表述 4 对架构方法进行分类 5 生成质量属性效用树,场景优先级 6 分析架构方法,探查实现场景的架构 7 集体讨论确定场景优先级,项目关系人实际需要的场景优先级与效用树中的对比 8 分析架构方法,分析综合后的优先级最高的场景的设计方法 9 结果的表述。主要有 :已编写了文档的架构方法;经过讨论得到的场景集合及其优先级;效用树;所发现的有风险决策;已编成文档的无风险决策;所发现的敏感点和权衡点
- 功能
- 成本效益分析法(CBAM)
- 项目关系人根据其投资回报(ROI)选择架构策略
- CBAM基于ATAM,CBAM开始于ATAM结束时
- 步骤
序号 步骤 1 整理场景 2 对场景进行求精 3 确定场景的优先级 4 分配效用 5 形成策略-场景-响应级别的对应关系 6 使用内插法确定“期望的”质量属性响应级别的效用 7 计算各架构策略的总收益 8 根据(ROI)投资回报率选择架构策略
- 笔者认为 ATAM 到 CBAM 的过程就是层层排序筛选,最后选出性价比最高的架构策略



