免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2510 | 回复: 6
打印 上一主题 下一主题

软件项目质量管理 zt [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-14 10:12 |只看该作者 |倒序浏览
提起如今的IT项目,软件工程倍受关注。而软件的质量更是众人关注的焦点,因为目前还没有一套完善的评估标准。甚至有人提出,现在的软件开发根本提不上是“工程”,因为它太稚嫩了,还没有一套成熟的标准来比照;因而软件项目极易出现失败或失误。大量实践证明,软件工程项目的成败,通常是因为管理问题(协同工作的能力),而不是技术上的问题。要想做一盘“完美”的软件大餐,质量管理的作用是不言而喻的。
在实际的项目质量管理中,质量管理总是围绕着质量保证(QualityAssurance)过程和质量控制(QualityControl)过程两方面。这两个过程相互作用,在实际应用中还可能会发生交叉。正如引言所述,关于软件的质量,很难下一个非常明确的定义。本文主要针对软件工程中的质量管理来进行讨论。

做软件“大餐”的工序

软件质量保证(SoftwareQualityAssurance,以下简称SQA)的目的是验证在软件开发过程中是否遵循了合适的过程和标准。软件质量保证过程一般包含以下几项活动:
首先是建立SQA组;其次是选择和确定SQA活动,即选择SQA组所要进行的质量保证活动,这些SQA活动将作为SQA计划的输入;然后是制定和维护SQA计划,这个计划明确了SQA活动与整个软件开发生命周期中各个阶段的关系;还有执行SQA计划、对相关人员进行培训、选择与整个软件工程环境相适应的质量保证工具;最后是不断完善质量保证过程活动中存在的不足,改进项目的质量保证过程。
独立的SQA组是衡量软件开发活动优劣与否的尺度之一。SQA组的这一独立性,使其享有一项关键权利——“越级上报”。当SQA组发现产品质量出现危机时,它有权向项目组的上级机构直接报告这一危机。这无疑对项目组起到相当的“威慑”作用,也可以看成是促使项目组重视软件开发质量的一种激励。这一形式使许多问题在组内得以解决,提高了软件开发的质量和效率。
选择和确定SQA活动这一过程的目的是策划在整个项目开发过程中所需要进行的质量保证活动。质量保证活动应与整个项目的开发计划和配置管理计划相一致。一般把该活动分为以下五类:

1)评审软件产品、工具与设施
软件产品常被称为“无形”的产品。评审时难度更大。在此要注意的一点是:在评审时不能只对最终的软件代码进行评审,还要对软件开发计划、标准、过程、软件需求、软件设计、数据库、手册以及测试信息等进行评审。评估软件工具主要是为了保证项目组采用合适的技术和工具。评估项目设施的目的是保证项目组有充足设备和资源进行软件开发工作。这也为规划今后软件项目的设备购置、资源扩充、资源共享等提供依据。

2)SQA活动审查的软件开发过程
SQA活动审查的软件开发过程主要有:软件产品的评审过程、项目的计划和跟踪过程、软件需求分析过程、软件设计过程、软件实现和单元测试过程、集成和系统测试过程、项目交付过程、子承包商控制过程、配置管理过程。特别要强调的是,为保证软件质量,应赋予SQA阻止交付某些不符合项目需求和标准产品的权利。

3)参与技术和管理评审
参与技术和管理评审的目的是为了保证此类评审满足项目要求,便于监督问题的解决。

4)做SQA报告
SQA活动的一个重要内容就是报告对软件产品或软件过程评估的结果,并提出改进建议。SQA应将其评估的结果文档化


5)做SQA度量
SQA度量是记录花费在SQA活动上时间、人力等数据。通过大量数据的积累、分析,可以使企业领导对质量管理的重要性有定量的认识,利于质量管理活动的进一步开展。
要说明的是,并不是每个项目的质量保证过程都必须包含上述这些活动或仅限于这些活动,要根据项目的具体情况来定。
SQA计划中必须明确定义在软件开发的各个阶段是如何进行质量保证活动的。它通常包含以下内容:质量目标;定义每个开发阶段的开始和结束边界;详细策划要进行的质量保证活动;明确质量活动的职责;SQA组的职责和权限;SQA组的资源需求,包括人员、工具和设施;定义由SQA组执行的评估;定义由SQA组负责组织的评审;SQA组进行评审和检查时所参见的项目标准和过程;需由SQA组产生的文档。
选择合适的SQA工具并不是试图通过选择SQA工具来保证软件产品的质量,而是用以支持SQA的活动。选定SQA工具时,首先需要明确质量保证目标。根据目标制定选择SQA工具的需求并文档化,包括对平台、操作系统以及SQA工具与软件工程平台接口的要求等。

如何使白壁“无瑕”

