浅析基于过程的软件质量控制在信息化中的应用

时间:2022-09-06 02:15:53

浅析基于过程的软件质量控制在信息化中的应用

摘要:进入21世纪以来,信息化技术得到了蓬勃的发展,软件系统作为信息化应用的基础,其质量也成为信息化技术的核心内容。现阶段,探讨信息化中软件质量的管理与控制已成为诸多相关工作者的研究热点。该文就从基于软件过程的需求分析、软件设计、编码实现、软件测试、软件维护等环节切入,探讨如何管理和控制这些过程的质量,从而保证软件系统的整体质量。希望能将这些方法推广到信息化技术的类似应用中,供广大同行参考与借鉴。

关键词:软件;质量;管理;信息化;过程

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)08-1715-03

信息技术作为推动全球经济发展的重要力量之一,也在很大程度上对我国经济建设与发展起到了极为深远的影响。近年来,我国以信息化建设为中心,通过各种质量管理体系、方法不断强化软件质量管理水平,进而防范经营风险,期望不断增强信息化企业的竞争力。

传统软件质量管理方式较为偏颇,即单纯的依靠先进工具与方法来作为提高软件质量管理的关键,但在实践的过程中发现效果与预期相差较大。许多软件研发企业对于软件的质量控制存在诸多问题,往往因只过分关注某一个过程而导致整体质量的降低,如:未能准确评估客户需求与技术水平的平衡点,以致软件产品设计与开发完成后无法满足客户需求、或为了满足客户需求加大开发力度,虽然最终能够契合用户需求,但往往拖延了软件产品的交付工期,也加大了软件开发过程中的成本投入。

针对这一现状,提出基于过程的软件质量管理方法,即从软件的需求分析、设计、开发、测试、维护等各个环节,结合各过程环节的实际情况、特征,采取针对性的质量管理方式,实现从根本上保证软件产品的整体质量,更好地满足用户需求,进而提高软件企业的竞争力。

1 基于过程的软件质量控制概述

1.1 过程软件产品的含义

从广义来讲,质量代表的是产品或工作情况的优劣程度。从狭义来讲,质量是反应实体满足明确和隐含需求的能力与特性的总和。近年来随着社会公众对质量认知程度的不断加深,工业生产过程中“质量管理”的重要性日益凸显。早在20世纪80年代初期就有相关学者提出基于过程的软件质量管理的概念,就目前而言,基于过程的软件质量管理更多的被认为是将输入转变为输出的关联活动。从软件产品的设计成型及其整体管理活动来讲,软件质量管理过程包含三大过程,即软件工程过程、管理过程以及支持过程。软件工程过程主要涉及软件的需求分析、设计、编码、测试、运行。软件的管理过程主要包括软件产品的功能维护、质量控制。软件的支持过程主要是对软件工程过程的支持,评审、测量软件技术质量。

1.2 软件质量管理现状

我国信息产业的规模相较于欧美等发达国家较小,在资金的投入方面也较为不足,国家也尚未出台较为健全的辅助政策,而且我国在知识产权的保护方面也存在争议,导致我国软件质量普遍不高,这在一定程度上影响了我国软件质量管理工作的开展。目前我国软件质量管理问题现状主要表现在以下几方面:

1)缺乏质量控制意识

由于我国信息产业大多规模较小,生产体系尚不健全,相关企业也缺乏软件质量控制意识,以致许多软件产品质量问题没有得到企业的充分重视,进而导致我国软件产品质量普遍不高。同时软件产品属于无形的资源,与其他产品有着较大的差异,其质量控制与管理工作的开展难度较大,需要相关技术人员具备完善的信息技术知识体系,对软件进行全面的检测与评估。另外,在软件产品项目开发完成交付之后,目前也没有较为科学合理的量化指标对其质量进行评定。

2)刻意追求项目工期

