软件工程--项目质量
一、软件质量
1.1.基本概念
- 软件质量是“软件与明确的和隐含的定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度
- 软件质量具有如下3个要点:
- 用户需求是度量软件质量的基础
- 指定的标准定义了一组指导软件开发的准则
- 没有显式描述的隐含需求(如期望软件是容易维护的)
二、软件质量特性
2.1.ISO/IEC9126软件质量模型
- ISO/IEC9126软件质量模型是一种评价软件质量的通用模型,包括3个层次:
2.2.功能性
- 与功能及其指定的性质相关的一组属性
- 适合性:与规定任务能否提供一组功能及这组功能的适合程度有关的软件属性
- 准确性:与能否得到正确或相符的结果或效果有关的软件特性
- 互操作性:与其他指定系统进行交互的能力有关的软件属性
- 保密安全性:与防止对程序及数据的非授权的故意或意外访问的能力有关的软件属性
- 功能性的依从性:使软件遵循有关的标准、约定、法规及类似规定的软件属性
2.3.可靠性
- 与规定的时间和条件下,软件维持其性能水平的能力有关的一组属性
- 成熟性:与由软件故障引起失效的频度有关的软件属性
- 容错性:与由软件故障或违反指定接口的情况下,维持规定的性能水平的能力有关的软件属性
- 可恢复性:在失效发生后,重建其性能水平并恢复其接受影响数据的能力,以及为达此目的所需的时间和能力相关的软件属性
2.4.易用性
- 与一组规定或潜在的用户为使用软件所需做的努力和对这样的使用所作的评价有关的一组属性
- 易理解性:与用户为认识逻辑概念及其应用范围所花的努力有关的软件属性
- 易学习性:与用户为学习软件应用所花的努力有关的软件属性
- 易操作性:与用户为操作和运行控制所花的努力有关的软件属性
2.5.效率
- 与在规定的条件时间特性与软件执行其功能时,软件的性能水平与所用资源量之间关系有关的一组属性
- 时间特性:响应与处理时间及吞吐量有关的软件属性
- 资源特性:使用的资源数量及其使用资源的持续时间有关的软件属性
2.6.可维护性
- 与软件维护的难易程度有关的一组属性
- 易分析性:与为诊断缺陷或失效原因及为判定待修改的部分所需努力有关的软件属性
- 易修改性:与进行修改,排除错误或适应环境变化所需努力有关的软件属性
- 稳定性:与修改所造成的未预料结果的风险有关的软件属性
- 可测试性:与确认已修改软件所需的努力有关的软件属性
2.6.可移植性
- 与软件可从某一环境转移到另一环境的能力有关的一组属性
- 适应性:与软件无需采用特殊处理就能适应不同的规定环境有关的软件属性
- 易安装性:在指定环境下安装软件的难易程度
- 一致性:软件服从与可移植性有关的标准或约定的程度
- 可替换性:软件在特定软件环境中用来替代指定的其他软件的可能性和难易程度
三、软件质量保证
3.1.基本概念
- 是为保证软件系统充分满足用户要求的质量而进行有计划、有组织的活动,其目的是生产高质量软件
3.2.质量保证的主要手段
- 开发初期制定质量保证计划
- 开发前选定制定开发标准、开发规范
- 选择分析设计方法和工具,形成高质量分析模型,设计模型
- 严格执行阶段评审,及时发现问题
- 进行阶段测试
- 严格执行变更控制流程
- 有完整阶段文档
3.3.CMM(软件能力成熟度模型)
- 是一种用于评价软件承包能力以改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。分五个等级:
- 初始级:软件过程是无序的,有的甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
- 可重复级:建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验
- 已定义级:已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品生产在整个软件过程可见的
- 已管理级:软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能
- 优化级:过程的量化反馈和先进的新思想、新技术促使过程持续不断改进
3.4.CMMI(软件能力成熟度集成模型)