当前位置: 首页 > 专利查询>东南大学专利>正文

一种基于形式概念分析的软件维护方法技术

技术编号:7445863 阅读:659 留言:0更新日期:2012-06-20 09:59
一种基于形式概念分析的软件维护方法,当用户提议某个修改请求,首先利用形式概念分析技术进行特征定位,识别该修改请求在源代码中对应的代码信息即初始的修改集;然后利用形式概念分析构造程序的中间表示,理解源代码中元素之间的依赖关系,辅助程序理解;再根据这些依赖关系进行修改影响分析,得到一种层次化的影响集;最后,根据影响集结果,定义可修改性度量,并根据该度量进行修改评估,从而给出具有指导意义的修改评估结果,判断是否接受该修改;当评估通过该修改方案后,则进入到修改传播分析阶段,需要不断地进行影响分析以及可能需要实施的二次修改,直至完成所有的修改;在修改完成之后,进行回归测试以及调试,保证新系统的一致性以及正确性。

【技术实现步骤摘要】

本专利技术提出了一种新型的软件维护方法,主要是利用形式概念分析技术解决整个软件维护中涉及的各项技术,如特征定位、程序理解、修改分析、回归测试、错误定位等,属于软件维护领域。
技术介绍
Lehman认为,现实世界的系统要么变得越来越没有价值直至灭亡,要么进行持续不断的演化以适应环境的变化或者满足现实需求。软件是对现实世界中问题空间与解空间的描述,是客观事物的一种表现。而软件系统本身为了满足人们的需求、性能的改进、功能的增强或者处理系统中发现的故障等等,都可能需要对系统进行相应的修改。在现代软件系统的生命周期内,软件缺陷修复,功能增强,性能改进,需求增加,运行环境改变等均要求软件系统具有较强的演化能力,从而要求软件工程人员能够快速适应改变,减少软件维护的代价。软件维护活动的核心是进行软件修改(software change)。修改可以是因为用户提出新的需求,软件使用过程中发现的错误,或者是因为软件所使用的环境发生变化。而软件修改的前提是特征定位(feature location),修改分析(change analysis);软件修改的手段包括重构(refactoring)和重用(reuse)等;在对软件进行修改之后,需要进行修改传播分析(change propagation),错误定位(fault localization),以及回归测试(regression testing)等方面的工作。这是因为无论进行何种类型的修改,首先要识别这些修改在源代码中对应的位置;另外,这些修改肯定会对软件的其他部分造成一些潜在影响,从而带来软件的不一致性,如果实施该修改所需的成本比较高(或者影响范围比较广泛),甚至超过重新开发该软件所需的成本(几乎影响整个系统),那么就需要考虑其他代替修改方案或者重新开发软件,因此在实施修改前,必须要进行修改管理(Software Change Management), 需要对修改提议进行修改分析(ChangeAnalysis),修改分析是软件维护的必经阶段,修改分析是修改实施前所经历的一些活动的总和,包括程序理解,修改影响分析,修改评估等; 另外,在修改过程中,一些修改又可能给系统带来新的影响和波动,这就需要继续对这些修改传播到的范围进行再次检查,确认是否需要继续实施修改或者进行二次修改,这种持续的修改过程称为修改传播分析;在每次修改之后,这时需要对系统重新进行一系列的测试以便确定修改阶段有没有引入新的错误,以及按照什么样的测试方法进行测试等等。再者, 如果通过测试发现了新的错误,要能够准确快速缩小可能产生错误根源的范围。形式概念分析(Formal Concept Analysis,FCA)以数学化的概念和概念层次为人们提供了一种应用数学理论来处理现实世界中形式对象与形式属性之间这种二元关系的方法。形式概念分析技术经过几十年的发展,到目前已经比较成熟。一方面,形式概念分析已经具备了较完善的理论基础以及形式化表示,在应用到软件维护活动中时,更具有形式化方面的表达能力,从而给人以较强的理论和技术说服力;而另一方面,形式对象和形式属性这种二元关系经常出现在软件世界中,而这种处理二元关系的直觉也推动了形式概念分析技术在软件领域应用的不断发展。到目前为止,形式概念分析已经成功并广泛地应用在软件工程,特别是软件维护的许多活动中,包括程序理解、逆向工程、重构等软件维护活动。 随着这些应用本身的不断完善和发展,形式概念分析技术必将在软件维护过程中发挥更加重要的作用。
技术实现思路
技术问题本专利技术的目的是充分利用形式概念分析技术有效地支撑软件维护的各项活动中,以便于改进特征定位,程序理解,修改影响分析,修改评估,修改传播分析,回归测试,错误定位等关键技术,从而提高软件维护的效率,正确性,以及安全性,旨在保证软件高效、高质地进行演化。技术方案本专利技术利用形式概念分析技术来支撑大规模软件在其维护过程中涉及的各项活动。本专利技术主要利用形式概念分析技术来支撑大规模软件在其维护过程中涉及的各项活动。软件维护的核心是进行递增式的软件修改(incremental change)。递增式软件修改的前提是根据用户修改请求(change request),进行修改分析,包括程序理解、修改影响分析、以及修改评估;当该修改通过评估之后,进入修改实施阶段,修改实施即为修改传播分析,是一个迭代的过程,直至最后完成所有的修改请求;在实施修改之后,需要进行回归测试和错误定位等,从而验证此次修改后软件的正确性以及一致性。因而本专利技术充分利用形式概念分析技术来支撑上述活动。具体技术方案如下—种基于形式概念分析的软件维护方法,其步骤包括步骤1 根据修改请求,对修改请求进行特征定位,识别软件源程序中与该修改请求对应的类;基于形式概念分析的特征定位方法是,以修改请求为形式对象,源代码作为形式属性,通过概念分析生成概念格,选择概念格上具有最大上确界的元素作为初始的修改集;步骤2 利用步骤1中识别的初始修改集,对软件进行修改分析,步骤包括21)程序理解先通过形式概念分析生成程序的中间表示来对软件进行理解,概念分析的形式对象是源程序中的类,形式属性是程序中的方法;然后通过所述形式对象和形式属性构造概念格;再在该概念格上理解与修改相关的程序元素以及与这些修改有依赖关系的元素,并对程序中各个元素之间的依赖关系进行分析,辅助理解软件;22)影响分析对初始修改集中的元素进行影响分析,识别这些修改对程序其他部分带来的影响;影响分析依赖于程序理解中生成的概念格,通过在概念格上计算修改集中元素的可达性来计算受影响的元素;23)修改评估,评估是否接受相应的修改请求根据影响分析结果来确定是否接受该修改提议,如果接受该修改请求,转入步骤 3 ;如果拒绝该修改请求,则结束,或者改进修改方案;步骤3 实施修改,即进行修改传播分析根据初始修改集以及影响分析结果进行修改实施;该过程是个迭代过程,需要不5断地修改修改集中的元素,然后进行影响分析,检查需要实施的二次修改;步骤4 对修改后的软件进行回归测试回归测试是以测试用例作为形式对象,受影响的方法作为形式属性,生成概念格, 在概念格上选择最大上确界元素作为最终的测试用例集;在回归测试过程中,如果发现错误,转入步骤5,否则,结束;步骤5:对发现的错误进行错误定位,查找错误的产生源,从而修改该错误采用形式概念分析技术进行错误定位,以错误的测试用例为形式对象,程序元素作为形式属性, 生成概念格;然后根据概念格的层次特性定义可疑度度量,可疑度越大的越有可能是错误源,从而实现错误定位。有益效果本专利技术提出了一种基于形式概念分析技术来支撑大规模软件在其维护过程中涉及的各项活动的方法,它充分挖掘形式概念分析技术的潜力,并把它运用于软件维护过程中,良好地支撑软件演化,使得软件维护变得更加容易。主要有以下一些优点(1)利用形式概念分析完整地支持大规模软件的维护与演化,使得软件维护变得更加容易和灵活;(2)基于形式概念分析技术去进行特征定位,有效地识别出与修改请求相关的源代码,为维护人员提供一种层次化的视图模式,从上到下表示与修改请求对应的源代码的相关程度,便于维护人员确定从哪里着手实施修改,以及指导维护人员增加新的元素(类, 方法或者语句)去实现修本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:李必信孙小兵
申请(专利权)人:东南大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术