软件开发质量控制研究

【摘要】本文指出了软件开发过程中质量控制的重要性,通过分析开发过程中存在的问题,提出了一些提高软件开发质量的方法的对策措施。
  【关键词】软件开发;软件工程;质量控制

   软件质量是指开发出来的软件不仅可以满足客户明确提出来的要求还要满足某些没有明确提出来的要求,软件质量越高,客户需求满足度就越高。软件项目质量控 制不仅仅是控制软件设计的最终结果,它其实要求贯穿于软件设计项目的全过程,从软件开发初期的客户需求调查,到最终的软件交付评审,每个阶段都要进行仔细 的控制,才能提高软件开发的质量。

  一、软件开发过程的问题分析

  1、不能明确分析软件的需求

   软件的需求是决定软件质量的一个非常关键的因素,如果不能够准确明了的分析软件需求,就达不到软件应有的效果,从而不能真正满足客户的要求。然而软件的 需求不是显而易见的,它需要软件开发人员和客户或者业务人员之间进行充分有效地沟通和交流,使得在软件开发一开始就能够将需求提得既明确又充分,这样才能 为以后的工作打好基础,避免在一开始就偏离了软件开发的方向。在设计开发的过程中也要不断与客户进行沟通和交流,及时按照客户的意见调整软件,才能提高软件开发的质量。

  2、软件开发工作不规范

   由于软件质量许多指标不能量化,因此,软件开发的质量好坏也没有办法直接考核软件开发人员的责任,这样就致使软件开发人员不会很重视软件开发的质量,往 往更关心项目开发的成本和进度。此外,软件开发人员没有制定软件开发计划或者并不能按照软件开发的计划进行工作,为了赶进度经常跨阶段进行开发工作,这样 就没法保证软件开发过程的科学性和系统性,软件开发的质量也不能得到保证。软件开发管理人员和技术人员也会影响软件开发的质量。软件开发工作需要他们之间 进行频繁的沟通和交流,倘若不能及时沟通,对开发过程中出现的不同认识和误解等等问题不能及时消除,就势必会影响到软件产品的质量。此外,软件开发人员在 开发过程中一旦出现流动,就会给软件开发工作带来很大的影响,也不利于提高软件产品的质量。

  二、提高软件开发质量方法和对策

  1、软件产品质量控制方法

  (1)软件工程方法

   软件工程的基本方法就是把软件开发过程划分为若干个阶段,在每个阶段开发过程中都设置不同的目标、成本、时间等验收标准,在前一阶段工作通过验收后才能 开始下一阶段的工作,这样就会达到提高软件开发的质量的目标。软件工程将开发过程分为软件生产方法、需求分析、软件设计、软件生产工具、测试、验证与确认、评审和管理等8个阶段,每个阶段都以软件质量控制为核心,规范每个操作流程,从而提高软件开发产品的质量。

  (2)ISO9000-3标准

   ISO9000系列标准原本并不能直接用于管理软件制作,而是为制造硬件产品而制定的标准。后推行的ISO9000-3标准为使软件产品达到质量要求, 要求软件开发机构建立质量保证体系,明确供需双方的职责,针对所有可能影响软件质量的各个因素都要采取有力措施,作出如何加强管理和控制的对策和措施。 ISO9000-3标准叙述了需方和供方应如何进行有组织的质量保证活动,规定了从双方签订开发合同到设计、实现以至维护整个软件生存期中应当实施的质量 保证活动,但并没有规定具体的质量管理和质量检验方法和步骤。

  (3)CMM认证

   CMM是一种专门针对软件产品开发及服务的高效管理方法,强调软件开发过程的不断改进和提高,在软件企业中引入CMM,有助于解决软件开发过程中质量控 制方面出现的问题。CMM不仅对软件企业工程能力进行评估,更着重于软件开发过程的管理,强调“对软件开发过程进行持续的改进”。CMM通过优化企业开发 流程,改善现有的规范、团队配合工作方法,来弥补软件企业对某个项目经理或开发工程师的单纯依赖。软件能力成熟度模型重点是从组织管理方面研究评估软件生 产过程,从而提高软件质量。

