{"title":"Revealing architecturally-relevant flaws in aspectual decompositions","authors":"Isela Macia Bertran","doi":"10.1145/1960314.1960343","DOIUrl":"https://doi.org/10.1145/1960314.1960343","url":null,"abstract":"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 and how they occur in evolving software projects. There is also little knowledge on their actual impact on architecture degeneration, such as their correlation with architecturally-relevant flaws. Therefore, in this research we investigate which AOP smells occur in evolving software systems and how their (co-)occurrence are usually associated with architecturally-relevant flaws. The basic idea is to equip AOP developers with analysis techniques for the source code that exploit the architectural design information.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"141 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115786427","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Using aspect-orientation to simplify concurrent programming","authors":"U. Hohenstein, U. Gleim","doi":"10.1145/1960314.1960324","DOIUrl":"https://doi.org/10.1145/1960314.1960324","url":null,"abstract":"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 the real logic. This makes concurrent programming errorprone and difficult to reuse. It seems that abstractions are needed to ease the pain and to better support reusability.\u0000 This paper explores how to use and benefit from aspect-orientation (AO), particularly the AspectJ language, in this respect. AO promises a high potential for reuse due to a higher level of modularization since crosscutting concerns can better be modularized in aspects. This paper confirms higher reuse by presenting a collection of reusable aspects for solving specific problems in concurrent programming.\u0000 Having AspectJ-based implementations for recurring problems, this paper also summarizes some interesting experiences and takes the chance to present an industrial view on some criticisms of aspect-orientation.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128508313","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Modules: dreams and reality","authors":"Gilad Bracha","doi":"10.1145/1960275.1960310","DOIUrl":"https://doi.org/10.1145/1960275.1960310","url":null,"abstract":"Interfaces are key to defining modularity. A working definition of module is an entity that can be changed freely as long as its interface is preserved. What then is a good notion of interface? In this talk, we'll argue for a notion of modules and interfaces that is ultimately inspired by physical reality, and contrast it with the dreams embodied in the concepts of aspect orientation. Our notions have been realized in the Newspeak language, but the concepts apply to a variety of languages.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123273126","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Analyzing the effort on composing design models in industrial case studies","authors":"Kleinner Farias","doi":"10.1145/1960314.1960344","DOIUrl":"https://doi.org/10.1145/1960314.1960344","url":null,"abstract":"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 quantification of the required effort on applying the (semi-)automated composition techniques, detecting conflicts and resolving the emerging conflicts; the identification of specific scenarios of evolution and factors that lead the composition technique to success (lower effort) or fail (higher effort). We also summarize some interesting findings: the higher the number of overlapping parts of the input models is, the higher the composition effort is; conflict propagation between the model elements has a negative impact on the developers' effort; sometimes developers prefer \"living with conflicts\" instead of spending effort to resolve them; and the resolution of unexpected conflicting changes is influenced by the developers' reputation in the software development team.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"121 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125210698","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Portability as an aspect: rethinking modularity in mobile game development","authors":"Nan Niu, Vander Alves, Tanmay Bhowmik","doi":"10.1145/1960314.1960317","DOIUrl":"https://doi.org/10.1145/1960314.1960317","url":null,"abstract":"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. Our research suggests a promising synergy between the software ecosystem and modularity communities.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"48 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121054890","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"The aspect-oriented user requirements notation: aspects, goals, and scenarios","authors":"G. Mussbacher","doi":"10.1145/1960314.1960331","DOIUrl":"https://doi.org/10.1145/1960314.1960331","url":null,"abstract":"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), a recent international modeling standard for requirements engineering published by the International Telecommunication Union. AoURN is a strong candidate for inclusion in future versions of the standard. While the tutorial gives a thorough introduction to AoURN, it places particular emphasis on AoURN's advanced composition mechanisms which enable interleaved and semantics-enhanced compositions. In addition, the impact of aspect-orientation on existing URN analysis capabilities is discussed.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"58 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122655811","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"MetaLexer: a modular lexical specification language","authors":"Andrew Casey, L. Hendren","doi":"10.1145/1960275.1960279","DOIUrl":"https://doi.org/10.1145/1960275.1960279","url":null,"abstract":"Compiler toolkits make it possible to rapidly develop compilers and translators for new programming languages. Although there exist elegant toolkits for modular and extensible parsers, compiler developers must often resort to ad-hoc solutions when extending or composing lexers. This paper presents MetaLexer, a new modular lexical specification language and associated tool.\u0000 MetaLexer allows programmers to define lexers in a modular fashion. MetaLexer modules can be used to break the lexical specification of a language into a collection smaller modular lexical specifications. Control is passed between the modules using the concept of meta-tokens and meta-lexing. MetaLexer modules are also extensible.\u0000 MetaLexer has two key features: it abstracts lexical state transitions out of semantic actions and it makes modules extensible by introducing multiple inheritance.\u0000 We have constructed a MetaLexer tool which converts MetaLexer specifications to the popular JFlex lexical specification language and we have used our tool to create lexers for three real programming languages and their extensions: AspectJ (and two AspectJ extensions), MATLAB (and the AspectMatlab extension), and MetaLexer itself. The new specifications are easier to read, are extensible, and require much less action code than the originals.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130384600","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Hridesh Rajan, Gary T. Leavens, Robert Dyer, M. Bagherzadeh
{"title":"Modularizing crosscutting concerns with Ptolemy","authors":"Hridesh Rajan, Gary T. Leavens, Robert Dyer, M. Bagherzadeh","doi":"10.1145/1960314.1960332","DOIUrl":"https://doi.org/10.1145/1960314.1960332","url":null,"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.\u0000 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.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125134301","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A. Holzer, Lukasz Ziarek, K. R. Jayaram, P. Eugster
{"title":"Putting events in context: aspects for event-based distributed programming","authors":"A. Holzer, Lukasz Ziarek, K. R. Jayaram, P. Eugster","doi":"10.1145/1960275.1960304","DOIUrl":"https://doi.org/10.1145/1960275.1960304","url":null,"abstract":"Event-based programming is an appealing paradigm for developing pervasive systems since events enable the decoupling of interacting components. Unfortunately, many event-based languages and systems have hardwired notions of physical or logical time and space. This limits their adaptability and target deployment environments, as pervasive systems rely on inherent interaction and interchanging of different protocols and infrastructures.\u0000 This paper introduces domain-specific aspects for capturing event context, generalizing beyond the classic time and space dimensions associated with events. Through examples, we demonstrate that our context aspects - conspects for short - modularize the design and implementation of event contexts, enabling code reuse, and making programs portable across infrastructures. We illustrate the benefits of conspects by using them to transparently switch protocols in two pervasive software suites implemented in EventJava: (1) a tornado monitoring system deployed on different architectures ranging from desktop x86 to embedded LEON3, and (2) a mobile social networking suite with protocols for different application scenarios.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"56 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134458710","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Exploiting modular access control for advanced policies","authors":"Rodolfo Toledo","doi":"10.1145/1960314.1960348","DOIUrl":"https://doi.org/10.1145/1960314.1960348","url":null,"abstract":"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 aspects and scoping strategies make it possible to express novel and useful access control policies in a direct manner.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"75 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121019634","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}