首页> 外文OA文献 >Graph-based specification and verification for aspect-oriented languages
【2h】

Graph-based specification and verification for aspect-oriented languages

机译:面向方面语言的基于图的规范和验证

摘要

Aspect-oriented software development aims at improving separation of concerns at all levels in the software development life-cycle, from architecture to code implementation. In this thesis we strive to develop verification methods specifically for aspect-oriented programming languages. For this purpose, we model the behaviour of these languages through an operational semantics. We use graph transformations to specify these semantics. Graph transformation has mathematical foundation, and provides an intuitive way to describe component-based systems, such as software systems. In addition, graph transformations have an executable nature, and can be used to generate the execution state space of programs. We use these state spaces for the verification of programs with aspects. We start by defining an improvement of specification using rule-based systems. Pure rule-based systems typically consist of a single, unstructured set of rules. We propose so-called control automata, which can be added on top of pure rule-based systems. Then, we specify the runtime semantics of a number of aspect-oriented languages, namely of (1) Composition Filters, (2)Featherweight Java with assignments with an aspectual extension, and (3) a subset of multithreaded Java extended with a subset of AspectJ. We show that such semantics can be used to simulate a (partial) program and we expose the steps involved in the execution of such a program and that the resulting labelled transition systems can be used for existing verification methods. Then, we propose two novel approaches that address complications caused by the use of aspect-oriented programming. The approaches are based on the given semantics. The first approach allows the detection of aspect interference on shared join points by performing a confluence analysis on the resulting state space. The second approach allows the verification of run-time properties that require tracking of individual objects over time. This is achieved by extending the semantics with special rules for adding tracking information to the graphs. We show that the approach can be used for both object-oriented and aspect-oriented implementations.
机译:面向方面的软件开发旨在改善从架构到代码实现的软件开发生命周期中各个级别的关注点分离。在本文中,我们致力于开发专门针对面向方面的编程语言的验证方法。为此,我们通过操作语义对这些语言的行为进行建模。我们使用图变换来指定这些语义。图形转换具有数学基础,并提供了一种直观的方式来描述基于组件的系统,例如软件系统。此外,图转换具有可执行性,可用于生成程序的执行状态空间。我们使用这些状态空间对带有方面的程序进行验证。我们首先使用基于规则的系统定义规范的改进。基于纯规则的系统通常由单个非结构化规则集组成。我们提出了所谓的控制自动机,可以将其添加到基于纯规则的系统之上。然后,我们指定许多面向方面的语言的运行时语义,即(1)组成过滤器,(2)赋权的Java语言(具有方面扩展)和(3)多线程的Java子集以及具有AspectJ。我们证明了这种语义可用于模拟(部分)程序,并揭示了执行此类程序所涉及的步骤,并且所得的带标签的转换系统可用于现有的验证方法。然后,我们提出了两种新颖的方法来解决因使用面向方面的编程而引起的复杂性。这些方法基于给定的语义。第一种方法允许通过对结果状态空间进行融合分析来检测共享连接点上的方面干扰。第二种方法允许验证运行时属性,这些属性需要随着时间的推移跟踪单个对象。这可以通过使用特殊规则扩展语义来向图形添加跟踪信息来实现。我们展示了该方法可用于面向对象和面向方面的实现。

著录项

  • 作者

    Staijen T.;

  • 作者单位
  • 年度 2010
  • 总页数
  • 原文格式 PDF
  • 正文语种 und
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号