许多软件开发企业片面追求软件开发项目的进度,以期加快项目开发工期,往往以牺牲质量为代价来保证项目的工期进度。因此在此过程中,势必弱化了对软件质量的控制,带来的结果,从眼前来看似乎满足了工期要求,但系统在运行中暴露出来的问题,必然需要进行及时修复,这反过来也间接地影响了系统正常运行的预期工期。这种刻意追赶项目进度而忽略质量的做法,对整个国家的信息化过程都有害而无利的。

3)质量管理体系滞后

相较于发达国家,我国信息化水平明显不足,而且起步的时间也相对较晚,缺乏足够的经验,也没有完善的制度规范与管理体系,制约了我国软件产品质量的提高。目前我国软件质量管理正处于发展的初级阶段,其质量管理体系相较于发达国家而言较为滞后,主要表现在软件开发企业对于软件技术的发展重视程度明显高于其对软件质量的要求。虽然软件开发是一项具有创造性的活动,重视相关技术人员在研发过程中的合作与创新,不断提高软件技术,但是,如果质量管理体系滞后,也是无法充分满足高质量软件产品的质量管理需求的。

4)缺乏健全的质量控制体系

信息化过程的基本流程主要有八个环节,环环相扣,缺一不可。首先,软件企业需要充分掌握用户的需求情况,便于开发工作有针对性的开展。其次,调研人员需要根据合理的需求开展市场调研活动。另外,还有产品选型、招标、开发、测试、上线与维护对于信息化过程软件开发质量均有着重要的影响。但是由于多数质量控制活动往往都集中在其中某一个或几个独立环节,如:开发实现、软件后期的测试过程、维护阶段,没有充分将质量控制理念贯穿到如软件过程的全过程,致使软件质量管理存在不足。

5)“转包”现象的泛滥

现阶段,许多软件开发企业将开发项目“转包”给其他软件开发商,诚然,“转包”在很大程度上加快了项目开发的进度,但是由于不同软件开发商进行局部开发时的重复调研、各自的质量评估体系、开发标准差异等,极易出现内部模块、接口调用、数据不兼容、共享等问题,导致软件系统的集成质量,进而影响到系统的整体质量。

2 基于过程的软件质量控制方法

2.1 软件需求过程的质量管理

IEEE软件工程对于“需求”的定义,主要涉及三方面的内容:

1)用户在解决问题或者达到目标所需的条件或能力。在需求调研工作中,调研人员需要全面收集市场用户需求,然后对用户需求进行整理与分析,同时需要划分信息化过程对需求的影响,确保软件开发项目可行性、功能性、与需求的一致性;

2)系统满足合同、标准、规范等所需具有的条件或能力,在编制用户需求规格说明书时,必须立足于软件开发质量控制流程规范、标准模板,再结合项目特点进行编制;

3)从实际操作来讲,需要分析用户需求规格说明书、开发软件需求规格说明书、项目视图与范围文件。在进行用户需求评审时,需要充分利用评审机制,特别要召集用户代表,参与对用户需求的确认,然后形成软件需求说明书。同样,需要对软件需求说明书进行评审,确认与用户需求说明书的一致性,并根据评审意见进行调整。

从诸多项目的实践经验来看,软件需求阶段的质量控制可从以下几方面进行关注:

1)客户管理。许多客户提出软件开发需求的时候,往往缺乏对于相关技术及其需求的认知。因此,软件需求分析相关工作人员就需要全面了解客户资料、组织特征等,然后帮助客户制定正确的需求决策,便于软件开发项目良好的进行。

2)目标过程。客户与软件开发商对于软件产品的期望就是软件项目开发的目标。首先需要对用户需求目标进行分析,需求分析相关工作者需要从中进行平衡与取舍,避免软件开发的实际能力与用户的需求产生较大的冲突。

3)范围控制与需求筛选。对比用户需求与实际情况,充分结合用户需求价值,对用户的需求优先级、重要性进行分析,以此确定软件的功能范围,分解软件结构,最终与客户就功能范围达成一致。

4)挖掘潜在需求。许多用户能提出明确的需求,往往会忽视一些可能的、不确定的需求。在进行用户需求调研时,需求分析人员需要结合用户的行业特征、行为习惯,以敏锐洞察力去引导用户提出潜在需求,以便在设计阶段预留兼容接口,提高系统的适应性。

