[发明专利]源代码等价性验证装置以及源代码等价性验证方法有效
申请号: | 201380078502.X | 申请日: | 2013-08-28 |
公开(公告)号: | CN105408872B | 公开(公告)日: | 2017-11-24 |
发明(设计)人: | 铃木康文;新原敦介;市井诚;野口秀人 | 申请(专利权)人: | 株式会社日立制作所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京银龙知识产权代理有限公司11243 | 代理人: | 范胜杰,王立杰 |
地址: | 日本*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 源代码 等价 验证 装置 以及 方法 | ||
技术领域
本发明涉及一种源代码等价性验证装置以及源代码等价性验证方法,尤其涉及一种在软件重构中为了防止因重构实施导致的不良混入,在通过符号执行方法验证作为程序的动作等价的情况下,用于防止计算量的爆发式增加,迅速验证重构的正当性的优选的源代码等价性验证装置以及源代码等价性验证方法。
背景技术
近年来,随着信息处理社会发展,软件系统浸透到一般社会,对于软件要求的可靠性成为非常高的问题。另一方面,软件随着常年的差异/派生开发而踏上复杂化且大规模化的方向,软件的易扩展性或易理解性等维护性下降成为问题。
重构是在非专利文献1至3中所公开的方法,通过不改变软件的动作地变更内部结构来改善软件的设计品质的方法的总称,是减轻复杂度提高维护性的方法。该重构的方法是对于确保踏上复杂化以及大规模化的方向的软件的维护性有希望的技术,但由于变更源代码,因此存在新混入不良的可能性。具体而言,在重构中存在被分类为多个模式的方法,明示或暗示地决定各源代码的变更顺序以及针对用于保证通过该变更不会改变软件的动作的源代码的条件。在不按照该变更顺序地变更了源代码的情况下,或者,变更了不遵从这样的条件的源代码的情况下,不保证不改变成为对象的软件动作,因此有可能在软件中混入不良。因此,软件开发者在软件的维护阶段,有担心因重构原因而在准确地动作的软件中混入不良,而做出不进行重构的判断的可能性。因此,在软件的维护阶段,为了积极地进行重构,要求验证没有由重构导致的不良的混入的方法。
在非专利文献3中,定义了72种典型使用的重构模式(以下,简单称为“重构模式”)。
在本说明书中,将两个源代码外在的动作相同,即针对相同输入在执行时得到相同输出定义为两个源代码“等价”,将验证重构实施前的源代码和重构实施后的源代码等价称为“等价性验证”。
作为验证重构实施前的源代码和重构实施后的源代码等价的方法所要求的条件,有如下的条件。
(1)一个条件是其作业的大部分被自动化,基于人工的作业较少。以往,通过基于人工的评价或测试来验证源代码的等价性。通过对其实现基于工具的自动性验证,削减验证用时,促进重构。
(2)另一个条件是通过重构验证方法判断为动作等价或非等价的情况下,向开发者提示成为其根据的信息。通过向开发者提示易懂的成为判定基准的信息,开发者自身能够进行再验证,针对工具的可靠性提高,促进重构。
作为等价性验证的方法,有:通过专利文献1公开的源代码比较,对产生差异的部分实施测试,比较其结果的方法;通过图表表现非专利文献1公开的源代码,每次重构时验证图表否满足所决定的事先条件的方法;以及使用非专利文献2公开的符号执行,来验证动作被保持的方法。
现有技术文献
专利文献
专利文献1:美国专利申请公开第2007/0033576号说明书
非专利文献
非专利文献1:T.Mens,S.Demeyer,D.Janssens,"Formalising Behaviour Preserving Program Transformations",Proceedings of the First International Conference on Graph Transformation,USA,2002
非专利文献2:S.Person,M.B.Dwyer,S.Elbaum,C.S.Pasareanu,"Differential Symbolic Execution",Proc.of ACM SIGSOFT Symposium on the Foundations of Software Engineering 2008,USA,2008
非专利文献3:M.Fowler et al.,“Refactoring:Improving the Design of Existing Code”,USA,Addison-Wesley Professional,1edition,July 8,1999
发明内容
发明要解决的课题
在非专利文献1中公开了如下的方法:用图表表现程序的方法调用关系,每次重构时验证是否满足所决定的事先条件。在该方法中,通过结构上的验证实现动作的验证,因此每次重构时,严密地定义其操作后收罗不会对动作产生影响的条件。因此,事实上,存在必须通过工具使重构自动化,不能用于通过可能错误进行重构操作其本身的人工的重构验证的问题。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于株式会社日立制作所,未经株式会社日立制作所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380078502.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:等离激元电学
- 下一篇:通过表面活性和反应性端基对聚合物的表面改性