软件项目案例
软件质量
- 软件质量的概念定义
软件产品满足用户要求的程度
3. 为什么需要关注软件质量
- 提高客户满意度,占领市场
- 降低软件开发的风险
- 确保软件项目按照计划实施
- 防止软件项目由于质量问题而流产或者失败
- 提高企业的影响力
软件质量保证
什么是软件质量保证
为管理层提供为获知产品质量信息所需的数据,从而获得产品质量是否符合预定目标的认识和信息。
从哪些方面关注软件质量
- 软件产品
软件需求规格说明书
软件设计规格说明书
源程序代码,…. - 开发活动
需求分析
软件设计
编码 - 标准和规程
- 组织内部或者在项目开始之时要制定软件开发的标准和规程
- 软件产品
文档类:审核,产生审核报告
代码类:测试,产生测试报告 - 开发活动
审查,产生审查报告
谁来保证软件质量
软件项目质量保证小组(SQA小组)
独立于项目开发小组
具有比较大的权限
如何保证软件质量
- 正确理解用户的要求
- 制定标准和规程
- 审查软件开发活动
- 审核软件工作产品
- 测试源程序代码
- 记录开发活动和软件产品的偏差
- 记录所有不符合项,报告高级管理者
软件质量保证计划及其实施
CMM对软件质量保证的要求
软件质量保证是CMM 2级的一个关键过程域
所谓软件质量保证是指为管理者提供有关软件项目过程和产品的适当的可视性
软件质量保证包括评审和审核软件产品和活动,以验证它们是否符合相应的规程和标准,同时给项目和其它有关负责人提供这些评审和审核的结果
在软件项目的早期阶段,软件质量保证组就应参与制定计划、标准和规程等。它们能够降低软件项目成本,并满足项目和组织和策略的约束条件
-
目标
软件质量保证活动是有计划的
软件产品和活动与其适用的标准、规程和需求的一致性已得到客观地验证
受影响组和个人接到软件质量保证活动和结果的通知
高级管理者处理在软件项目内部不能解决的不符合问题 -
制定方针政策
项目遵循一个书面的、由组织制定的实施软件质量保证(SQA)的方针,一般规定
(1)对全部软件项目,SQA功能都应到位
(2)SQA应有一个向高级管理者报告的渠道,它独立于项目负责人和项目软件负责人
(3)高级管理者定期地评审SQA活动和结果 -
确保必备条件
(1)存在一个SQA小组,负责协调和实施软件项目的质量保证
(2)为进行SQA活动提供足够的资源和经费
(3)SQA小组的成员受到培训以便完成他们的SQA活动
(4)软件项目的成员接受有关SQA组的作用、职责、权力和价值等方面的定向培训 -
实施软件过程
(1)按照文档化的规程,为软件项目制订SQA计划,一般规定
(2)按照SQA计划进行SQA组的活动,SQA计划的内容包括
(3)SQA组参与准备和评审项目的软件开发计划、标准和规程
(4)SQA组评审软件工程活动以验证其符合性
(5)SQA组审计指定软件工作产品以验证其符合性
(6)SQA小组定期向软件工程组报告其活动的结果
(7)按照文档化的规程,对软件活动和软件工作产品中标识出的偏差写成文档,并加以处理
(8)合适时,SQA组与顾客的SQA人员一起对其活动和发现进行定期评审 -
验证实施
(1)高级管理者定期参与SQA活动的评审
(2)项目经理既定期地也事件驱动地参与SQA活动的评审
(3)独立于SQA组的专家们定期对项目SQA组的软件工作产品和活动进行评审