...
首页> 外文期刊>Science of Computer Programming >Diagnosing and correcting design inconsistencies in source code with logical abduction
【24h】

Diagnosing and correcting design inconsistencies in source code with logical abduction

机译:通过逻辑诱拐诊断和纠正源代码中的设计不一致

获取原文
获取原文并翻译 | 示例
   

获取外文期刊封面封底 >>

       

摘要

Correcting design decay in source code is not a trivial task. Diagnosing and subsequently correcting inconsistencies between a software system's code and its design rules (e.g., database queries are only allowed in the persistence layer) and coding conventions can be complex, time-consuming and error-prone. Providing support for this process is therefore highly desirable, but of a far greater complexity than suggesting basic corrective actions for simplistic implementation problems (like the "declare a local variable for non-declared variable" suggested by Eclipse). We present an abductive reasoning approach to inconsistency correction that consists of (1) a means for developers to document and verify a system's design and coding rules, (2) an abductive logic reasoner that hypothesizes possible causes of inconsistencies between the system's code and the documented rules and (3) a library of corrective actions for each hypothesized cause. This work builds on our previous work, where we expressed design rules as equality relationships between sets of source code artifacts (e.g., the set of methods in the persistence layer is the same as the set of methods that query the database). In this paper, we generalize our approach to design rules expressed as user-defined binary relationships between two sets of source code artifacts (e.g., every state changing method should invoke a persistence method). We illustrate our approach on the design of IntensiVE, a tool suite that enables defining sets of source code artifacts intensionally (by means of logic queries) and verifying relationships between such sets.
机译:纠正源代码中的设计衰减并不是一件容易的事。诊断并随后纠正软件系统的代码与其设计规则之间的不一致(例如,仅在持久层中允许数据库查询),并且编码约定可能很复杂,耗时且容易出错。因此,非常需要为此过程提供支持,但是比为简单的实现问题建议基本的纠正措施(例如Eclipse建议的“为未声明的变量声明局部变量”)要复杂得多。我们提出了一种用于不一致纠正的归纳推理方法,该方法包括(1)供开发人员用来记录和验证系统的设计和编码规则的方法,(2)归纳逻辑推理器,用于假设系统代码与文档之间可能存在不一致的原因规则和(3)针对每个假定原因的纠正措施库。这项工作是在我们之前的工作的基础上进行的,在该工作中,我们将设计规则表示为源代码工件集之间的相等关系(例如,持久层中的方法集与查询数据库的方法集相同)。在本文中,我们概括了设计规则的方法,这些规则表示为两组源代码工件之间的用户定义的二进制关系(例如,每个状态更改方法都应调用持久性方法)。我们说明了IntensiVE设计的方法,IntensiVE是一种工具套件,可用于(通过逻辑查询)内涵地定义源代码工件集并验证这些集之间的关系。

著录项

  • 来源
    《Science of Computer Programming》 |2011年第12期|p.1113-1129|共17页
  • 作者单位

    Universite catholique de Louvain, Place Sainte Barbe 2, 1348 Louvain-la-Neuve, Belgium;

    Vrije Universheit Brussel, Pleinlaan 2, 1050 Brussels, Belgium;

    Vrije Universheit Brussel, Pleinlaan 2, 1050 Brussels, Belgium;

    Universite catholique de Louvain, Place Sainte Barbe 2, 1348 Louvain-la-Neuve, Belgium;

    Universite catholique de Louvain, Place Sainte Barbe 2, 1348 Louvain-la-Neuve, Belgium;

    Vrije Universheit Brussel, Pleinlaan 2, 1050 Brussels, Belgium;

  • 收录信息 美国《科学引文索引》(SCI);美国《工程索引》(EI);
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

    inconsistency management; abductive reasoning; logic meta programming;

    机译:不一致管理;归纳推理;逻辑元编程;

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号