首页> 外文学位 >On aspect-oriented programming for enforcing software design rules.
【24h】

On aspect-oriented programming for enforcing software design rules.

机译:关于用于实施软件设计规则的面向方面的编程。

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

摘要

Software design rules are important in modern software development, with significance in achieving high quality in many aspects of software engineering including functional correctness, safety, performance, reusability, and so on. The current practice of software engineering tools to enforce software design rules has much to be desired. They usually either can only check a pre-defined set of design rules without allowing customization and extension, or even when customization or extension is allowed, they require programmers to encode new design rules in low level primitives such as byte-code level API, or force programmers to learn new domain specific languages or new meta-models that programmers are not familiar with.;In this thesis work, we argue that the shadow model of AspectJ-like Aspect-oriented programming languages is a useful and suitable meta-model for building customizable software design rule static checkers for programs written in Java-like object-oriented languages. To support this thesis, based on AspectJ's shadow model and pointcut language, we have built two compile time facilities, with which software design rules can be encoded and enforced. The first facility is called Statically Executable Advice, which allows programmers to implement design rule checkers in advice-like constructs, but unlike advice in AspectJ, they are advice that are defined on static shadows, instead of on dynamic join points, and that they are executed at compile time, instead of at run time. The second facility is a further improvement of the idea, by featuring a Datalog based declarative query mechanism on shadows, with a seamless integration with AspectJ's native pointcut expression language. When designing this Datalog shadow query mechanism, we especially developed it with a focus on performance and scalability. We present a Datalog representation of the shadow model of AspectJ so that we can leverage an intelligent data structure capable of dealing with large-scale relational data with much redundancy, called Binary Decision Diagram (BDD). We make use of an advanced third party BDD-based Datalog solver called "bddbddb" to solve design rule constraints encoded in Datalog shadow queries in our system. We have evaluated our Datalog-based approach for enforcing software design rules in terms of its effectiveness, usability, and performance. The evaluation results show that the system can describe and enforce a wide variety of industrial software design rules, it is easier to use than writing queries on an alternative meta-model, i.e., the Abstract-Syntax-Tree based model, and the system indeed can scale well to large size real world programs on diversified queries.
机译:软件设计规则在现代软件开发中很重要,对于在软件工程的许多方面(包括功能正确性,安全性,性能,可重用性等)获得高质量至关重要。强制执行软件设计规则的软件工程工具的当前实践非常需要。他们通常要么只能检查一组预定义的设计规则,要么不允许定制和扩展,或者即使允许定制或扩展,他们也要求程序员以低级原语(例如字节码级API)对新的设计规则进行编码,或者迫使程序员学习新的领域特定语言或程序员不熟悉的新元模型。在本文工作中,我们认为类AspectJ的面向方面的编程语言的影子模型是一种有用且合适的元模型。为使用类似Java的面向对象语言编写的程序构建可定制的软件设计规则静态检查器。为了支持本论文,我们基于AspectJ的影子模型和切入点语言,构建了两个编译时工具,可以使用这些工具对软件设计规则进行编码和执行。第一种功能称为“静态可执行建议”,它使程序员可以在类似建议的结构中实现设计规则检查器,但与AspectJ中的建议不同,它们是在静态阴影上定义的建议,而不是在动态连接点上定义的建议,在编译时执行,而不是在运行时执行。第二个功能是对该概念的进一步改进,通过在阴影上使用基于Datalog的声明式查询机制,并与AspectJ的本机切入点表达语言无缝集成。在设计此Datalog影子查询机制时,我们特别开发了它,重点是性能和可伸缩性。我们提出了AspectJ影子模型的Datalog表示,以便我们可以利用一种智能数据结构,该结构能够处理具有大量冗余的大规模关系数据,称为二元决策图(BDD)。我们使用称为“ bddbddb”的高级基于BDD的第三方Datalog求解器来解决系统中Datalog影子查询中编码的设计规则约束。我们已经评估了基于Datalog的方法的有效性,可用性和性能,这些方法用于实施软件设计规则。评估结果表明,该系统可以描述和执行多种工业软件设计规则,比在替代元模型(即基于Abstract-Syntax-Tree的模型)上编写查询要容易得多,并且该系统确实可以很好地扩展到各种查询的大型现实程序。

著录项

  • 作者

    Wu, Pengcheng.;

  • 作者单位

    Northeastern University.;

  • 授予单位 Northeastern University.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2010
  • 页码 191 p.
  • 总页数 191
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号