{"title":"Subjective, multidimensional modularity with korz","authors":"H. Ossher, D. Ungar, D. Kimelman","doi":"10.1145/2735386.2735923","DOIUrl":"https://doi.org/10.1145/2735386.2735923","url":null,"abstract":"Korz is a new computational model that provides for context-oriented programming by combining implicit arguments and multiple dispatch in a slot-based model. This synthesis enables the writing of software that supports contextual variation along multiple dimensions, and graceful evolution of that software to support new, unexpected dimensions of variability, without the need for additional mechanism such as layers or aspects. With Korz, a system consists of a sea of method and data slots in a multidimensional space. There is no fixed organization of slots into objects – a slot pertains to a number of objects instead of being contained by a single object – and slots can come together according to the implicit context in any given situation, yielding subjective objects. There is no dominant decomposition, and no dimension holds sway over any other. IDE support is essential for managing complexity when working with the slot space and with subjectivity, allowing the task at hand to dictate what subspaces to isolate and what dominance of dimensions to use when presenting nested views to the user. We have implemented a prototype interpreter and IDE, and used it on several examples. This early experience has revealed much that needs to be done, but has also shown promise. It seems that Korz's particular combination of concepts, each well-known from the past, is indeed more powerful than the sum of its parts.","PeriodicalId":401605,"journal":{"name":"Companion Proceedings of the 14th International Conference on Modularity","volume":"107 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123015033","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}
Florent Marchand de Kerchove, Jacques Noyé, Mario Südholt
{"title":"Towards modular instrumentation of interpreters in JavaScript","authors":"Florent Marchand de Kerchove, Jacques Noyé, Mario Südholt","doi":"10.1145/2735386.2736753","DOIUrl":"https://doi.org/10.1145/2735386.2736753","url":null,"abstract":"With an initial motivation based on the security of web applications written in JavaScript, we consider the instrumentation of an interpreter for a dynamic analysis as a crosscutting concern. We define the instrumentation problem — an extension to the expression problem with a focus on modifying interpreters. We then illustrate how we can instrument an interpreter for a simple language using only the bare language features provided by JavaScript.","PeriodicalId":401605,"journal":{"name":"Companion Proceedings of the 14th International Conference on Modularity","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133059479","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 theory of modularity for automated software development (keynote)","authors":"D. Batory","doi":"10.1145/2735386.2735843","DOIUrl":"https://doi.org/10.1145/2735386.2735843","url":null,"abstract":"Automated Software Development (ASD) are technologies for developing customized programs automatically and compositionally from modules. The foundations of ASD are domain-specific algebras, where each program in the target domain maps to a unique expression. Algebraic identities are used to optimize programs automatically. In this keynote, I trace the history of ASD and present a general theory of modularity for ASD that follows from its tenets.","PeriodicalId":401605,"journal":{"name":"Companion Proceedings of the 14th International Conference on Modularity","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115522125","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":"Challenges on software unbundling: growing and letting go","authors":"J. B. P. Filho, M. Acher, Olivier Barais","doi":"10.1145/2735386.2735390","DOIUrl":"https://doi.org/10.1145/2735386.2735390","url":null,"abstract":"Unbundling is a phenomenon that consists of dividing an existing software artifact into smaller ones. For example, mobile applications from well-known companies are being divided into simpler and more focused new ones. Despite its current importance, little is known or studied about unbundling or about how it relates to existing software engineering approaches, such as modularization. Consequently, recent cases point out that it has been performed unsystematically and arbitrarily. In this paper, our main goal is to present this novel and relevant concept and its challenges in the light of software engineering, exemplifying it with recent cases. We relate unbundling to standard software modularization, presenting the new motivations behind it, the resulting problems, and drawing perspectives for future support in the area.","PeriodicalId":401605,"journal":{"name":"Companion Proceedings of the 14th International Conference on Modularity","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128995925","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":"Enforcing information hiding in interface specifications: a client-aware checking approach","authors":"Henrique Rebêlo, Gary T. Leavens","doi":"10.1145/2735386.2736750","DOIUrl":"https://doi.org/10.1145/2735386.2736750","url":null,"abstract":"Information hiding is an established principle that controls which parts of a module are visible to non-privileged and privileged clients (e.g., subclasses). This aids maintenance because hidden implementation details can be changed without affecting clients. The benefits of information hiding apply not only to code but also to other artifacts, such as specifications. Unfortunately, contemporary formal interface specification languages and their respective runtime assertion checkers (RACs) are inconsistent with information hiding rules because they check assertions in an overly-dynamic manner on the supplier side. We explain how overly-dynamic RACs compromise information hiding and how our client-aware checking technique allows these RACs to use the privacy information in specifications, which promotes information hiding.","PeriodicalId":401605,"journal":{"name":"Companion Proceedings of the 14th International Conference on Modularity","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125878792","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":"Visualization algorithms for feature models in concern-driven software development","authors":"Nishanth Thimmegowda, J. Kienzle","doi":"10.1145/2735386.2735389","DOIUrl":"https://doi.org/10.1145/2735386.2735389","url":null,"abstract":"Concern-Driven Development builds on the disciplines of model-driven engineering, software product lines and aspect-orientation to define broad units of reuse, so called concerns. The feature model of a concern plays a central role, since it describes the variants encapsulated by a concern, such as, alternative functionality or different design solutions. This paper argues that depending on who is working with the feature model, the encapsulated features and their relationships should be visualized differently: the concern designer is working within the concern module, and therefore needs to see the features of reused concerns that have been selected; the concern user is evaluating if a concern can be reused for a given purpose, and therefore wants to browse the choices that are available.","PeriodicalId":401605,"journal":{"name":"Companion Proceedings of the 14th International Conference on Modularity","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126469872","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":"Demanding first-class equality for domain specific aspect languages","authors":"Arik Hadas, D. Lorenz","doi":"10.1145/2735386.2735388","DOIUrl":"https://doi.org/10.1145/2735386.2735388","url":null,"abstract":"Domain specific aspect languages (DSALs) are programming languages that are both domain specific and aspect-oriented. However, DSALs seem to be second-class. On the one hand, language workbenches handle only DSLs that are not aspect-oriented, making it difficult to develop new DSALs. On the other hand, development tools for general purpose aspect-oriented languages do not work with DSALs, making it difficult to use them. In this work we present an approach for building a modular DSAL workbench that produces first-class DSALs. A DSAL is said to be first-class if development tools treat it as a general purpose AOP language. Specifically, this means that first-class DSALs for Java can be used with tools that work with AspectJ. For concreteness, we illustrate the approach by describing our implementation of a DSAL workbench, comprising the Spoofax language workbench and the Awesome composition framework, for programming with first-class DSALs in Java.","PeriodicalId":401605,"journal":{"name":"Companion Proceedings of the 14th International Conference on Modularity","volume":"79 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125494117","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 separation of concerns in flow-based programming","authors":"Bahram Zarrin, H. Baumeister","doi":"10.1145/2735386.2736752","DOIUrl":"https://doi.org/10.1145/2735386.2736752","url":null,"abstract":"Flow-Based Programming (FBP) is a programming paradigm that models software systems as a directed graph of predefined processes which run asynchronously and exchange data through input and output ports. FBP decomposes software systems into a network of processes. However there are concerns in software systems which do not fit this dominant decomposition. In this paper, we address the cross-cutting-concerns in FBP by using some examples and propose an aspect-oriented extension to FBP.","PeriodicalId":401605,"journal":{"name":"Companion Proceedings of the 14th International Conference on Modularity","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129810903","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}
Matthias Schöttle, Nishanth Thimmegowda, Omar Alam, J. Kienzle, G. Mussbacher
{"title":"Feature modelling and traceability for concern-driven software development with TouchCORE","authors":"Matthias Schöttle, Nishanth Thimmegowda, Omar Alam, J. Kienzle, G. Mussbacher","doi":"10.1145/2735386.2735922","DOIUrl":"https://doi.org/10.1145/2735386.2735922","url":null,"abstract":"This demonstration paper presents TouchCORE, a multi-touch enabled software design modelling tool aimed at developing scalable and reusable software design models following the concerndriven software development paradigm. After a quick review of concern-orientation, this paper primarily focusses on the new features that were added to TouchCORE since the last demonstration at Modularity 2014 (were the tool was still called TouchRAM). TouchCORE now provides full support for concern-orientation. This includes support for feature model editing and different modes for feature model and impact model visualization and assessment to best assist the concern designers as well as the concern users. To help the modeller understand the interactions between concerns, TouchCORE now also collects tracing information when concerns are reused and stores that information with the woven models. This makes it possible to visualize from which concern(s) a model element in the woven model has originated.","PeriodicalId":401605,"journal":{"name":"Companion Proceedings of the 14th International Conference on Modularity","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134377191","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":"Companion Proceedings of the 14th International Conference on Modularity","authors":"Sudipto Ghosh, Gary T. Leavens","doi":"10.1145/2735386","DOIUrl":"https://doi.org/10.1145/2735386","url":null,"abstract":"","PeriodicalId":401605,"journal":{"name":"Companion Proceedings of the 14th International Conference on Modularity","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121155835","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}