软件需求作为整个软件产品过程的源头,软件开发商首先需要从根本上重点保证软件需求的质量,才能满足用户对于软件质量的高要求。

2.2 软件设计过程的质量管理

软件设计过程中的质量管理工作主要有两个环节:概要设计、详细设计。概要设计是通过对软件需求说明书进行分析后、基于分析结果采用相应的方式设计软件的总体架构、外部接口、内部接口、数据库类型、中间件等,便于详细设计工作有针对性的开展。详细设计则是在概要设计提出的总体结构框架基础上,对具体实现的方法、逻辑、数据字典等进行详细的描述。

从整个软件生命周期来看,软件设计过程耗时相对较少,但是却极为重要,它既是软件需求的结果,也是编码实现的基础和依据。整个软件架构设计是否合理,甚至关系到软件系统是否能真正实现、及软件产品的使用寿命。

因此,在软件设计过程中需要严格按照用户对于软件的需求规格说明进行。同时也需要充分结合软件设计过程活动,指定合理的质量目标,通过组织同行评审等方式,确保设计的合理性、可行性,进而达到提高软件设计过程的质量目标。

2.3 软件编码过程的质量管理

软件编码过程,就是利用具体的编程语言来实现软件的详细设计。软件编码作为软件产品开发形成的关键环节,在软件质量管理体系中属于特殊过程。软件编码过程的质量管理需要软件开发工作者全程投入,才能从根本上保证软件编码过程的质量。常见的软件编码过程的质量管理方法有:规范编码、审查代码、单元测试等方式。

在规范编码的时候,需要注意源代码的排版规整、适当注释,提高软件程序的可读性与一致性,也便于后期维护工作的开展。另外,做好源代码的排版也能够在很大程度上保证成果的易于共享。

在进行代码评审过程中,可以采取开发人员间交叉走读代码、或者组织专家小组通过开会讨论的方式对源代码进行走查。通过对代码进行严格的评审,可以及时的发现源代码编制过程中存在的一些漏洞与问题,如:全局与局部变量的滥用、数据初始化问题、程序实现逻辑的错误等,既可丰富开发人员的编码经验,同时也可实现成果的共享。

在单元测试过程中,需要关注模块对数据的正确输入与输出、局部数据结构的处理完整性、模块运行覆盖所有预期的逻辑范围、模块对边界数据等特殊情况的处理机制、对异常情况的容错处理能力等。

2.4 软件测试过程的质量管理

软件测试作是软件生命周期中的其中一个环节,作为软件过程之一,目的是为了验证软件开发商开发的软件能否充分满足用户需求。通过软件软件测试,能尽可能地发现软件中存在的功能、性能、易用性、可用性、维护性等方面的问题,以便及时修复、纠正,从而确保软件系统在交付给用户时产品质量的可靠性。

软件测试通常包含三方面的测试:单元测试、集成测试、系统测试。单元测试既可在编码阶段由开发人员进行,也可在测试环节由专门的测试人员来完成。1) 单元测试:首先是以模块为详细设计的基础,进而对模块中存储的输入信息、输出信息、处理信息等进行全面的测试,发现软件集成前各个模块中潜在的故障或错误信息。2) 集成测试:集成测试主要是以概要设计为基础,首先将软件各个模块集成,组装完毕后进行相应的测试,这样可以发现软件系统各模块间在交互、共享等方面的错误。2) 系统测试:系统测试以需求为基础,检验、验证系统实现的功能是否完全满足软件需求规格说明书中的内容,一旦发现问题及时提出并跟踪、验证修正结果。

软件测试过程中的质量管理可以采用缺陷度量方法,即根据测试过程中发现的缺陷等级(严重、一般、优化)、缺陷引入阶段(需求、编码、测试、环境、其他)、缺陷发现与修复版本号等,从中分析系统的缺陷严重程度、修复情况、缺陷原因,再结合测试人员花费的测试工时,计算出缺陷密度,可作为衡量开发质量的参考依据。通过对缺陷资源库进行整理,分析缺陷集中高发环节,利于测试人员积累测试经验,开发人员避免类似缺陷的重复产生,为其他软件项目的研发提供借鉴意义。

