软件项目质量规划
软件项目质量规划包括以下内容:
(资料图片)
□ 质量标准和政策
□ 质量目标
□ 角色和职责
□ 质量管理活动
□ 风险评估
□ 缺陷预防措施
软件项目质量标准和政策
质量标准和质量政策存在组织过程资产中,通常由专人负责不断地更新并发布。
质量标准和质量政策可以是软件供应商本身的要求,也可以是用户方提出的要求,根据项目的具体情况而定。
软件项目依据的质量标准和质量政策:
□ 编码标准
□ 文档标准
软件项目质量目标
软件项目的质量目标描述了组织内部或用户方的接受标准,组织内部的接受标准来自于组织的质量管理计划。项目经理可以根据项目情况定义项目具体的质量目标:
1. 产品目标
□ 项目交付缺陷密度 Defects per K FPs <= 30>
□ 程序开发生产率 FPs/Hour >0.18
□ 错误修正百分比 No. of Bad Fixes / No. of Delivered Tickets < 1%>
2. 流程执行目标
□ 客户满意度调查分数 PAST >= 85
□ 项目进度偏差 ±5%
软件项目角色
软件项目职责
1. 项目经理
□ 合同履约的负责人
□ 项目计划的制定和执行监督人
□ 项目组织的指挥员
□ 项目协调工作的纽带
□ 项目控制的中心等
2. 系统分析小组
□ 起草用户需求报告
□ 系统可行性分析报告、系统需求说明书和设计任务书等
□ 制定系统开发计划
□ 制定系统测试方案
□ 制定系统试运行计划等
3. 开发小组
□ 配合系统分析人员完成软件系统及模块的需求调研与需求分析
□ 配合系统分析人员完成软件系统及模块的设计
□ 编制与项目相关的技术文档
□ 完成软件系统及模块的编码
□ 完成单元测试
□ 协助测试人员完成软件系统及模块的测试
4. 测试小组
□ 设计测试计划和测试策略
□ 编制测试软件,准备测试数据
□ 编写测试用例
□ 搭建测试环境,执行测试
□ 编写测试报告
□ 跟踪缺陷
5. 配置管理组
□ 完善各个部门发送需要存档和进行版本控制的代码、文档(包括外来文件)和阶段性成果
□ 对代码、文档等进行单向出入的控制
□ 对所有存档的文档进行版本控制
□ 提供文档规范,并传达到开发组中
6. 质量保证组
□ 系统分析人员是否正确的反映了用户的需求
□ 软件执行是否正确的实现了分析人员的设计思想
□ 测试人员是否进行了较为彻底的和全面的测试
□ 配置管理员是否对文档的规范化进行的比较彻底,版本控制是否有效
软件项目质量活动
1. 项目管理计划评审。
2. 项目配置管理计划评审。
3. 项目质量管理计划评审。
4. 需求评审。
5. 外部设计评审。
6. 内部设计评审。
7. 代码评审。
8. 测试计划评审。
9. 测试用例评审。
10. 测试:
□ 单元测试
□ 集成测试
□ 系统测试
□ 验收测试
11. 项目管理QA评审。
12. 过程改进。
13. 交付物验收评审。
14. 根本原因分析RCA。
15. 项目总结会等。
软件项目风险评估
项目风险评估包括风险管理规划、风险识别、风险分析、风险应对规划和风险监控等各个过程。项目风险管理的目标在于提高项目积极事件的概率和影响,降低项目消极事件的概率和影响:
1. 规划风险管理
定义如何实施项目风险管理活动的过程。
2. 识别风险
判断哪些风险会影响项目并记录其特征的过程。
3. 实施定性风险分析
评估并综合分析风险的发生概率和影响,对风险进行优先排序,从而为后续分析或行动提供基础的过程。
4. 实施定量风险分析
就已识别风险对项目整体目标的影响进行定量分析的过程。
5. 规划风险应对
针对项目目标,制定提高机会、降低威胁的方案和措施的过程。
6. 监控风险
在整个项目中,实施风险应对计划、跟踪已识别风险、监测残余风险、识别新风险和评估风险过程有效性的过程。
软件项目缺陷分布
项目各个阶段缺陷分布情况:
需求说明书编写原则
需求人员加强与客户之间的沟通,需求说明书的编写应遵循以下八大原则:
1. 功能与实现分离,即描述做什么而不是这样实现。
2. 使用面向处理的规格说明语言,讨论来自环境的各种刺激可能导致系统做出什么样的功能性反映,来定义一个行为模型,从而得到做什么的规格说明。
3. 如果目标软件只是一个大系统中的一个元素,那么整个大系统也要包括在规格说明的描述之中。描述该目标软件与系统的其他系统元素交互的方式。
4. 规格说明必须包括系统运行的环境。
5. 系统规格说明必须是一个认识的模型,而不是设计或实现的模型。
6. 规格说明必须是可操作的,以便能够利用它决定对于任意给定的测试用例,已提出的实现方案是否都能够满足规格说明。
7. 规格说明必须容许不完备性并允许扩充。
8. 规格说明必须局部化和松散的耦合。局部化,当信息被修改时,只要修改某个段落。松散的耦合,以便能够很容易地加入和删除段落。
设计的技术标准
1. 设计出来的结构应是分层结构,从而建立软件分成之间的控制。
2. 设计应当模块化,从逻辑上将软件划分为完成特定功能或子功能的构建。
3. 设计应当既包含数据抽象,也包含过程抽象。
4. 设计应当建立具有独立功能特征的模块。
5. 设计应当建立能够降低模块与外部环境之间复杂连接的接口。
6. 设计应能根据软件需求分析获取得信息,建立可驱动、可重复的方法。
编码的缺陷预防措施
编码的缺陷预防措施主要有:
□ 统一编码规范
□ 代码评审
□ 常见编码错误规避
□ 单元测试