Title

Modularizing Crosscutting Concerns With Ptolemy

Keywords

Aspect-oriented interfaces; Aspect-oriented programming languages; Implicit invocation translucid contracts; Modular reasoning; Ptolemy

Abstract

This tutorial will provide an introduction to Ptolemy. Ptolemy is a programming language whose goals are to improve a software engineer's ability to separate conceptual concerns, while preserving encapsulation of object-oriented code and the ability of programmers to modularly reason about their code. In particular, Ptolemy's features are useful towards modularization of cross-cutting concerns. A cross-cutting concern is a requirement whose implementation is spread across and mixed with the code of other requirements. There has been attempts to improve separation of cross-cutting concerns, e.g. by aspect-oriented and implicit-invocation languages, but none give software developers textual separation of concerns and modular reasoning at the same time. Ptolemy has both these properties important for scalable software engineering. Ptolemy's event types provide a well-defined interface between object-oriented code and cross-cutting code. This in turn enables separate type-checking and compilation. Ptolemy also provides a novel and practical specification mechanism that we call translucid contracts. A translucid contracts allows developers to reason about the control effects of the object-oriented code and cross-cutting code modularly. This tutorial will proceed by discussing the goals of the Ptolemy programming language. We will then discuss Ptolemy's programming features and its specification features by way of several handson exercises. We will conclude with pointers to ongoing work on design, implementation and verification of Ptolemy programs.

Publication Date

4-29-2011

Publication Title

Proceedings of the 10th International Conference on Aspect-Oriented Software Development Companion, AOSD.11

Number of Pages

61-62

Document Type

Article; Proceedings Paper

Personal Identifier

scopus

DOI Link

https://doi.org/10.1145/1960314.1960332

Socpus ID

79955130362 (Scopus)

Source API URL

https://api.elsevier.com/content/abstract/scopus_id/79955130362

This document is currently not available here.

Share

COinS