致力于打造一个专业的中小学教育学习网站

软件质量保证方法研究

时间:2021-07-17 15:34:45 admin

  软件质量保证方法研究

  摘要:本文针对目前软件质量存在的问题,通过对软件质量保证方法研究,从而提出具体的以软件质量为核心的软件质量保证方法。

  关键词:软件质量保证;软件质量;软件质量管理

软件质量保证方法研究

  中图分类号:TP3文献标识码:A文章编号:1007-9599 (2012) 07-0000-02

  一、引言

  目前在许多软件开发过程中,软件开发方只注重实现软件功能的正确性,用户对质量方面要求也往往不够明确,软件质量成为隐含的需求,开发方为了赶进度,往往也忽略了软件的质量,直到后续交付用户后中发现大量软件质量问题。导致项目执行周期遥遥无期,用户不满意,软件开发方也毁了声誉,追加了大量项目实施费用。软件规模越复杂,其质量就越难保证,目前国内和国外的软件产品,最为明显的也是致命的差距就在于产品质量。

  二、影响软件质量的因素

  软件质量问题主要来源于软件的开发过程,而影响开发过程质量的主要特性包括:开发所采用的技术、开发者个人的业务经历水平及开发所使用的工具,常见影响软件质量的因素归纳总结有以下几个方面。

  (1)需求分析因素。对用户的提出的需求沟通不到位,转换为软件需求规格说明不完整;用户需求变更管理不到位,用户需求可能存在变更,而软件开发者没有及时更改软件或软件更改引入新的问题等。

  (2)软件设计方法因素。软件开发者往往是先编码后写设计方案,或者按照自己的编程习惯开发软件,导致软件不符合用户需求,或未考虑用户对特殊情况处理和错误处理情况等。

  (3)编码过程因素。主要表现在软件编码不规范,软件容错能力不够等。

  (4)内部测试过程因素。如内部测试未开展或内部测试不充分等。

  (5)软件文档因素。如文档描述存在二义性、文文之间描述不一致,文档版本不一致等。

  三、软件质量保证方法

  (一)建立以软件质量为核心的质量体系

  建立树立为软件质量为核心的软件质量管理体系,如依据软件能力成熟度模型集成(CMMI)建立管理体系,明确在软件开发的各个阶段必须控制的质量指标。软件项目组严格按照质量体系开发软件,质量保证人员必须全程跟踪监督。软件质量体系度量包括以下方面。

  (1)需求分析质量度量。软件需求分析是否充分、需求是否完整、需求定义是否准确,是否存在需求理解不同的情况,软件需求规格说明文档是否覆盖软件任务书或合同中所有要求。

  (2)软件设计质量度量。在软件设计过程,是否进行了概要设计和详细设计,软件设计是否满足软件需求,软件设计文档是否详细等。

  (3)测试结果质量度量。内部测试如单元测试、单元集成和测试、配置项测试、系统合格性测试是否都逐层开展,发现的问题是否都进行了处理,测试是否依据了软件需求文档等。

  (4)验收结果质量度量。是否组织开展软件验收工作,对软件完成的功能数量,各项性能指标等是否进行了评审,各项功能性能质量是否满足用户需求等。

  (二)选择最合适的开发方法

  软件开发方在需求确定以后,应根据软件特性选择最合适的开发方法。目前软件开发方法主要有Parnas法、Jackson法、Yourdon法等,面向对象方法、原型化方法、可视化方法等。其中可视化方法适用于图形类应用软件开发;面向数据结构的方法及原型化方法适合于中小型系统的开发。优先推荐使用Parnas法,该方法是1972年Parnas提出来的,基本思想是在设计时提前预测软件可能存在的需求变更,通过对可能变化的信息集中在某些模块内,使其与其他模块无关,提高了软件的可维护性,避免了错误的蔓延,也就提高了软件的可靠性。

  (三)采用软件重用技术

  软件重用是指在开发新软件的过程中重复使用已有的软件成分,该软件成分可能是已存在的软件,也可能是专门设计的可重用的软件构件。广义的软件重用还包括软件的开发思想方法、文档、环境、数据等。最大限度地采用软件重用技术,不仅能缩短开发周期,提高开发效率,也能提高软件的可维护性和可靠性。

  (四)加强软件容错设计

  容错是指系统或软件出现有限数目的硬件或软件故障的情况下,系统仍具有连续正确执行任务的固有能力。其主要目的是提供足够的冗余信息和合适的算法程序,使系统在实际运行时能够及时发现程序设计错误,采取补救措施,以提高软件可靠性。

  软件容错设计有冗余设计与非冗余设计两类方法。冗余设计有软件冗余、硬件冗余、时间冗余和信息冗余等。其中软件冗余又有表决器、N版本和恢复块等方法在软件应用较少,不作为本文论述的重点。非冗余设计有保护处理、异常处理、容差处理看门狗等技术等。

  1.时间冗余容错技术

  时间冗余容错方法是以牺牲软件执行效率来换取软件可靠性的一种手段,时间冗余容错包括:有限地降低系统的运行速度以增加系统的可靠性;使用重复执行指令或程序来检测系统故障,使系统从故障恢复工作。

  (1)冗余指令。对于80XX系列等16位单片机和自行设计的低集成度DSP系统使用汇编语言编程时,在对程序流向起决定作用的指令和某些对系统工作状态起重要作用的指令(如中断操作、堆栈设置等)之前插入几条NOP指令,可确保这些指令正确执行。在硬件初始化、外部存储器访问、A/D采集等插入NOP指令或延迟函数,可确保硬件能够有足够的时间响应指令。

  (2)指令重复执行。根据当前系统的复杂程度,对于软件中的重要操作指令(例如存储区换页操作或重新定义指针操作)时,让其重复执行一定次数,重要操作指令重复对系统的运行时间增加甚微,但对整个系统的安全性和可靠性的作用重大。

  (3)程序复核。由于外界干扰或者机器内部的瞬间故障,有可能修改某些重要数据,如果继续使用这些数据可能会给系统带来灾难性的后果。在程序的执行中对重要数据进行复核,检查它们是否在指定的范围内,如果是,继续执行,如果不是,作相应的出错处理。

  2.信息冗余技术

  信息冗余是为了检测和纠正信息在运算或传输过程中的错误而外加的一部分冗余信息码,使原来不相关的数据变为相关,并把这些冗余码作为监督码与有关的信息一起传递。信息冗余包括:奇偶校验码、校验和、海明码、循环冗余校验码(CRC校验)等,信息冗余技术在通讯处理类软件开发中使用较多。

  3.软件陷阱冗余技术

  软件陷阱冗余技术就是当发现程序跑飞是,用引导指令强行引导程序指向复位入口地址,软件在复位入口子程序中专门对程序出错进行处理的程序,使程序恢复正常运行。通常,根据跑飞程序落入陷阱区的位置不同,可选择执行空操作、转到程序入口地址等形式,使程序恢复正常运行。针对不同的存储空间,软件陷阱可以使用不同的手段来安排。软件陷阱冗余技术在汇编语言编程中使用较多。

  4.看门狗冗余容错技术

  看门狗技术原理是软件通过不断监视程序循环运行时间,若发现时间超过已知的循环时间,则认为系统陷入了死循环,然后强迫程序返回到入口地址,在入口处安排一段出错处理程序,使系统运行恢复正常。该方法特别适用与周期控制的软件类型。

  5.保护处理技术

  对数值处理累程序,如除法运算子程序,应检查除数是否为O,如果除数为O,进行保护处理;开方运算子程序,应检查被开方数是否不小于O,如果被开方数小于O,进行保护处理;变量(指针、数组)被创建之后应当及时把它们初始化,以避免出错。

  6.容差处理技术

  选择最适当的算法,合理安排运算顺序减少计算偏差,运算顺序的安排原则是:先进行无偏差或偏差小的运算,尽可能将会出偏差的运算往后安排。对于采样数据采取多次求平均值的方法进行平滑处理,对于开关量信号采取三选二,五选三等抗干扰处理。

  7.高级语言容错处理技术

  利用高级程序设计语言本身的容错能力,采取相应的策略。在Visual Basic 6.0中的On Error语句,可以启动一个错误处理程序并指定该子程序在一个过程中的位置;在Visual C++中,提供了处理各种异常的机制,如try、catch等。

  (五)借助软件开发管理工具

  软件配置管理是软件工程化管理的基础性工作,配置管理工作包括:配置标识、配置控制、过程配置状态记实、配置审核、产品发布管理。使用配置管理工具,能够更好的监控到软件开发过程各阶段资源的状态,有效控制软件资源的变更,从而真实有效地控制软件开发过程。

  (六)严格开展软件内部测试

  软件开发完成之后,通过加强测试来发现软件错误,评估软件是否满足用户需求。要在可能的情况下,进行尽可能完备的测试。

  测试的方法多种多样,静态测试包括:代码走查、代码审查、静态分析等。除此之外,还要对软件进行动态测试,让软件运行在真实的或模拟的环境中,检验程序的动态行为和运行结果的正确性。动态测试必须设计测试用例,搭建测试环境,配备检测工具等。

  四、结束语

  提高软件质量的方法有多种途径,软件开发方应根据具有软件特点采取不同的质量方法,选择最合理的开发方法,采用最可靠、最成熟的技术和,加强软件内部测试和开发过程的质量管理工作,才能有效保证软件最终质量。希望本文对从事软件质量工作研究的人员提供一定的帮助。

  参考文献:

  [1]John D.Musa.软件可靠性工程[M].韩柯.北京:机械工业出版社,2003

  [2]何国伟.软件可靠性[M].北京:国防工业出版社,1998:218-380

  结尾:非常感谢大家阅读《软件质量保证方法研究》,更多精彩内容等着大家,欢迎持续关注学习大全网「Xuexidaquan.Com」,一起成长!

软件质量保证方法研究相关文章:

数据仓库的运行监视及性能优化研究

软件质量保证方法研究

计算机网络常见故障及应对措施研究

计算机网络信息安全与病毒防治

软件外包业务发展现状及策略研究

分析如何利用计算机技术防范金融风险

【科技论文】推荐文章

【科技论文】图文精华