Isela Macia Bertran, Alessandro F. Garcia, Arndt von Staa
{"title":"An exploratory study of code smells in evolving aspect-oriented systems","authors":"Isela Macia Bertran, Alessandro F. Garcia, Arndt von Staa","doi":"10.1145/1960275.1960300","DOIUrl":"https://doi.org/10.1145/1960275.1960300","url":null,"abstract":"Although aspect-oriented programming (AOP) aims to improve software maintainability, developers can unwittingly introduce code smells in their programs. A code smell is any symptom in the source code that possibly indicates a deeper maintainability problem. Even though a few code smells for AOP have been reported in the literature, there is no evidence if and how they occur in evolving software projects. There is also little knowledge on their actual impact on maintenance effort, such as required refactorings or corrective changes in later software releases. This paper presents an exploratory analysis of code smells recurrently observed in a set of evolving aspect-oriented systems. We analyzed instances of code smells previously reported in the literature and newly-revealed ones. Our study involved in total 18 releases of 3 evolving aspect-oriented systems from different domains. The outcome of our evaluation suggests that previously-documented AOP smells might not occur as often as claimed. Our analysis also revealed that: (1) newly-discovered code smells might occur more often than well-known ones, and (2) the former ones seemed to be consistently associated with non-trivial refactorings and corrective changes.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"125 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":"133636442","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 architectural conformance of layered aspect-oriented systems with ArchE Meter","authors":"Juliana Saraiva, S. Soares, F. C. Filho","doi":"10.1145/1960314.1960334","DOIUrl":"https://doi.org/10.1145/1960314.1960334","url":null,"abstract":"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 indicates to what extent the implementation of a software system violates its layering structure in terms of three different kinds of violations.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"58 3 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":"133419069","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}
Vaidas Gasiunas, Lucas Satabin, M. Mezini, Angel Núñez, Jacques Noyé
{"title":"EScala: modular event-driven object interactions in scala","authors":"Vaidas Gasiunas, Lucas Satabin, M. Mezini, Angel Núñez, Jacques Noyé","doi":"10.1145/1960275.1960303","DOIUrl":"https://doi.org/10.1145/1960275.1960303","url":null,"abstract":"Event-driven programming style in OO languages based on imperatively triggered events does not support separate and more declarative event definitions by composition or transformation of other events. AO language mechanisms for defining events as declarative queries over implicitly available low-level events seem good candidates to approach these problems. However, being designed for modularizing mostly globally scoped, crosscutting concerns, AO mechanisms deliberately break with the OO design and modular reasoning style and are thus inappropriate for addressing modularity concerns related to event-based interactions in OO designs.\u0000 The contribution of this paper is a language design that combines imperatively triggered events with AO-like mechanisms that are specifically designed to address modularity issues in event-driven object-oriented designs. In particular, they seamlessly integrate with OO-style encapsulation, late binding, and modular reasoning. We present an efficient and type-safe implementation of the proposed design as an extension to Scala.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"45 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":"123582282","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":"An aspect-oriented approach for implementing evolutionary computation applications","authors":"A. J. Ramírez, Adam C. Jensen, B. Cheng","doi":"10.1145/1960275.1960295","DOIUrl":"https://doi.org/10.1145/1960275.1960295","url":null,"abstract":"Object-oriented frameworks support design and code reuse for specific application domains. To facilitate the development of evolutionary computation (EC) programs, such as genetic algorithms, developers often extend and customize EC frameworks with application code that defines the EC problem being solved. The application code, however, crosscuts the EC framework whenever candidate solutions are encoded, decoded, evaluated, and output. A change in the application logic, such as adding a parameter to the problem being solved, requires additional changes across code that extends the framework. This paper presents Arachne, an aspect-oriented approach for developing EC programs that extracts the crosscutting concerns of an application code into aspects that can be woven into the EC framework at compile time. To facilitate applying Arachne, we implemented a prototype tool to support the automatic generation of aspect code for two widely used EC frameworks, JGAP and ECJ. We demonstrate Arachne by applying it to re-engineer EC benchmark programs and an industry-provided problem.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"77 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":"131074517","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 theory and practice of modern modeling language design for model-based software engineering","authors":"B. Selić","doi":"10.1145/1960314.1960328","DOIUrl":"https://doi.org/10.1145/1960314.1960328","url":null,"abstract":"This is a half-day tutorial dealing with the relatively new field of modeling language design.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"193 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":"123850458","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}
Eduardo Figueiredo, Alessandro F. Garcia, M. Maia, G. Ferreira, Camila Nunes, J. Whittle
{"title":"On the impact of crosscutting concern projection on code measurement","authors":"Eduardo Figueiredo, Alessandro F. Garcia, M. Maia, G. Ferreira, Camila Nunes, J. Whittle","doi":"10.1145/1960275.1960287","DOIUrl":"https://doi.org/10.1145/1960275.1960287","url":null,"abstract":"Many concern metrics have been defined to quantify properties of crosscutting concerns, such as scattering, tangling, and dedication. To quantify these properties, concern metrics directly rely on the projection (assignment) of concerns into source code. Although concern identification tools have emerged over the last years, they are still rarely used in practice to support concern projection and, therefore, it is a task often performed manually. This means that the results of concern metrics are likely to be influenced by how accurately programmers assign concerns to code elements. Even though concern assignment is an important and long-standing problem in software engineering, its impact on accurate measures of crosscutting concerns has never been studied and quantified. This paper presents a series of 5 controlled experiments to quantify and analyse the impact of concern projection on crosscutting concern measures. A set of 80 participants from 4 different institutions projected 10 concern instances into the source code of two software systems. We analyse the accuracy of concern projections independently made by developers, and their impact on a set of 12 concern metrics. Our results suggest that: (i) programmers are conservative when projecting crosscutting concerns, (ii) all concern metrics suffer with such conservative behaviour, and (iii) fine-grained tangling measures are more sensitive to different concern projections than coarse-grained scattering metrics.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"39 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":"124851344","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":"AspectLTL: an aspect language for LTL specifications","authors":"S. Maoz, Yaniv Sa'ar","doi":"10.1145/1960275.1960280","DOIUrl":"https://doi.org/10.1145/1960275.1960280","url":null,"abstract":"We present AspectLTL, a temporal-logic based language for the specification and implementation of crosscutting concerns. AspectLTL enables the modular declarative specification of expressive concerns, covering the addition of new behaviors, as well as the specification of safety and liveness properties. Moreover, given an AspectLTL specification, consisting of a base system and a set of aspects, we provide AspectLTL with a composition and synthesis-based weaving process, whose output is a correct-by-construction executable artifact. The language is supported by a prototype tool and is demonstrated using a running example.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"46 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":"132698184","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":"Measuring the effects of aspect-oriented refactoring on component relationships: two case studies","authors":"Reishi Yokomori, Harvey P. Siy, Norihiro Yoshida, Masami Noro, Katsuro Inoue","doi":"10.1145/1960275.1960301","DOIUrl":"https://doi.org/10.1145/1960275.1960301","url":null,"abstract":"Aspect-oriented refactoring is a promising technique for improving modularity and reducing complexity of existing software systems through encapsulating crosscutting concerns. As complexity of a system is often linked to the degree to which its components are connected, we investigate in this paper the impact of such refactoring activities on component relationships. We analyze two aspect-refactoring projects to determine circumstances when such activities are effective at reducing component relationships and when they are not. We measure two kinds of relationships between components, use and clone relations. We compare how these metrics changed between the original and the refactored system. Our findings indicate that aspect-oriented refactoring is successful in improving the modularity and complexity of the base code. However, we obtain mixed results when aspects are accounted for. Based on these results, we also discuss constraints to the technology as well as other design considerations that may limit the effectiveness of aspect-oriented refactoring on actual systems.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"18 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":"122381572","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}
D. Lohmann, Wanja Hofer, Wolfgang Schröder-Preikschat, O. Spinczyk
{"title":"Aspect-aware operating system development","authors":"D. Lohmann, Wanja Hofer, Wolfgang Schröder-Preikschat, O. Spinczyk","doi":"10.1145/1960275.1960285","DOIUrl":"https://doi.org/10.1145/1960275.1960285","url":null,"abstract":"The domain of operating systems has often been mentioned as an \"ideal candidate\" for the application of AOP; fundamental policies we find in these systems, such as synchronization or preemption, seem to be inherently cross-cutting in their implementation. Their clear separation into dedicated aspect modules should facilitate better evolvability and - the focus of this paper - configurability. Our experience with applying AOP to the domain of highly configurable embedded operating systems has shown, however, that these advantages can by no means be taken for granted. To reveal maximum configurability of central system policies, aspects and their potential interactions with the system have to be taken into account much earlier, that is, \"from the very beginning\". We propose the analysis and design process of aspect-aware development, which leads to such an \"aspect-friendly\" system structure and demonstrate its feasibility on the example of CiAO, an AUTOSAR-OS-compliant operating system that provides configurability of all fundamental system policies by means of AOP.","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":"130772234","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}
Sébastien Mosser, G. Mussbacher, M. Blay-Fornarino, Daniel Amyot
{"title":"From aspect-oriented requirements models to aspect-oriented business process design models: an iterative and concern-driven approach for software engineering","authors":"Sébastien Mosser, G. Mussbacher, M. Blay-Fornarino, Daniel Amyot","doi":"10.1145/1960275.1960281","DOIUrl":"https://doi.org/10.1145/1960275.1960281","url":null,"abstract":"Aspect-oriented approaches are available for various phases of software development such as requirements analysis, design, and implementation. Yet, moving from one phase to the next with aspects remains a challenge seldom studied. In this paper, we present an iterative, concern-driven software engineering approachbased on a tool-supported, semi-automatic transformation of scenario-based, aspect-oriented requirements models into aspect-oriented business process design models. This approach is realized by a mapping from Aspect-oriented Use Case Maps (AoUCM) to Adore business process models, allowing for the continued encapsulation of requirements-level concerns in design-level artifacts. Problems detected during the design phase can be rectified in the requirements models via several feedback loops that support iterative model development. We discuss the transformation process and illustrate, as proof-of-concept, our contribution on the PicWeb case study, a SOA-based implementation of business processes for pictures management.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"34 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":"121593630","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}