2、软件开发质量控制对策
  (1)合理规划并严格按照计划执行

  在进行软件开发之前首先要制定一个提高软件开发质量的保证计划,在开发过程中严格按照计划执行,不急于抢进度,保证软件开发的质量。建立文档记录需要跟踪的工作以及保证软件开发质量所需要的信息。

  (2)坚持软件评审制度

  坚持软件评审是保证软件质量的重要方法,软件开发过程按阶段可大致分为软件需求分析、软件设计、编码和单元测试、软件部件测试、软件验收六个阶 段。软件评审工作要贯穿于软件开发的整个过程中,在软件开发的各个阶段都要进行评审,当前软件开发阶段的工作成果达到计划要求以后才能开始下阶段的工作。 评审工作可以以会议的形式组织开展,会议要各方面人员都要参加,包括客户、软件管理人员以及软件开发人员等等,通过会议进行沟通交流,最终给出评审结果。 在每个阶段评审过程中产生的问题要尽快在本阶段解决,没有解决之前不能进入下阶段工作,这样就可以保证软件开发过程中每个阶段的工作质量都能得到提高。

  (3)采用先进的软件设计技术和方法

  在软件开发过程中应尽量采用先进的设计技术和方法,如面向对象和基于构件的方法,来提高软件设计产品的质量。面向对象的方法优点是能够提高软件 的重复利用性,将错误和缺憾最小化,还有利于用户的参与,能够很好的提高软件产品的质量。基于构件的开发方法又称为“即插即用编程”方法,构件可以向软件 供应商购买,也可以自行开发,而且可以重复多次使用,然后将编制好的构件插入到设计好的框架中去,从而形成一个大型的软件。如果某个构件不符合开发的要 求,可以对某个构件进行修改,不会对其他构件造成影响,也不会影响到整个系统功能。

  (4)软件质量控制的关键――软件测试

  在软件开发过程中,软件测试也是软件质量控制的关键,软件测试主要包括单元测试、集成测试、确认测试和系统测试。在开发的每个阶段都要通过测 试,如果测试结果与预期结果不一致,就要查找出软件中存在的问题,针对问题提出解决方案,不断改进软件质量。通过软件测试不仅可以寻找出软件中存在的与软 件客户需求不一致的错误和缺陷,还可以节省大量的时间和人力,确保软件开发的质量。开始测试之前要制定好测试计划,确定好测试的范围方法等等。在测试过程 中要做好记录,详细记录每个测试过程中的数据,而且每个阶段测试的结果都要进行存档,如果测试过程中出现错误,就要编写错误问题的报告,经过调试解决所发 现的问题以后才能进行下阶段工作。

  (5)注重文档管理

  目前很多软件开发商都忽视了软件开发过程中的文档管理,其实文档管理在软件开发过程中起着非常重要的作用,在软件开发的过程中建立并保存文档, 有利于软件的使用和维护,有益于软件质量的提高。文档管理要贯穿于整个软件开发的全过程,即软件在每阶段的开发、测试、评估都要保存相关的文档,这样有利 于软件的开发和维护,出现了错误有章可循,有助于软件开发质量控制。文档要提供给参与软件开发的各个小组,不仅利于软件开发过程中的交流和沟通,还可以通 过文档来控制软件开发的进度,避免赶进度、跨进度工作。在整个软件设计开发过程中,文档会不断进行生成、修改、补充完善,要做好文档的记录保存工作。

  (6)客户要参与到软件开发中去

  软件客户要参与到软件开发的全过程中去,在开发之初对软件的需求不是很明确的情况下,要加强与软件开发人员的沟通和交流,不断了解自身更深层次 的需求。软件开发需要多方参与,尤其是软件客户方面的人,在需求调查和分析阶段,软件客户要将自己的需求和软件开发人员进行有效地沟通,使得软件开发人员 能够最大限度的了解客户需求,才能按照需求目标开发出令客户满意的软件。在软件测试和评审阶段,客户应按照自己的需求对设计开发的软件进行检测和评审,提 出自己的意见和建议,以便在得出结论以后能够尽快及时的得到修正。软件开发人员对于客户提出的意见和建议要按照要求进行修改和完善,及早与用户进行沟通, 避免影响验收。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-10-21 10:00:30

软件开发质量控制研究的相关文章

《实践者的研究方法》—— 第2章 软件工程 2.4 软件开发神话

2.4 软件开发神话 软件开发神话,即关于软件及其开发过程的一些被人盲目相信的说法,这可以追溯到计算技术发展的初期.神话具有一些特点,让人觉得不可捉摸.例如,神话看起来是事实的合理描述(有时的确包含真实的成分),它们符合直觉,并且经常被那些知根知底的有经验的从业人员拿来宣传. 今天,大多数有见地的软件工程师已经意识到软件神话的本质--它实际上误导了管理者和从业人员对软件开发的态度,从而引发了严重的问题.然而,由于习惯和态度的根深蒂固,软件神话遗风犹在. 管理神话.像所有领域的经理一样,承担软件职