按工序去做也不一定能得到一盘完美的“大餐”,因为火侯等因素实在很难掌握。万一掌握不好怎么办?软件质量控制主要就是发现和消除软件产品的缺陷。对于高质量的软件来讲,最终产品应该尽可能达到零缺陷。而软件开发是一个以人为中心的活动,所以出现缺陷是不可避免的。因此,要想交付一个高质量的软件,消除缺陷的活动就变得很重要。缺陷消除是通过“评审”和“测试”这类质量控制活动来实现的。
缺陷在软件开发的任何阶段都可能会被引入。项目质量管理过程包含了许多可以识别缺陷、消除缺陷的过程。“识别缺陷”和“消除缺陷”本来是两个不同的过程,但在这里为了简便统一用“消除”来代表它们。潜在的缺陷越大,用来消除它所花的费用越高。因此成熟的软件开发过程在每一个可能会引入潜在缺陷的阶段完成之后都会开展质量控制活动。这些为了消除缺陷的活动包括:需求评审、设计评审、代码走查、单元测试、集成测试、系统测试以及验收测试等。
质量控制的任务就是策划可行的质量管理活动,然后正确地执行和控制这些活动以保证绝大多数的缺陷可以在开发过程中被发现。
正如前面提到的,在进行评审和测试时可检测到缺陷。评审是面向人的过程,测试是运行软件(或部分软件)以便发现缺陷。在一个项目里,评审和测试活动是预先策划好的(计划书中确定执行哪些质量控制活动和何时执行这些活动)。在执行过程中,根据已定义好的过程来执行这些活动。通过执行这些活动来识别缺陷,然后消除这些缺陷。例如,系统测试过程一般包括制定测试计划,测试计划中应列出在测试执行过程中所有的测试用例,评审测试计划,并且最终执行测试计划.

论坛徽章:
0
2 [报告]
发表于 2003-05-14 18:37 |只看该作者

软件项目质量管理 zt

很强调评审
这可能就是SQA的特点吧

但是这样只是在大型软件设计中使用
小软件设计中使用的话会花费更多的人力物力

而且小软件重构而是改BUG都相对容易些
因为一个BUG的关联性很小
但大软件的BUG可能有多人关联
所以重视评审

论坛徽章:
0
3 [报告]
发表于 2003-05-15 14:58 |只看该作者

软件项目质量管理 zt

这篇文章强调得是SQA在软件工程中得作用
现在很多软件公司都没有SQA部门,所谓得白盒黑盒测试都是哄用户,知识强调是否实现系统功能,修改一些bug而已。
很多代码只是增加了可读性(加了注释),而代码得健壮性、可移植性都不怎么样
中国得程序员喜欢标新立异,而不追求代码风格的统一。
哎,所以中国的cmm要比印度差很多

论坛徽章:
0
4 [报告]
发表于 2003-05-15 17:19 |只看该作者

软件项目质量管理 zt

如果有SQA的话
那么自然会增加成本
而许多公司所依靠的竞争优势就是价格上的优质

所以很少会对这进行投入

另外国内市场也不是很规范
主要是靠关系而不是看质量
所以我想要他们成立SQA还需要很长一段时间

当然如果是做软件外包的话可能会成立

论坛徽章:
0
5 [报告]
发表于 2003-05-16 09:16 |只看该作者

软件项目质量管理 zt

原帖由 "无双" 发表:
如果有SQA的话
那么自然会增加成本
而许多公司所依靠的竞争优势就是价格上的优质

所以很少会对这进行投入

另外国内市场也不是很规范
主要是靠关系而不是看质量
所以我想要他们成立SQA还需要很长一段时间
..........

不错,软件外包成立一个SQA小组是个好办法
但是,涉及到方方面面的文档都要齐全,软件的结构框架,模块实现功能,系统间的衔接,数据库的选择与优化等等
感觉做SQA所花的时间不一定比开发的时间少
毕竟花长时间看别人的代码也是很痛苦的事情
而且SQA在国内被看成是软件测试,所处的地位比较低下,很少能像上述说的“越级”,充其量在项目小组中能建立一个测试部门,或者就是由开发人员临时充当测试人员,像这样,测试的效率就比较低而且还有先入为主的想法。所开发的软件仅仅能满足客户的的功能需求,而达不到一个好产品的概念。

论坛徽章:
0
6 [报告]
发表于 2003-05-16 11:59 |只看该作者

软件项目质量管理 zt

其实如果是大软件的话确实是开发时间少
多数时间都是在测试与设计上

所以大公司还很重视SQA的

论坛徽章:
0
7 [报告]
发表于 2003-05-16 12:26 |只看该作者

软件项目质量管理 zt

只要文档齐全,QA是没什么问题的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP