Skip to content

软件维护与质量管理

软件维护是软件生命周期中历时最长、成本最高的阶段;软件质量管理贯穿整个开发生命周期。


一、软件维护

1.1 定义与重要性

定义:软件交付使用后,为改正错误、满足新需要而修改软件的过程

特点

  • 历时最长的阶段
  • 成本最高(可能超过开发成本)
  • 约80%的维护工作是非纠错性的

1.2 维护类型

类型定义占比示例
纠错性维护修复运行中发现的错误~20%修复Bug
适应性维护适应外部环境变化~25%系统升级、平台迁移
完善性维护满足新需求,改进功能~50%添加新功能、性能优化
预防性维护提高可维护性,为未来改进创造条件~5%代码重构、文档更新

考试重点:完善性维护占比最高!

1.3 维护类型辨析

场景维护类型
用户报告程序崩溃纠错性维护
操作系统升级后程序不兼容适应性维护
用户要求增加导出Excel功能完善性维护
开发团队主动重构遗留代码预防性维护
数据库从MySQL迁移到PostgreSQL适应性维护
优化查询性能完善性维护

1.4 软件可维护性

定义:维护人员对软件进行理解、诊断错误、修改的难易程度

影响因素

因素说明
可理解性结构、逻辑是否清晰易懂
可测试性是否易于进行测试验证
可修改性修改某部分对其他部分影响程度
可移植性迁移到其他环境的难易程度
文档质量文档是否完整、准确、清晰
代码规范性是否遵循编码规范
模块化程度模块划分是否合理

二、软件质量模型

2.1 ISO/IEC 9126 质量模型

六大质量特性

特性定义子特性
功能性功能满足需求的程度适合性、准确性、互操作性、安全性、依从性
可靠性在规定条件下保持性能的能力成熟性、容错性、可恢复性、依从性
易用性用户理解、学习、使用的难易程度易理解性、易学性、可操作性、吸引性、依从性
效率性能水平与资源使用的关系时间特性、资源利用性、依从性
可维护性被修改的难易程度易分析性、易改变性、稳定性、易测试性、依从性
可移植性转移到其他环境的能力适应性、易安装性、共存性、易替换性、依从性

2.2 质量特性详解

功能性 (Functionality)

子特性说明
适合性提供的功能是否满足需求
准确性结果是否正确精确
互操作性与其他系统交互的能力
安全性防止非授权访问的能力

可靠性 (Reliability)

子特性说明
成熟性避免软件故障的能力
容错性出错时维持性能的能力
可恢复性故障后恢复的能力

易用性 (Usability)

子特性说明
易理解性用户理解软件的难易程度
易学性用户学会使用的难易程度
可操作性用户操作和控制的难易程度

效率 (Efficiency)

子特性说明
时间特性响应时间、处理速度
资源利用性CPU、内存使用情况

可维护性 (Maintainability)

子特性说明
易分析性诊断缺陷的难易程度
易改变性实施修改的难易程度
稳定性修改带来意外影响的风险
易测试性测试修改的难易程度

可移植性 (Portability)

子特性说明
适应性适应不同环境的能力
易安装性安装的难易程度
共存性与其他软件共存的能力
易替换性替代其他软件的能力

三、软件质量保证 (SQA)

3.1 基本概念

定义:确保软件产品和过程符合标准和规程的一系列活动

特点

  • 侧重于过程的监控和改进
  • 以预防缺陷为主要目标
  • 贯穿整个开发生命周期

3.2 SQA主要内容

方面说明
目标明确质量目标和标准
承诺管理层对质量的承诺和资源投入
能力人员技能、工具和过程能力
活动具体的质量保证活动
测量度量指标监控质量
验证评审、检查、测试

3.3 SQA活动

  • 制定质量计划
  • 过程审计
  • 评审工作产品
  • 缺陷跟踪
  • 培训

四、CMMI能力成熟度模型

4.1 概述

CMMI (Capability Maturity Model Integration):能力成熟度模型集成

来源:美国卡内基梅隆大学软件工程研究所(SEI)

用途:评估和改进组织过程能力和成熟度

4.2 表示方法

表示法特点
阶段式划分成熟度级别,整体评估
连续式针对特定过程域评估能力级别

4.3 阶段式成熟度等级

级别名称特征关键词
ML1初始级过程混乱无序,依赖英雄混乱、不可预测
ML2已管理级项目级过程得到管理项目管理、可重复
ML3已定义级组织级标准过程定义标准化、制度化
ML4量化管理级使用统计技术管理过程量化、可预测
ML5优化级持续过程改进持续优化、创新

4.4 各级别关键过程域 (KPA)

ML2 - 已管理级

过程域缩写说明
需求管理REQM管理需求和变更
项目策划PP制定项目计划
项目监控PMC跟踪项目进展
供方协议管理SAM管理供应商
度量与分析MA收集和分析数据
过程与产品质量保证PPQA质量保证活动
配置管理CM管理配置项

ML3 - 已定义级

过程域缩写说明
需求开发RD分析和定义需求
技术解决方案TS设计和实现
产品集成PI集成组件
验证VER验证工作产品
确认VAL确认满足需求
组织过程焦点OPF组织过程改进
组织过程定义OPD定义标准过程
组织培训OT培训计划
集成项目管理IPM综合项目管理
风险管理RSKM识别和管理风险
决策分析与解决DAR决策支持

ML4 - 量化管理级

过程域缩写说明
组织过程性能OPP组织层面的过程性能
量化项目管理QPM用量化方法管理项目

ML5 - 优化级

过程域缩写说明
组织绩效管理OPM组织绩效改进
因果分析与解决CAR分析问题根因

4.5 成熟度等级对比

级别核心能力过程特征
ML1混乱、随机
ML2项目管理可重复成功
ML3工程能力组织标准化
ML4量化管理可预测
ML5持续改进最优化

五、考试要点

高频考点

  1. 维护类型辨析(特别是完善性维护)
  2. ISO 9126六大质量特性及子特性
  3. CMMI五个成熟度等级及特征
  4. 各级别关键过程域(特别是ML2、ML3)

典型例题

题1:用户要求增加报表导出功能,属于什么维护? 答案:完善性维护

题2:软件运行速度慢,响应时间长,这主要影响哪个质量特性? 答案:效率(时间特性)

题3:CMMI ML3的核心特征是? 答案:组织级标准过程得到定义和制度化

题4:配置管理属于CMMI哪个级别的过程域? 答案:ML2(已管理级)

记忆口诀

维护类型

纠错改Bug最直接
适应环境变化改
完善功能占一半
预防未来好维护

CMMI等级

初始混乱靠英雄
管理项目可重复
定义标准全组织
量化数据可预测
优化持续最顶峰

质量特性

功能可靠易使用
效率维护可移植
六大特性要记牢
子特性需细分辨

上次更新:

如有转载或 CV 的请标注本站原文地址