软件架构评估
质量数量
- 性能:性能是指系统的响应能力,既要经过多场时间才能对摸一个时间做出响应或者在某段时间内系统所能处理的时间的个数,经常用单位时间内所处理事务的数量或系统完成某个事务处理所需的时间来对性能进行定量的标识,性能测试经常要使用基准测试程序(用以测试性能指标的特定事务集或工作量环境)
- 可靠性:软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力,珂卡星通常用平均失效等待时间,和平均失效间隔时间来衡量,在失效率为常数和修复时间很短的情况,MTTF和MTBF几乎相等
- 可用性:系统能够正常运行的时间比例,经常用两次故障自检的时间长度或在出现故障是系统能够恢复正常的速度来表示
- 安全性:系统在向合法用户提供服务的同事能够阻止非授权用户使用的企图或拒绝服务的能力,安全性是根据系统可能受到的安全威胁的类型来分类的,安全性又可划分为机密性,完整性,不可否认性及可控性等特性
#评估
- 敏感点:一个或多个的特性(表示不明显但是影响很大)
- 权衡点:影响到多个构件的敏感点
- 风险点:存在的隐患,可能是好的方面
- 非风险点
- 方式
- 基于问卷的方式
- 基于度量的方式
- 基于场景的方式
基于场景的方式
- 确定应用领域的功能和软件架构的结构借鉴的映射
- 设计用于体现待评估质量属性的场景
- 分析软件架构对场景的支持程序
- 分析法
- 架构权衡分析法(ATAM)
- 软件架构分析法(SAAM)
- 成本效益分析法(CBAM)
- 因素:刺激,环境,响应
ATAM
- 描述和介绍阶段
- 描述ATAM方法:评估小组负责人,评估方法
- 描述业务动机:项目决策者,业务角度
- 描述架构:首席设计师,架构
- 调查和分析阶段
- 确定架构方法:架构设计师
- 生成质量属性效用树:评估小组,设计小组,管理人员和客户代表
- 分析架构方法:评估小组
- 测试阶段
- 讨论场景和对场景分级:项目干系人,投票
- 分析架构方法:架构设计师
- 报告阶段
- 描述评估结果:评估小组负责人,评估方法
SAAM
- 形成场景
- 描述架构
- 对场景分类和确定优先级
- 对场景进行单个评估
- 评估场景的相互作用
- 形成总体评估
软件产品线
- 基本概念:核心资源和产品集合
- 以架构为中心
- 过程驱动
- 特定领域
- 技术支持
过程模型 - 双生命周期模型
- 概念:以现有系统(核心技术)的需求,同时更新自己核心技术的同时,吧应用工程不断的更新(以核心工程为版本)
过程模型 - SEI模型
组织结构
- 设立独立的核心资源小组
- 不设立独立的核心资源小组
- 动态的组织结构
- 特点
- 对该领域具备长期和深厚的经验
- 一个用于构件产品的好的核心资源库
- 好的产品线架构
- 好的管理
建立方式
- 将现有产品演化成产品线
- 用软件产品线替代现有产品集
- 全新软件产品线的演化
- 权限软件产品线的开发
| 产品 | 演化方式 | 革命方式 |
|---|---|---|
| 基于现有产品 | 基于先用产品架构设计产品线的架构,经演化现有构件,开发产品线构件 | 核心资源的开发基于现有产品集的需求和可预测的,将来需求的超集 |
| 全新产品线 | 产品线核心资源随产品新成员的需求而演化 | 开发满足所有预期产品线成员的需求和核心资源 |