.Net开发平台研究(一

.Net开发平台研究 总结: .Net开发平台的发布标志着近十年来微软开发平台第一个重大的转变.这个开发平台包括一个用于加载和运行应用程序的新的软件基础结构(.NET Framework和ASP.NET),一个新的开发环境(Visual Studio .NET),以及支持该结构的编程语言. 微软希望随着这个新平台的发布,评论不再将这个平台作为朦胧的软件,而且开发者也将发现该平台使得Windows上Web应用程序(尤其是Web Service)的开发更为容易.这样或许会使更多的开发者拥护公司的操作

敏捷软件开发实践:概括

应朋友之邀,我准备写一组文章关于敏捷软件开发的实践,也帮助广大没有用过Agile的或者只停留在书本内容上的朋友亲临敏捷软件开发这个惊心动魄的历程. 所谓敏捷,书本上有很多的介绍,我也不想重复发明轮子了,反正就我的理解,敏捷的精髓就是面向变化,敏捷这个词语,我最早遇到是出现在玩各种游戏中,所谓的"力量型"英雄,"敏捷型"英雄,比如暗黑的亚马逊,比如魔兽世界的猎人,这种职业往往有很高的闪避,而且可攻可守,或者说三国杀里面最典型的赵云"闪杀杀闪闪,能进能退&qu

Java文萃 什么才是软件开发的葵花宝典

中国人大都喜欢用武侠小说来比较软件开发,但是在实战武功中,只有葵花宝典才是最厉害的,也只有掌握了葵花宝典,才能称为"不败". 但什么才是软件开发的葵花宝典? 让我们先从一些现象出发.我们的前提是,软件开发是一项智力密集型劳动.对于智力密集型劳动,我们观察到的现象是,个体的表现差异很大,团队的表现差异很大,组织的表现差异很大,国家的表现差异很大.这不象体力占主要的劳动,象百米王跑百米的速度也仅比我快50%.但在棋类运动中,一个高手可以车轮战数位低手,而且毫无例外地将他们一一击败! 这些智

关于“软件开发”,“工程师文化”,“团队管理”

 分享一下 weibo@左耳朵耗子 陈皓的"建一支强大的小团队"报告内容,挑选了几点. 人物介绍 行业背景 :金融行业(Thomson Reuters) ,计算平台(Platform),电子商务(Amazon)  技术背景 : C/C++/Java,Unix/Linux/Windows ,Web  个性:码农兼包工头 ,敏捷恐怖分子 ,Unix/Linux/C/C++脑残粉 ,"技术部门无技术种族"歧视者 ,程序员文化民族主义者  陈皓是酷壳coolshell的博客

《敏捷软件开发:原则、模式与实践(C#版.修订版)》一导读

前 言 20世纪90年代初,我(Bob)写了一本名为Designing Object-Oriented C++ Application using the Booch Method的书.它曾是我的代表作,其效果和销量都让我非常高兴. 这本书最初想作为Designing一书的第2版,但是结果却并非如此.书中所保留的原书内容非常少,只有3章内容,即便这3章也进行了大量的修改,但书的意图.精神以及许多知识是相同的.自Desinging出版10年以来,在软件设计和开发方面我又学到了非常多的知识,这些将在

招聘:用户界面交互设计师,软件测试工程师,软件开发工程师,工作地点:长沙

问题描述 职位名称:用户界面交互设计师职位说明:设计产品用户交互界面,发现产品可用性问题,改进产品的整体体验和易用性职位要求:1.大学本科或以上相关学历2.具有较好的沟通能力.主动性和团队协作能力3.积极的人生态度,有理想的现实主义者,身心健康,诚实正直4.2年以上软件界面设计经验5.具有一定的客户引导.用户研究.原型设计.可用性测试和评估技能6.对用户体验方面的理论有比较深刻的了解和认识7.具备很强的创新能力和在复杂的约束条件下找到平衡或创新的方法8.熟悉软件开发流程,对Usecase和ASP

评审技术在高质量软件开发中的应用分析(下)

接评审技术在高质量软件开发中的应用分析(上) 三.评审在高质量软件开发的实际应用 3.1 高质量软件开发项目介绍 高质量软件,如电信软件.金融证券类软件等,有较严格的要求:可用性要求非常高,并且不会因为系统维护和扩展而带来运营中断:支持使用现有管理工具和标准进行远程管理:能够提供更出色的性能以及运营在高可用性集群上的能力,减少任何单点的软硬件失效现象.五个九(99.999%)意味着一个系统的宕机时间一年不超过5分26秒.因此高质量软件项目是一种对可用性.可靠性.稳定性要求非常高的软件项目,要求软

让你提前认识软件开发(2):软件开发工程师常用的工具软件

第1部分 重新认识C语言 软件开发工程师常用的工具软件           有一次,我打开电视机准备随便看看,无意中被一部战争片吸引住了.成千上万的共产党战士搭起云梯,想攻破一座城池.但是城楼上面的敌人负隅顽抗,拼了命地阻击我军的进攻.双方的伤亡都很惨重,但城就是攻不下来.眼看我军剩下的人不多了,突然不知从什么地方开出一辆坦克,两炮就把城门轰开了.我军趁势攻入城中,将敌人全部歼灭了.         这类电视剧比较常见,相信大家看了不止一次.但是,我看完之后,那个场景还一直留在我的脑海里.成千上