{"title":"Method differentiator using slice-based cohesion metrics","authors":"Akira Goto, Norihiro Yoshida, Masakazu Ioka, Eunjong Choi, Katsuro Inoue","doi":"10.1145/2457392.2457399","DOIUrl":"https://doi.org/10.1145/2457392.2457399","url":null,"abstract":"It is important to understand semantic differences between a pair of Java methods during maintenance. However, textual or syntactic difference is insufficient to give clear idea which code fragment realizes a single functionality in Java methods. In this paper, we present an Eclipse plugin for semantic differentiation of a given pair of Java methods.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130177970","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":"KFusion: optimizing data flow without compromising modularity","authors":"L. Kiemele, Celina Berg, A. Gulliver, Y. Coady","doi":"10.1145/2451436.2451440","DOIUrl":"https://doi.org/10.1145/2451436.2451440","url":null,"abstract":"Programming language support for multi-core architectures introduces a fundamentally new mechanism for modularity---a kernel. Though it can be used as a means to separate concerns, a kernel is given a clean slate of memory at execution time. As a consequence, application developers attempting to leverage libraries of kernels often incur substantial unanticipated performance penalties. Currently, the only recourse is to compromise modularity for the sake of optimizing data flow on an application-specific basis. KFusion is our prototype tool for optimizing libraries of kernels according to application-specific needs. Our goal is to shield application developers from loop fusion and deforestation in compositions of low level kernels that share data. Libraries, augmented by domain experts with annotations to ensure correct compositions of kernels, provide application developers with the opportunity to supply hints according to customized data flow needs---keeping modularity intact. In the worst case, an inaccurate hint incurs no penalty. Case studies of applications using general-purpose libraries for linear algebra, image manipulation and physics engines show that KFusion can substantially improve performance associated memory bandwidth bottlenecks.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125543673","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":"Towards control of aspect interference using membranes and monads","authors":"Ismael Figueroa","doi":"10.1145/2457392.2457404","DOIUrl":"https://doi.org/10.1145/2457392.2457404","url":null,"abstract":"","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"335 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133760063","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 Frischbier, Alessandro Margara, T. Freudenreich, P. Eugster, D. Eyers, P. Pietzuch
{"title":"Aggregation for implicit invocations","authors":"S Frischbier, Alessandro Margara, T. Freudenreich, P. Eugster, D. Eyers, P. Pietzuch","doi":"10.1145/2451436.2451450","DOIUrl":"https://doi.org/10.1145/2451436.2451450","url":null,"abstract":"Implicit invocations are a popular mechanism for exchanging information between software components without binding these strongly. This decoupling is particularly important in distributed systems when interacting components are not known until runtime. In most realistic distributed systems though, components require some information about each other, be it only about their presence or their number. Runtime systems for implicit invocations--so-called publish/subscribe systems--are thus often combined with other systems providing such information. Given the variety of requirements for information about interacting components across applications, this paper proposes a generic augmentation of implicit invocations: rather than extending a given publish/subscribe API and system in order to convey a particular type of information across interacting components, we describe domain-specific joinpoints that can be used to advise application-level invocation routers-so-called brokers--used by publish/subscribe systems. This enables aggregation of application-specific information to and from components in a scalable manner.\u0000 After presenting our domain-specific joinpoint model, we describe its implementation inside the REDS publish/subscribe middleware. The empirical evaluation of our approach shows that: (a) it outperforms external aggregation systems, by collecting and distributing information with a limited overhead; (b) the deployment of new functionalities has virtually no overhead, even if it occurs while the publish/subscribe system is running.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"429 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131581807","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":"Powerful and seamless syntax extensions on a statically typed language","authors":"Kazuhiro Ichikawa","doi":"10.1145/2457392.2457411","DOIUrl":"https://doi.org/10.1145/2457392.2457411","url":null,"abstract":"In this paper, we propose a mechanism of user-defined operators with better expressiveness while keeping composability. Our user-defined operators, named protean operators, can express arbitrary Parsing Expression Grammar (PEG) syntax, and they can also express complex user-defined literals. A library of user-defined operators is composable - the library can use with any other libraries. We have developed ProteaJ, which is an extension of Java 1.4 supporting protean operators.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127011537","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":"A brief tour of join point interfaces","authors":"E. Bodden, É. Tanter, Milton Inostroza","doi":"10.1145/2457392.2457401","DOIUrl":"https://doi.org/10.1145/2457392.2457401","url":null,"abstract":"In standard AspectJ, aspects and base code are often insufficiently decoupled, as aspects hold pointcuts, which can contain explicit textual references to base code. This hinders aspect evolution and reuse, and may hinder reasoning about aspects on the base-code side. In this demo we present join point interfaces as an extension to the aspect-oriented programming language AspectJ. Opposed to AspectJ, with join point interfaces aspects and base code communicate only through a shared interface abstraction. Aspects themselves go without pointcuts and only reference the interface. Pointcuts are typically defined on the base-code side, or not at all, as join point interfaces also support pure explicit invocation as known from publish-subscribe systems. As a result, users obtain a language which decouples aspects from base code using a modular type-checking algorithm, and which they can use to adopt aspects gradually as they desire.\u0000 One major undertaking in the design of join point interfaces was to make the language as flexible to use as standard AspectJ, while nevertheless providing interfaces supported by strong type checks that can completely avoid type errors at composition time. In this demo we will discuss this inherent trade-off, we will present JPIs as an extension to the AspectBench Compiler, and will show how the language eases the maintenance of existing AspectJ applications.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128038685","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":"Secure and modular access control with aspects","authors":"Rodolfo Toledo, É. Tanter","doi":"10.1145/2451436.2451456","DOIUrl":"https://doi.org/10.1145/2451436.2451456","url":null,"abstract":"Can access control be fully modularized as an aspect? Most proposals for aspect-oriented access control are limited to factoring out access control checks, still relying on a non-modular and ad hoc infrastructure for permission checking. Recently, we proposed an approach for modular access control, called ModAC. ModAC successfully modularizes both the use of and the support for access control by means of restriction aspects and scoping strategies. However, ModAC is only informally described and therefore does not provide any formal guarantee with respect to its effectiveness. In addition, like in many other proposals for aspect-oriented access control, the presence of untrusted aspects is not at all considered, thereby jeopardizing the practical applicability of such approaches. This paper demonstrates that it is possible to fully modularize aspect control, even in the presence of untrusted aspects. It does so by describing a self-protecting aspect that secures ModAC. We validate this result by describing a core calculus for AspectScript, an aspect-oriented extension of JavaScript, and using this calculus to prove effectiveness and non-interference properties of ModAC. Beyond being an important validation for AOP itself, fully modularizing access control with aspects allows access control to be added to other aspect languages, without requiring ad hoc support.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131355103","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":"Reusing software design models with TouchRAM","authors":"J. Kienzle","doi":"10.1145/2457392.2457402","DOIUrl":"https://doi.org/10.1145/2457392.2457402","url":null,"abstract":"TouchRAM is a multitouch-enabled tool for agile software design modelling aimed at developing scalable and reusable software design models. This paper briefly summarizes the main features of the Reusable Aspect Models modelling approach that TouchRAM is based on, and then describes how the tool is used during the design process to incrementally elaborate a complex software design model.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"315 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124293639","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":"Method shells: controlling a scope of destructive class extensions by context switches","authors":"Wakana Takeshita","doi":"10.1145/2457392.2457410","DOIUrl":"https://doi.org/10.1145/2457392.2457410","url":null,"abstract":"We propose Method Shells, which is a module system for switching a set of destructive class extensions at runtime. Destructive class extensions are getting popular and supported by a number of languages. By using destructive class extensions, you can add new methods to existing classes and redefine existing methods without rewriting the original source code by only writing differences in a separate file. For this reason, destructive class extensons are suitable for reusing an entire program, such as libraries. However, difference destructive class extensions redefining the same method in the same class may conflict. Our module system can switch sets of destructive class extensions activated and deactivated at runtime. Futhermore, we defined the formal semantics of our module system and proposed a way to impliment methodshells without runtime overheads.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"56 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132582758","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":"Modular construction of an analysis tool for mining software repositories","authors":"Kazuhiro Yamashita","doi":"10.1145/2457392.2457409","DOIUrl":"https://doi.org/10.1145/2457392.2457409","url":null,"abstract":"In this paper, we propose an analysis tool for mining software repository (MSR) called E-CUBE, which corresponds to three types of evolution in MSR (i.e., Platform Evolution, Target Evolution and Scale Evolution). To encapsulate the essence of these types of evolution, we introduce modular construction for MSR studies to E-CUBE. We make a choice of features (i.e., modules) in the field of MSR using Feature Oriented Domain Analysis (FODA) and implement those modules using an internal Domain specific language (DSL).","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133195677","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}