软件体系结构的质量属性
软件体系结构的质量属性 2012/9/23
8
2 概念与方法
解决问题的途径
建立一种清晰的,可重用的框架来评估体系结 构的质量,提炼出属性层和测量项,应用于评 估当中。
采用分解的方法评估
软件体系结构的质量属性 2012/9/23
9
2 概念与方法
体系结构的权衡分析方法
Architecture Tradeoff Analysis Method(ATAM) 收集场景 引出需求、约束和环境描述 列出所有的候选体系结构风格/模式 单独考虑每个属性来评估质量属性 针对特定的体系结构风格确定质量属性对各个候选项的敏感性 使用第5步中的鉴定结果
SuitabilityMaurityUnderstandability
Time behavior
Analysability
Adaptability
Accuracy
Fault tolerance
Learn ability
Resource behavior
Changeability
Installability
软件体系结构的质量属性 2012/9/23
21
2 概念与方法
1 功能性
安全性(Security) 防止未经授权访问程序或者数据的能力。
从软件体系结构的层次上说明: 1. 应有一种机制或者设备(软件或硬件)来明显地完成这个任务。可以是组件 (如中间件提供的一项服务)或集成在组件里的功能。 2. 根据机制或者设备的存在与否决定属性值为1或者0。
•软件产品可以从一个环境迁移到另一个环境的能力。
ISO9126-1质量模型的特性
软件体系结构的质量属性 2012/9/23
15
2 概念与方法
ISO9126-1质量模型框架
Functionality Reliablity Usablity Efficiency Maintianablity Portablility
Installability
Interoperability
Recoverability
Operablility
Compliance
Stability
Co-exsitence
Security
Compliance
Compliance
Testability
Replaceability
Compliance
软件体系结构的质量属性 2012/9/23
17
2 概念与方法
ISO9126-1质量模型框架应用于体系结构
质量的度量按直觉评价,一般方法是列出产品的特性, 然后用一个属性组来描述它。
只要达到预期的值,则认为是一个达标的产品,至于达 标的值的界定,一般包含在需求当中。
下面进一步解释如何细化属性并将其用于体系结构
软件体系结构的质量属性 2012/9/23
26
2 概念与方法
3 易用性
易理解性(Understandability) 是指软件产品使用户能理解软件产品是否合适以及如何能将软件用于特定的任务和 使用环境的能力。 易学习性(Learnability) 软件产品使用户能学习它的能力。 易操作性(Operability) 软件产品使用户能操控和控制它的能力。
还有其他改进的方法吗?
软件体系结构的质量属性 2012/9/23
11
2 概念与方法
基于ISO9126-1建立体系结构质量模型
模型结构和ATAM类似,基于ISO9126-1构建。
什么是ISO9126-1标准? Software Quality Characteristics 更多资料可参阅: ISO/IEC 9126 in practice: What do
软件体系结构的质量属性 2012/9/23
23
2 概念与方法
软件体系结构的质量属性 2012/9/23
24
2 概念与方法
2 可靠性
容错性(Tolerance) 在软件发生故障或违反指定接口的情况下,软件产品维持规定的性能水平的能力。
从软件体系结构的层次上说明: 1. 它意味着拥有某种机制或软件设备。它可以是一个构件或被集成到构件中,如 异常处理以及冗余。 2. 3. 根据这种机制或设备的出现与否定义其值为1或者0。 它可以被精确为一种属性,这种属性的值与机制或者设备相关。
Compliance
Compliance
2
内容
• • • •
即将探讨的问题 概念与方法 案例 个人体会
软件体系结构的质量属性 2012/9/23
3
1 即将探讨的问题
软件体系结构究竟如何定义?
虽然软件体系结构已经在软件工程领域中有着广泛的应用,但迄今为止 还没有一个被大家所公认的定义。
为何不可照搬建筑工程的Architecture来解决软件工程里的Architecture? 软件工程的确在朝着工程学科发展的一般模式靠拢,但是大规模的复用 才刚刚开始尝试。
Analysability
Portablility
Suitability
Maturity
Understandability
Time behavior
Adaptability
Accuracy
Fault tolerance
Learn ability
Resource behavior
Changeability
注意 我们假定这些特性都是彼此独立的,否则就太过复杂,无法讨论下去了。
软件体系结构的质量属性 2012/9/23
18
2 概念与方法
1 功能性
适合性(Suitability) 拥有符合特定任务需求的足够的功能。 • • 存在:任务已被详细说明 正确:正确的解释任务的详细说明。
从软件体系结构的层次上说明: 1. 2. 系统的功能性必须被识别出来。在此种情况下,根据确定与否取值为1或0。 由功能需求所获得的时序图必须被详细精化。在拥有一个体系结构说明书的情 况下,特定的功能被分解成与构件有关的子功能,并且这些子功能合起来应满 足系统的功能性需求。
软件体系结构的质量属性 2012/9/23
25
2 概念与方法
2 可靠性
可恢复性(Recoverability) 1、重建规定的性能水平的能力。2、恢复受影响的数据的能力。3、恢复所需的时间。 从软件体系结构的层次上说明: 1. 软件中存在一种机制或者软件设备,其独自成为构件或被集成在构件中,其功能 是重建或恢复数据(冗余就是一个典型的例子)。 2. 如果这种机制存在,那么可恢复性就可被细化为一种和时间、代价相关的性能属 性,每个支持此机制的组件都需计算出这样的属性。
注意 工程中的构件的复用是因为工程师只想集中精力做设计中真正创新的部分
软件体系结构的质量属性 2012/9/23
4
1 即将探讨的问题
更直观的表象:失效曲线
来自于设计或生产的缺陷与时间的函数关系。
硬件失效曲线图
软件失效曲线图
变更副作用
初期 失 效 率
后期磨损
失 效 率
实际曲线 理想曲线
0
注意
2
时间(年)
we need to know?
软件体系结构的质量属性 2012/9/23
12
2 概念与方法
关于ISO9126-1质量模型
根据ISO9126-1,质量被描述为一组特性,用于评估其满 足需求(显性和隐性)的能力。
从用户角度:最终产品的质量 从开发人员角度:不同开发人员提供的中间产品的质量 从客户角度:市场的需求
4
6
0
2
时间(年)
4
6
实际上更变的副作用从设计阶段就初现端倪。
软件体系结构的质量属性 2012/9/23
5
1 即将探讨的问题
启发
软件的质量问题暗示了设计缺陷或者从设计 转化到机器代码的过程中产生的错误。
关注前者(即软件体系结构),是否可以用高 质量的设计来提高最终产品的质量?
工具 方法 过程 质量关注点
功能性 可靠性 易用性 效率 可维护性 可移植性
•软件产品所能提供功能的能力。
•在特定的环境下和一段特定的时期内,软件产品可以维持其自身性能水平的能力。
•在特定的环境下,软件产品可被理解,学习,使用及对用户吸引力的能力。
•在特定环境下,软件产品提供和使用资源总数相关的特定的性能的能力。
•软件产品可被修改的能力。修改可能包括软件的修正,改进或软件适应环境,需求和变化。
软件体系结构的质量属性 2012/9/23
19
2 概念与方法
软件体系结构的质量属性 2012/9/23
20
2 概念与方法
1 功能性
互操作性(Interoperability) 在一个系统内或多个系统间相互作用的能力。 可替代性replaceability 兼容性compatibility
从软件体系结构的层次上说明: 1. 识别与外部特定系统进行交互的中间件。 2. 根据中间件的存在与否决定属性值为1或者0。
注意 作为开发人员通常只考虑前两项
软件体系结构的质量属性 2012/9/23
13
2 概念与方法
关于ISO9126-1质量模型
ISO9126-1广泛用于产品质量评估当中,作为评估质量的 一个State-of-art标准。
ISO9126-1包含六个高度独立的质量特性,质量特性在开 发的各个阶段作为外部确认和内部审查的目标,一旦获 得可测量的实体,就按照图中所示的过程精化。
Interoperability
Recoverability
Operablility
Compliance
Stability
Co-exsitence
Security
Compliance