首页 > 范文大全 > 正文

基于极限编程的软件可维护性分析

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于极限编程的软件可维护性分析范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘 要】随着我国社会水平的提升,经济步伐的推进,我国的软件事业也在这个过程中得到了较大程度的发展。其中,软件所具有的可维护性是保证软件自身质量的重要因素,需要我们能够对其引起充分的重视。在本文中,将就基于极限编程软件可维护性进行一定的研究与分析

【关键词】极限编程;维护性分析

0.引言

在软件整个的生存周期中,对于软件所进行的维护活动通常都要占据很大的比重,这也正是显示出了软件维护活动对于软件的重要性。而在我们对于软件维护所开展的研究工作中,专家为了尽可能的降低维护软件的工作量,也陆续提出了很多对于软件维护模型的新方式以及新看法,但是对这部分方式总体看来,都仅仅是建立在较为传统的开发过程基础上的,并没有从根本上对软件维护的成本进行降低。而对于极限编程来说,其从对于不同需求的变化入手,更加强调软件开发测试以及具有构造简单的代码,能够更好的对传统软件开发中的特质进行改变,从而使软件维护工作相对以往来说具有很多地方能够进行改进,能够大大的降低软件成本。

1.极限编程中的软件维护

软件维护是指软件在生存期的运行和维护阶段,在其相应的运行环境中被使用、监视,以期获得满意的性能,同时在需要时对产品进行修改,以改正问题或对变化了的需求做出响应。对于软件的维护活动来说,其主要可以分为以下四类:即纠正性维护、适应性维护、完善性维护以及预防性维护。对于传统的软件开发模型来说,其同极限编程模型相比来说在软件维护领域存在着一定的不足,其能够通过很多种方式对传统方式的维护死角进行改善,从而使软件能够具有更好的可维护性。

(1)从我们对软件进行维护的工作量中可以看出,对于维护完善性所需要做的工作占据着最大的比重。其中,保证维护所具有的完善性是根据客户自身的需求变化而变化的,所以,我们在软件开发阶段能否完全按照客户的需求来办、能否在整个开发的过程中都符合客户的需求将直接对整个软件整体的完善性产生影响。而对于传统的软件开发方式来说,其首先就需要软件的分析员对于客户的不同需求进行广泛的收集,并将其通过一定的整理形成软件的规格说明书来作为后续开发的重要依据。而在软件开发的后期阶段中,也经常会因为客户自身需求的变化以及一定错误的存在而需要再一次的对系统进行修改,这种情况的存在就会对整个软件的开发成本造成较大的影响。

而对于极限编程方法来说,其并不是需要在软件开发初期就能够对客户自身的需求进行准确的掌握,而是应当通过客户对于自身需求的表达来不断的获取以及丰富,并对其进行代价方面的评估。而对于客户来说,则能够根据软件开发者对提供的评估报告来对软件的开发优先级进行评估以及确定。而在软件需求实施的阶段中,软件开发者也需要根据所给出的不同评估情况以及软件开发过程中的细节问题不断的向客户进行询问,并将客户实时的想法完整的体现在软件的代码中。而当软件每一次得到迭代完毕之后,就可以开展一次小型的会,并由客户对于所的产品进行全面的测试以及验收,并安排软件的开发人员根据客户不同的反馈意见正式开始软件下一周期的开发直至整个项目得到完成。而在上述的软件开发周期中,其对于软件维护所需要花费的成本是非常低的,对于客户来说只需要在不同软件迭代的阶段中不断的更换故事,并将程序开发者对其进行再一次的评估就可以了,在这种极限编程中,其更加强调的是客户同软件开发者之间的沟通,从而能够更好的将自身的需求分析深入到软件的开发过称改制中,并大大的降低我们对于软件维护所需要花费的成本。

(2)在软件纠正性的维护活动中,我们除了可能由于对于客户自身的需求捕获存在偏差而使软件出现缺陷之外,对于软件开展测试的不充分也可能是造成这种情况的一个原因。当软件的维护人员对于软件所存在的缺陷部位进行修补之后,就很可能使该模块的其它部位产生影响,并可能因此而引发一系列的问题。而在我们对软件进行传统开发的过程中,我们对软件所开展的测试情况通常都是在代码全部编写完成之后再进行的,而在这个节点中对代码进行修改往往使存在较大风险的。而随着这部分程序自身所具有的复杂性的不断增长,也会使这种波及效应所存在的范围得到进一步的加大,这种个情况的存在就很可能因为程序开发者避免过多、过于繁琐的测试而将其进行推迟,从而使bug成本得到不断的放大。

在极限编程的过程中,我们对于测试驱动开发实践要求在程序编码正式运行之前就需要对测试代码进行编写,即将测试先行的方式,对于这种方式而言,其就是在程序开发者对于软件需要具有的功能进行明确之后,首先就要需要思考通过何种方式对该功能进行测试,并随之完成该部位测试代码的编写。而经过这种方式的不断循环以及功能的不断开发,直至软件全部的功能都得到完成为止。在这部分单元测试环节中,也正是整个软件同开发人员之间联系最为密切的一个环节,其通常由软件开发者对其统一进行编写以及执行,并能够通过自动化的框架工具对整个软件的测试集以及测试效果进行反馈。同时,由于软件的单元测试环节通常是在软件出现错误之后才开始进行,所以我们仅仅通过单元测试对错误进行发现,并对其进行修正所需要付出的代价是很小的,所以这种方式能够在保证软件代码得到及时测试的同时也能够使代码自身的可测试性得到了较大的增强。而与此同时我们在其中融入的自动化测试工具应用,也会使很多软件bug会在实际测试的过程中得到了较好的排除,从而大大降低了我们对于软件纠正性维护的成本。

(3)对代码结构进行改善也是我们开展软件维护的一项重要工作,而随着软件在不断开发的过程中,其系统自身得到了不断演进,也会随之出现很多重复的代码,而当系统中所编写的类过大、需求出现变化时,系统之前所具有代码的设计方式则很难在其中加入新的功能,或者在我们加入新功能的同时使源代码自身的复杂度得到增加,此时,就更需要奥哦我们开展具有预防性的维护工作。对于传统方式来说,我们通常都会将这部分工作防止在后期维护的阶段中,且等到软件系统出现退化问题时才对代码的结构进行改善,而此时我们也能够看到我们对代码所开展的维护工作是较为困难的,而由于我们在对软件代码进行编写之前就已经具有了单元测试代码,这就会使我们对于软件的重构建立起了一张保护网,从而使软件开发人员在开发的过程中也不需要担心重构会给整个程序带来意想不到的错误而乐意去重构.重构实践活动促使系统的代码始终保持良好的状态,提高了软件的可理解性和可测试性。

2.结束语

总的来说,极限编程方式的出现,能够较好的提升我们小型团队软件开发的效率,对于软件的维护方式来说也是一种全新的改变。对此,就需要我们在实际软件维护的过程中能够注重方式,从而获得更好的维护效果。

【参考文献】

[1]刘万远,张卫东,王伟.基于层次分析法的软件可维护性评价[J].四川兵工学报,2011(07):96-98.

[2]张仕学,丁晓明.基于粗糙集理论的软件项目质量管理研究[J].西南大学学报(自然科学版),2011(03):118-121.

[3]马翔,张继福,杨海峰.基于区分矩阵的启发式属性约简算法[J].计算机应用,2010(08):1999-2002.

[4]王李进,胡欣欣.基于支持向量机的面向对象软件可维护性预测[J].北华大学学报(自然科学版),2010(03):282-285.