软件工程需求与质量保证研究

软件工程需求与质量保证研究

摘要:

软件危机的出现已存在多年,虽然业界专家不断致力于软件工程理论建设,认为软件工程理论的推进可有效缓解软件危机,但大量实践表明,只有通过对软件需求进行详细地分析才能真正改善软件的重复问题,进而提高软件工程的质量。文章简单阐述了软件工程需求分析的概念,分析了当前软件工程所存在的质量问题,并针对问题提出了相应的质量保证措施,旨在为相关技术人员提供若干参考意见。

关键词:

软件工程;需求分析;质量保证

1软件工程需求分析概念

软件工程需求分析是指在正确了解用户需求的基础上,使软件功能与客户需求相符,同时预估软件研发风险和项目评估,最终开成整个开发设计方案的过程。在软件工程需求分析过程当中,占主导地位的是用户的需求,用户需求的整理由工程师及项目经理负责,通过需求分析获取相关技术性文档材料,包括SRS文档、DRM文档和AcceptancePlan[1]。从广义上来说,软件工程需求分析所要做的工作主要有需求信息的获取、分析、变更、验证以及相关规则说明和管理。软件工程需求分析的流程多且复杂,如创建数据字典、确定需求优先级别、分析需求可行性等。不同流程所使用的分析方法也有所不同,如在确定需求优先级别时,可采取应用分析法,即在考虑产品版本时应基于优先级对产品特性及需求进行分析,若需求变更,则要在不同版本当中添加所变更的信息,并做好相应变更工作[2]。在进行需求分析可行性分析时,需对每项需求实施的可行性进行详细分析,以验证软件是否能够开发,是否能够给公司带来利润。

2软件工程存在的质量问题

第一,文档的时效性无保障。软件各模块的制作通常是由不同人负责的,这就导到软件开发过程存在诸多问题,如在进行需求分析应用数字字典时,因规格不同导到文档编写形式分离。又如不同制作人员所使用的工具不同,编写和检索时间不同,导致文档的时效性无法保证,若编写过程混乱还会给程序的维护带来很大困难,导致文档资料难以寻找,甚至出现缺失,致使维护时间加长,若问题严重的话还会导致软件无法维护。第二,程序与文档内容分离。软件程序与文档内容分离的主要原因是在编写文档设计与需求分析时所采取的角度不同,文档设计的编写是面对程序设计员的,而需求分析的编写是面对用户的,虽然两者的最终目的是相同的,都是将用户需求转化为程序编码设计文档,是在进行转化时却存在很大的偏差,导到软件成品与需求之间存在很大差距。此外,因编写需求分析文档多使用自然语言,而编写设计文档多使用计算机语言,两种语言在进行转化时易出现很多问题,且设计的图较多,如模块图、结构图、数据图等,若文档未及时更新,文档就无法正确表达程序,开发人员也就无法通过文档正确理解用户需求,导致程序与文档内容分离,最终软件只能从头开始。第三,软件开发与维护分离。软件的研发主要包括以下过程:需求分析、可行性分析、软件设计、代码设计、测试,此外还有软件的维护,这是软件自诞生至结束的整个周期。在软件研发的整个周期当中,软件的开发与维护是紧密联系的,软件的开发是软件诞生的重要过程,但软件的维护却是软件质量不断得以提升的重要阶段和方式。现多数软件开发公司在研发软件时比较注重软件的开发过程,而忽略了软件的维护,导致软件开发与维护分离问题凸显。如在进行软件的设计和开发时,研发人员比较重视用户需求分析,但却忽略了软件的功能升级,未预留相应模块接口,给软件的后期维护带来很大困难[3]。因用户需求是一个动态化的过程,随着用户使用时间的推移,用户会产生各种新的需求,若事先未预留相应接口,那么软件的升级相当于重新研发一套软件,这样研发成本明显上升。再者因需求分析与设计文档的编写所使用的语言有所不同,需求分析编写所使用的是自然语言,而设计文档编写所使用的是计算机语言,两种语言并未有一个统一的沟通桥梁,这就导致程序员的理解存在偏差,而这种偏差一旦出现就会使需求文档与设计文档出现分离,最终给软件的维护带来困难。此外,很多程序员习惯性编写程序代码,却忽略了建设文档,导致软件的开发与维护出现分离。

3软件质量保证措施

3.1保证文档编写的完整性