2.5 软件维护过程的质量管理

在软件系统完成测试交付客户之后,软件开发商还需要为客户提供全面的维护、支持服务,还需要对客户提出的新需求进行响应与完善。一般来说,软件维护过程的质量管理包含修正性、适应性、完善性、预防性等四类维护工作的质量管理。修正性维护是针对客户在软件使用过程中出现的问题进行及时改正,保证软件正常运行。适应性维护是保证软件在使用过程中能够充分满足客户日益变化的需求,延长软件的使用周期。完善性维护是对系统在使用过程中的某些不合理、不完备进行完善。预防性维护是对软件在使用过程中可能出现的潜在、隐藏问题进行修复,预防问题的真正发生。

软件的维护性主要包含三种主要特性,即可测试性、可修改性与可理解性。软件开发商需要对软件维护过程中的上述特性进行分别控制,尤其需要在软件测试完成后对软件的可维护性进行确认,从根本上保证软件的维护过程能满足客户的基本需求。

综上所述,基于过程的软件质量管理,需要立足于用户的实际需求,并具体落实到软件过程的各个环节,只有各环节的质量管理做到有效、可控,软件系统的整体质量才能有所保证。

3 结束语

软件作为信息化社会的重要基础,在一定程度上代表了国家生产力水平,也代表了国家的综合国力。在知识经济时代的大背景下,信息产业作为支柱性产业,能够从根本上推动我国经济的发展。信息产业是一项系统的工程,已经逐步覆盖了我国社会经济发展的方方面面,对我国的经济发展起到了积极的促进作用,但是随着信息技术的不断普及,对软件质量的要求也越来越高。如何从软件过程出发,依靠各阶段的质量控制手段来保证和提升软件系统的整体质量,这将有利于我国信息化水平的提高,进而防范经营风险问题,不断增强信息化产业的核心竞争力。

本文正是以分析当前软件质量管理现状为出发点,然后结合软件过程的各环节特点,阐述了基于过程的质量控制方法,以供广大同行参考,以期推动我国软件产业的长远发展。

参考文献:

[1] 陈秀琴.基于过程的软件质量管理在信息化中的应用[J].科技致富向导,2013(5).

[2] 杨扬,李为卫,贾君君.基于过程的软件质量管理在信息化中的研究[J].信息技术,2011(3).

[3] 商惠华.基于过程改进的软件质量管理模型[J].计算机工程与设计,2011(5).

[4] 李文芳.基于过程控制的软件质量管理初探[J].计算机光盘软件与应用,2012(15).

[5] 王超,梁义芝.基于过程控制的软件质量保障模型[J].计算机与数字工程,2009(10).

[6] 马林,吴超英.基于过程性能模型的软件质量管理过程的研究与应用[J].数字技术与应用,2010(1).

[7] 许震东.CHW软件公司基于过程的迭代质量管理模型的研究及应用[D].成都:电子科技大学,2010.

[8] 王小刚.信息化平台及组织级软件过程模型技术[D].武汉:华中科技大学,2009.

[9] 叶元龄.基于知识共享的软件企业技术创新能力研究[D].北京:北京大学,2013.

[10] 谭燕齐.基于电子政务管理系统软件开发项目的质量管理研究[D].北京:北京邮电大学,2012.

[11] 周洁.软件质量控制在GDMS项目管理中的应用研究[D].北京:北京邮电大学,2012.

[12] 俞斌.企业信息化项目开发及优化管理模式研究[D].上海:上海交通大学,2012.

[13] 郭钧.整车制造企业生产过程质量控制及评价方法研究[D].武汉:武汉理工大学,2012.

上一篇:老人打车难 软件惹的祸? 下一篇:独立学院《数据结构》课程教学方案探讨