Modularizing crosscutting concerns with Ptolemy
|
Tools and ResourcesShare: |
||||||||||||||||
ABSTRACTThis 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 hands-on exercises. We will conclude with pointers to ongoing work on design, implementation and verification of Ptolemy programs.
AUTHORS
|
|
|||||||||||||||||||||||||||||||||||||||
| View colleagues of Hridesh Rajan | ||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||
| View colleagues of Gary T. Leavens | ||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||
| View colleagues of Robert Dyer | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Mehdi Bagherzadeh | |||||||||||||||||||||||||||||||||||||||||
REFERENCESNote: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
|
1
|
M. Bagherzadeh, H. Rajan, and G. T. Leavens. Translucid contracts for aspect-oriented interfaces. In the Foundations of Aspect-Oriented Languages workshop (FOAL 2010), March 2010.
|
|
| |
2
|
Mehdi Bagherzadeh , Hridesh Rajan , Gary T. Leavens , Sean Mooney, Translucid contracts: expressive specification and modular verification for aspect-oriented interfaces, Proceedings of the tenth international conference on Aspect-oriented software development, March 21-25, 2011, Porto de Galinhas, Brazil [doi>10.1145/1960275.1960293]
|
| |
3
|
|
|
4
|
||
| |
5
|
Hridesh Rajan , Kevin Sullivan, Eos: instance-level aspects for integrated system design, Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering, September 01-05, 2003, Helsinki, Finland [doi>10.1145/940071.940111]
|
| |
6
|
|
| |
7
|
|
| |
8
|
CITED BY
INDEX TERMSThe ACM Computing Classification System (CCS rev.2012)
PUBLICATION| Title | AOSD '11 Proceedings of the tenth international conference on Aspect-oriented software development companion table of contents | ||||||||||||||||||||||||||||||||||||||||||||||
| General Chairs | Paulo Borba Federal University of Pernambuco, Brazil | ||||||||||||||||||||||||||||||||||||||||||||||
| Program Chairs | Shigeru Chiba Tokyo Institute of Technology, Japan | ||||||||||||||||||||||||||||||||||||||||||||||
| Pages | 61-62 | ||||||||||||||||||||||||||||||||||||||||||||||
| Publication Date | 2011-03-21 (yyyy-mm-dd) | ||||||||||||||||||||||||||||||||||||||||||||||
| Sponsors | SIGPLAN ACM Special Interest Group on Programming Languages | ||||||||||||||||||||||||||||||||||||||||||||||
| SIGSOFT ACM Special Interest Group on Software Engineering | |||||||||||||||||||||||||||||||||||||||||||||||
| In-Cooperations | Centro de Informatica - UFPE Centro de Informatica - UFPE | ||||||||||||||||||||||||||||||||||||||||||||||
| CNPq Conselho Nacional de Desenvolvimento Cientifico e Tecn | |||||||||||||||||||||||||||||||||||||||||||||||
| CAPES Coordençãao de Aperfeiçoamento de Pessoal de Nível Superior | |||||||||||||||||||||||||||||||||||||||||||||||
| FINEP Financiadora de Estudos e Projetos | |||||||||||||||||||||||||||||||||||||||||||||||
| FACEPE Fundacao de Amparo a Ciencia e Tecnologia do Estado de Pernambuco | |||||||||||||||||||||||||||||||||||||||||||||||
| PUC-Rio | |||||||||||||||||||||||||||||||||||||||||||||||
| Publisher | ACM New York, NY, USA ©2011 | ||||||||||||||||||||||||||||||||||||||||||||||
| ISBN: 978-1-4503-0606-5 doi>10.1145/1960314.1960332 | |||||||||||||||||||||||||||||||||||||||||||||||
| Conference |
MODULARITYModularity (formerly known as Aspect-oriented Software Development - AOSD)
|
||||||||||||||||||||||||||||||||||||||||||||||
| Overall Acceptance Rate 178 of 718 submissions, 25% | |||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||
REVIEWS
COMMENTSBe the first to comment To Post a comment please sign in or create a free Web account
Table of Contents| SESSION: Core ideas | ||
| Modularity in continually evolving systems | ||
| Urjaswala Vora, Peeyush Chomal, Rahul Upadhyay, Vikram Khati | ||
| Pages: 1-2 | ||
| doi>10.1145/1960314.1960316 | ||
Full text: PDF
|
||
|
The design of a continually-evolving system deteriorates in proportion to the frequency of evolution as much as the complexity of evolution. Here we introduce a design paradigm, Temporal Control Flow Rule-based Architecture (TeCFRA), with a vision to ...
expand
|
||
| Portability as an aspect: rethinking modularity in mobile game development | ||
| Nan Niu, Vander Alves, Tanmay Bhowmik | ||
| Pages: 3-4 | ||
| doi>10.1145/1960314.1960317 | ||
Full text: PDF
|
||
|
This extended abstract overviews our modularity vision along a technical-organizational-ecosystem dimension. Our goal is to explore the benefits that modularity could provide to software vendors in the rapidly changing landscape of mobile game development. ...
expand
|
||
| SESSION: Industry track: keynote | ||
| Session details: Industry track: keynote | ||
| Kirk Knoernschild | ||
| doi>10.1145/3253048 | ||
| Modularity, agility, and architecture's paradox | ||
| Kirk Knoernschild | ||
| Pages: 5-6 | ||
| doi>10.1145/1960314.1960319 | ||
Full text: PDF
|
||
|
Attempts to architect more flexible software often results in the opposite - brittle software fraught with complexity. Something is missing. Complexity is the beast we must tame, and modularity is part of the answer. In this keynote, we'll examine the ...
expand
|
||
| SESSION: Industry track: session 1 | ||
| Session details: Industry track: session 1 | ||
| Flavia Rainone | ||
| doi>10.1145/3253049 | ||
| Experiences documenting and preserving software constraints using aspects | ||
| Roberto Silveira Silva Filho, François Bronsard, William M. Hasling | ||
| Pages: 7-18 | ||
| doi>10.1145/1960314.1960321 | ||
Full text: PDF
|
||
|
Software systems are increasingly being built as compositions of reusable artifacts (components, frameworks, toolkits, plug-ins, APIs, etc) that have non-trivial usage constraints in the form of interface contracts, underlying assumptions and design ...
expand
|
||
| ASystemC: an AOP extension for hardware description language | ||
| Yusuke Endoh | ||
| Pages: 19-28 | ||
| doi>10.1145/1960314.1960322 | ||
Full text: PDF
|
||
|
Hardware-design requirements are becoming increasingly complex. Accordingly, the hardware developer is also beginning to use modern programming languages instead of traditional hardware description languages. However, modularity of the current hardware ...
expand
|
||
| SESSION: Industry track: session 2 | ||
| Session details: Industry track: session 2 | ||
| Flavia Rainone | ||
| doi>10.1145/3253050 | ||
| Using aspect-orientation to simplify concurrent programming | ||
| Uwe D. Hohenstein, Urs Gleim | ||
| Pages: 29-40 | ||
| doi>10.1145/1960314.1960324 | ||
Full text: PDF
|
||
|
The Java programming language offers several basic constructs for concurrent programming. Despite covering everything needed from a functional point of view, the constructs are difficult to use since they require a lot of infrastructural statements besides ...
expand
|
||
| Flexible, dynamic injection of structured advice using byteman | ||
| Andrew E. Dinn | ||
| Pages: 41-50 | ||
| doi>10.1145/1960314.1960325 | ||
Full text: PDF
|
||
|
Byteman is a flexible, dynamic advice injection tool for Java. It uses an Event Condition Action rule script language to structure placement and control execution of injected Java code fragments. The Byteman agent can be loaded at application startup ...
expand
|
||
| TUTORIAL SESSION: Tutorials | ||
| Refactoring at the core of agile software development | ||
| Joseph Yoder | ||
| Pages: 51-52 | ||
| doi>10.1145/1960314.1960327 | ||
Full text: PDF
|
||
|
Refactoring code to make it more maintainable and extendable has become a more mainstream practice. Refactoring is the process of changing software without altering its external behavior. It is done in such as way to improve the structure of the code ...
expand
|
||
| The theory and practice of modern modeling language design for model-based software engineering | ||
| Bran V. Selic | ||
| Pages: 53-54 | ||
| doi>10.1145/1960314.1960328 | ||
Full text: PDF
|
||
|
This is a half-day tutorial dealing with the relatively new field of modeling language design.
expand
|
||
| Understanding programming technologies by analogy, examples, and abstraction: extended abstract (AOSD'11 tutorial) | ||
| Ralf Laemmel | ||
| Pages: 55-56 | ||
| doi>10.1145/1960314.1960329 | ||
Full text: PDF
|
||
|
We have a problem: there is a stunning number of programming technologies out there. There are silos of knowledge around these technologies and technical spaces. In fact, it is not even clear that this abundance can still be approached by computer scientists. ...
expand
|
||
| Rulemakers and toolmakers: adaptive object-models as an agile division of labor | ||
| Joseph Yoder | ||
| Pages: 57-58 | ||
| doi>10.1145/1960314.1960330 | ||
Full text: PDF
|
||
|
Agile practices liberate us from the straightjackets of top-down design. But, the ease with which requirements can change encou-rages users to overwhelm us with requests for features. The result: Featuritis, which promotes hasty construction of poorly ...
expand
|
||
| The aspect-oriented user requirements notation: aspects, goals, and scenarios | ||
| Gunter Mussbacher | ||
| Pages: 59-60 | ||
| doi>10.1145/1960314.1960331 | ||
Full text: PDF
|
||
|
This tutorial discusses aspect-oriented requirements engineering, focusing on scenario-based and goal-oriented requirements models with the Aspect-oriented User Requirements Notation (AoURN). AoURN is an extension of the User Requirements Notation (URN), ...
expand
|
||
| Modularizing crosscutting concerns with Ptolemy | ||
| Hridesh Rajan, Gary T. Leavens, Robert Dyer, Mehdi Bagherzadeh | ||
| Pages: 61-62 | ||
| doi>10.1145/1960314.1960332 | ||
Full text: PDF
|
||
|
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 ...
expand
|
||
| DEMONSTRATION SESSION: Demonstrations: session 1: demo track | ||
| Session details: Demonstrations: session 1: demo track | ||
| Joño Araújo | ||
| doi>10.1145/3253051 | ||
| Analyzing architectural conformance of layered aspect-oriented systems with ArchE Meter | ||
| Juliana Saraiva, Sérgio Soares, Fernando Castor | ||
| Pages: 63-64 | ||
| doi>10.1145/1960314.1960334 | ||
Full text: PDF
|
||
|
We present ArchE Meter, a tool that supports developers in understanding how the implementation of an aspect-oriented system conforms to its intended layered software architecture. Based on the principles of layered software architectures, ArchE Meter ...
expand
|
||
| Hist-Inspect: a tool for history-sensitive detection of code smells | ||
| Leandra Mara, Gustavo Honorato, Francisco Dantas Medeiros, Alessandro Garcia, Carlos Lucena | ||
| Pages: 65-66 | ||
| doi>10.1145/1960314.1960335 | ||
Full text: PDF
|
||
|
Hist-Inspect is a tool that allows the specification and evaluation of different configurations for detection strategies by means of a domain-specific language. The tool enables to easily adjust thresholds and combination of software metrics as well ...
expand
|
||
| Event-driven programming with EScala | ||
| Lucas Satabin, Mira Mezini | ||
| Pages: 67-68 | ||
| doi>10.1145/1960314.1960336 | ||
Full text: PDF
|
||
|
EScala is an extension of Scala with support for declarative event-driven programming. It provides mechanisms for declarative definition of events and employs aspect-oriented techniques for exposing implicitly existing events, which reduces the need ...
expand
|
||
| DEMONSTRATION SESSION: Demonstrations: session 2: demo track | ||
| Session details: Demonstrations: session 2: demo track | ||
| Nélio Cacho | ||
| doi>10.1145/3253052 | ||
| GenArch+: an extensible infrastructure for building framework-based software product lines | ||
| Elder Cirilo, Uirá Kulesza, Alessandro Garcia, Carlos Lucena | ||
| Pages: 69-70 | ||
| doi>10.1145/1960314.1960338 | ||
Full text: PDF
|
||
|
Software product line (SPL) engineering has been focused on tailor single products without programming new completion code. Systematic reuse as configuration potentially lead to significant gains but requires the configuration knowledge to be well conducted. ...
expand
|
||
| ReqSys: an eclipse plug-in for PL-AOVGraph and feature model mapping | ||
| Lidiane Oliveira dos Santos, Thais Vasconcelos Batista, Lyrene Fernandes da Silva | ||
| Pages: 71-72 | ||
| doi>10.1145/1960314.1960339 | ||
Full text: PDF
|
||
|
In this paper, we describe the features of the ReqSys tool, a tool to verify and map PL-AOVgraph models into feature models.
expand
|
||
| Proteum/AJ: a mutation system for AspectJ programs | ||
| Fabiano Cutigi Ferrari, Elisa Yumi Nakagawa, José Carlos Maldonado, Awais Rashid | ||
| Pages: 73-74 | ||
| doi>10.1145/1960314.1960340 | ||
Full text: PDF
|
||
|
Aspect-Oriented Programming (AOP) has introduced a complementary set of mechanisms which enhance the modularisation of crosscutting concerns. However, such mechanisms represent new potential sources of faults that may be systematically tackled with mutation ...
expand
|
||
| SESSION: Student research competition | ||
| Self-refining aspects for dynamic program analysis | ||
| Danilo Ansaloni | ||
| Pages: 75-76 | ||
| doi>10.1145/1960314.1960342 | ||
Full text: PDF
|
||
|
Accurate and efficient dynamic analysis tools are needed for understanding and improving performance of programs. However, such tools often produce perturbed and misleading results, since the inserted analysis code may interfere with runtime optimizations ...
expand
|
||
| Revealing architecturally-relevant flaws in aspectual decompositions | ||
| Isela Macia Bertran | ||
| Pages: 77-78 | ||
| doi>10.1145/1960314.1960343 | ||
Full text: PDF
|
||
|
Although aspect-oriented programming (AOP) aims to improve the software modularity, developers can unwittingly introduce code smells in their programs. Even though a few code smells for AOP have been reported in the literature, there is no evidence whether ...
expand
|
||
| Analyzing the effort on composing design models in industrial case studies | ||
| Kleinner Farias | ||
| Pages: 79-80 | ||
| doi>10.1145/1960314.1960344 | ||
Full text: PDF
|
||
|
The contributions of this research are briefly described as follows: an evaluation framework for model composition effort; practical knowledge about the values that the composition effort variables assume in realistic composition scenarios, i.e., the ...
expand
|
||
| Avoiding confusion with exception handling in aspect-oriented programming | ||
| Ismael Figueroa | ||
| Pages: 81-82 | ||
| doi>10.1145/1960314.1960345 | ||
Full text: PDF
|
||
| Towards a proper aspect-oriented model for distributed systems | ||
| Ismael Mejía | ||
| Pages: 83-84 | ||
| doi>10.1145/1960314.1960346 | ||
Full text: PDF
|
||
|
The adoption of Aspect Oriented Programming (AOP), and in general, of more sophisticated composition models is a recent trend in software engineering to address the problem of the correct modularization of cross-cutting concerns. However, most of these ...
expand
|
||
| On the proactive identification of mistakes on concern mapping tasks | ||
| Camila Nunes | ||
| Pages: 85-86 | ||
| doi>10.1145/1960314.1960347 | ||
Full text: PDF
|
||
| Exploiting modular access control for advanced policies | ||
| Rodolfo Toledo | ||
| Pages: 87-88 | ||
| doi>10.1145/1960314.1960348 | ||
Full text: PDF
|
||
|
In previous work we successfully modularized the Java access control architecture. The approach consists in expressing access control using restriction aspects scoped with an appropriate scoping strategy. In this work we briefly explore how restriction ...
expand
|
||