软件工程需求分析的编写对于软件工程需求设计来说非常重要。在编写软件工程需求时,应使用通俗易懂的自然语言来表达客户的软件功能需求,避免使用模糊性语言或是过量使用专业术语,以使程序员能准确理解,防止因程序员的理解偏差而影响程序的编写,导致软件的计算方式出现偏差,最终给用户带来软件陷阱。文档的编写应尽量使用实词,而避免使用形容词或是描述性词语,以保证产品描述的真实性,若使用这些词会使用户需求的理解出现误差,将导致软件无法正确反映用户需求。如在利用数据库存进行软件的开发时,应在设计需求文档当中对储存量、波动范围、数据类型进行详细说明,明确需求量,同时做好备份信息说明,以保证文档编写的完整性,使程序员在进行软件的编写时能够准确理解用户需求,同时做好详细的设计文档和代码[4]。

3.2保证需求分析的完善性

需求文档及设计文档出现分离的最主要原因就是需求文档与设计文档的编写人员不同,且各司其职、缺乏沟通而导致的。在实际工作当中,很多软件开发公司的需求分析人员、开发人员和测试人员是没有任何将领的,这就使得很多软件质量问题无法支及时沟通并得到协商,最终导致软件质量问题增多。而实质上,软件工程的需求分析不仅需要需求分析人员的努力,而且还要与开发人员及测试人员进行相互沟通,以螺旋式的推进方式以不断对需求分析的内容进行丰富和细化,以此来使需求分析更加完整、完善。因此,为保证需求分析的完善性,在进行软件工程需求分析过程当中,就有必要尽量让所有参与工程项目的人员都加入进来,包括开发人员和测试人员,使所有工作人员都能够第一手了解客户需求,避免产生误差或是重复,这样才能有效解决需求文档与设计文档的分离问题。

3.3深入而正确地了解客户的真正需求

现很多软件开发公司为加快软件的研发进度,或是加快软件开发的效率,亦或是迫于交期压力等原因,通常会采取模块重用的方式以减轻软件开发工作量,提高自身经济效益,且现在这种模块重用方式也成了软件开发的主流,是软件工程开发的重要组成部分。但是很多软件开发公司在使用软件重用时,因并未深入分析客户需求,或是地进行分析时粗心大意而导致客户需求理解存在偏差或是错误,导致经重组重用的软件无法满足客户需求,或是软件出现质量问题,最终软件只能从头研发,使得公司软件研发成本大幅上升,影响公司经营和经济效益。为解决这一问题,最主要的就是正确而深入地了解客户的真正需求,同时在软件的研发过程当中做好监督和检查工作,尽量避免出现错误;此外还要注意技术人员在不同步骤之间的沟通,以免因沟通缺失而出现软件质量问题。

3.4依照实际需求调整文档内容

通常来说,在遵循以上规则的基础上所编写的文档是非常严谨、科学、合理的,因此在使用文档时,第一,程序员应严格遵循文档当中的内容,包括规范和说明,以文档内容为指导来编写代码,保证所编写的代码的正确性和准确性;第二,针对文档当中存在疑问的部分要及时向相关人员反映,做好沟通工作,在商量出良好的对策之后对文档进行改善;第三,针对文档中存在较难的技术性问题,程序员应努力攻克,若问题相对严重,则应及时向上反映情况,避免敷衍了事,导致软件产品质量下降;第四,做好需求文档的可行性分析工作,包括开发成本分析和功能实现可行性,从源头上提高软件产品质量;第五,最大限度地使用已有的软件功能模块,以尽量减轻自身的工作员,缩短软件的研发时间;第六,做好维护接口预留工作,以便于日常维护及软件使用过程当中用户可能遇到或是会出现问题的修复,以真正提高软件质量水平。

4结语

在实际工作当中,相关技术开发人员应特别重视软件需求分析,正确认识软件需求分析与质量保证之间的联系,严格律己,全面提升,以不断提高软件工程质量。

作者:赵伟 单位:南京模拟技术研究所

[参考文献]

[1]来羽.软件工程需求分析与质量保障[J].煤炭技术,2013(9):204-205.

[2]邱廷钰.论软件工程需求分析与质量保障[J].大科技,2013(36):347-347,348.

[3]石彦,桂志海.软件工程需求分析与质量保障[J].无线互联科技,2014(2):45-45.

[4]何伟超.软件工程需求分析与质量保障研究[J].河套学院学报,2014(4):68-71.