【摘要】本文指出了软件开发过程中质量控制的重要性,通过分析开发过程中存在的问题,提出了一些提高软件开发质量的方法的对策措施。
【关键词】软件开发;软件工程;质量控制
软件质量是指开发出来的软件不仅可以满足客户明确提出来的要求还要满足某些没有明确提出来的要求,软件质量越高,客户需求满足度就越高。软件项目质量控 制不仅仅是控制软件设计的最终结果,它其实要求贯穿于软件设计项目的全过程,从软件开发初期的客户需求调查,到最终的软件交付评审,每个阶段都要进行仔细 的控制,才能提高软件开发的质量。
一、软件开发过程的问题分析
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/