Skip to main content
QUICK REVIEW

[论文解读] Automated Debugging In Java Using OCL And JDI

David J. Murray, Dale E. Parson|ArXiv.org|Jan 3, 2001
Model-Driven Software Engineering Techniques参考文献 12被引用 8
一句话总结

本文提出了一种新颖的、非侵入式方法,用于在Java中实现自动化调试,使用对象约束语言(OCL)指定正确性约束,使用Java调试接口(JDI)进行运行时验证。通过利用OCL进行形式化规格说明,以及利用JDI进行安全、无副作用的运行时检查,该方法可在不修改源代码或无需自定义JVM的情况下,实现对违规行为的自动化检测,已通过一个原型审计器进行验证。

ABSTRACT

Correctness constraints provide a foundation for automated debugging within object-oriented systems. This paper discusses a new approach to incorporating correctness constraints into Java development environments. Our approach uses the Object Constraint Language ("OCL") as a specification language and the Java Debug Interface ("JDI") as a verification API. OCL provides a standard language for expressing object-oriented constraints that can integrate with Unified Modeling Language ("UML") software models. JDI provides a standard Java API capable of supporting type-safe and side effect free runtime constraint evaluation. The resulting correctness constraint mechanism: (1) entails no programming language modifications; (2) requires neither access nor changes to existing source code; and (3) works with standard off-the-shelf Java virtual machines ("VMs"). A prototype correctness constraint auditor is presented to demonstrate the utility of this mechanism for purposes of automated debugging.

研究动机与目标

  • 解决在不修改语言或运行时环境的前提下,将形式化正确性约束集成到Java开发中的挑战。
  • 通过使用标准、现成的Java虚拟机,实现在执行过程中自动化检测软件缺陷。
  • 提供一种类型安全且无副作用的面向对象约束运行时验证机制。
  • 通过OCL与UML模型集成,支持模型驱动开发实践。
  • 通过基于JDI和OCL构建的原型正确性约束审计器,证明该方法的可行性。

提出的方法

  • 使用对象约束语言(OCL)将形式化正确性约束作为基于UML的软件模型的一部分进行表达。
  • 利用Java调试接口(JDI)作为标准、类型安全的API,用于检查和监控正在运行的Java虚拟机。
  • 通过JDI对运行时环境进行插桩,以在不修改源代码或JVM行为的情况下评估OCL约束。
  • 实现一个约束审计器,用于在执行过程中观察对象状态,并检查OCL不变式、前置条件和后置条件。
  • 通过依赖JDI的只读检查功能,确保所有约束评估均无副作用。
  • 设计系统以兼容标准、现成的Java虚拟机,无需任何修改。

实验结果

研究问题

  • RQ1能否在标准Java环境中有效且安全地运行时评估以OCL表达的正确性约束?
  • RQ2如何在不修改源代码或JVM的情况下,将OCL约束集成到Java开发中?
  • RQ3JDI在实现面向对象约束的类型安全、无副作用的运行时验证中扮演什么角色?
  • RQ4基于OCL和JDI构建的原型审计器是否能成功检测程序执行过程中的约束违规?
  • RQ5该方法如何支持与UML建模及模型驱动开发工作流的集成?

主要发现

  • 该方法通过使用标准Java工具和JDI API在运行时评估OCL约束,成功实现了自动化调试。
  • 无需对Java编程语言或JVM进行任何修改,保持了与现有系统的向后兼容性。
  • 约束审计器原型表明,在真实Java应用程序中,OCL约束的运行时验证是可行且实用的。
  • 所有约束评估均无副作用,确保调试过程不会改变程序行为。
  • 该方法通过OCL与UML模型集成,实现了设计规范与运行时行为之间的一致性。
  • 该系统可在标准、现成的Java虚拟机上运行,无需特殊配置,可直接部署于生产与开发环境。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。