{"title":"Towards a meta-model for dynamic applications","authors":"Sahar Smaali, Aicha Choutri, F. Belala","doi":"10.1145/2602458.2602469","DOIUrl":"https://doi.org/10.1145/2602458.2602469","url":null,"abstract":"Interfaces are the key architectural elements able to offer a better behavior or evolution view of software system architecture and components interactions.In this paper, we propose a single software architecture description meta-model based on MDA approach to deal with both static and dynamic aspects. It is particularly centered on the interface concept considered as a first class entity. This has the advantage to allow a loose coupling of basic constructing blocks. Moreover, it will ensure facilities for software maintainability and flexibility. Our high-level architecture behavior and dynamics definition is illustrated and evaluated through a realistic example of a ubiquitous system.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131733097","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}
M. Pressler, A. Viehl, O. Bringmann, W. Rosenstiel
{"title":"Execution cost estimation for software deployment in component-based embedded systems","authors":"M. Pressler, A. Viehl, O. Bringmann, W. Rosenstiel","doi":"10.1145/2602458.2602462","DOIUrl":"https://doi.org/10.1145/2602458.2602462","url":null,"abstract":"We present an approach for the determination of initial mapping configurations for embedded software components on modern embedded heterogeneous processor architectures. The presented work combines the advantages of component-based design and properties obtained from source-code analysis. The goal is a very fast estimation of execution costs for multiple hardware/software component pairs even before the hardware is physically available.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"68 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124371730","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}
Teng Long, Il-Chul Yoon, A. Memon, A. Porter, A. Sussman
{"title":"Enabling collaborative testing across shared software components","authors":"Teng Long, Il-Chul Yoon, A. Memon, A. Porter, A. Sussman","doi":"10.1145/2602458.2602468","DOIUrl":"https://doi.org/10.1145/2602458.2602468","url":null,"abstract":"Components of numerous software systems are developed and maintained by multiple stakeholders, and there is significant overlap and synergy in the process of testing systems with shared components. We have designed and implemented infrastructure that enables testers of different components to share their test results and artifacts so that they can collaborate in testing shared components. We also develop an example collaborative testing process that leverages our infrastructure to save effort for regression testing of systems with shared components. Our empirical study of this process shows that collaborative testing of component-based software systems can not only save significant effort by sharing test results and artifacts, but also improve test quality of individual components by utilizing synergistic data shared among component testers.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"255 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115781501","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":"Runtime modularity in complex structures: a component model for fine grained runtime adaptation","authors":"Barry Porter","doi":"10.1145/2602458.2602471","DOIUrl":"https://doi.org/10.1145/2602458.2602471","url":null,"abstract":"Online modular adaptation and self-adaptation techniques have demonstrated significant benefits in coarse-grained software, enabling agile and high-performance deployments. We are studying the same kinds of runtime adaptation applied to fine-grained software such as graphical user interfaces and web server implementations. However, this kind of software is defined by pervasive use of behaviourally-driven structure. Existing runtime component models fail to capture this necessity due to their exclusive reliance on externally-driven structural composition. In this paper we present a novel runtime component model that both satisfies the need to externally manage software structure, enabling runtime adaptation and self-adaptation, while also satisfying the need for fine-grained software to create elements of its own structure based on application-specific system behaviour. We present the key details of our model along with an initial evaluation.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"NS20 4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116553252","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":"Strengthening architectures of smart CPS by modeling them as runtime product-lines","authors":"T. Bures, P. Hnetynka, F. Plášil","doi":"10.1145/2602458.2602478","DOIUrl":"https://doi.org/10.1145/2602458.2602478","url":null,"abstract":"Smart Cyber-Physical Systems (CPS) are complex distributed decentralized systems of cooperating mobile and stationary devices which closely interact with the physical environment. Although Component-Based Development (CBD) might seem as a viable solution to target the complexity of smart CPS, existing component models scarcely cope with the open-ended and very dynamic nature of smart CPS. This is especially true for design-time modeling using hierarchical explicit architectures, which traditionally provide an excellent means of coping with complexity by providing multiple levels of abstractions and explicitly specifying communication links between component instances. In this paper we propose a modeling method (materialized in the SOFA NG component model) which conveys the benefits of explicit architectures of hierarchical components to the design of smart CPS. Specifically, we base our method on modeling systems as reference architectures of Software Product Lines (SPL). Contrary to traditional SPL, which is a fully design-time approach, we create SPL configurations at runtime. We do so in a decentralized way by translating the configuration process to the process of establishing component ensembles (i.e. dynamic cooperation groups of components) of our DEECo component model.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"77 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129817951","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 component-based meta-level architecture and prototypical implementation of a reflective component-based programming and modeling language","authors":"P. Spacek, C. Dony, Chouki Tibermacine","doi":"10.1145/2602458.2602476","DOIUrl":"https://doi.org/10.1145/2602458.2602476","url":null,"abstract":"Component-based Software Engineering studies the design, development and maintenance of software constructed upon sets of connected components. Using existing standard solutions, component-based models are frequently transformed into non-component-based programs, most of the time object-oriented, for run-time execution. As a consequence many component-level descriptions (part of code), e.g. explicit architectures or ports declarations, vanish at the implementation stage, making debugging, transformations or reverse-engineering difficult. It has been shown that component-based programming languages contribute to bridge this gap between design and implementation and to provide a conceptual and practical continuum to fully develop applications with components. In this paper we go one step further in this direction by making a component-oriented programming and modeling language truly reflective, thus making verification, evolution or transformation stages of software development part of this new continuum. The gained reflection capabilities indeed make it possible to perform architecture checking, code refactoring, model transformations or even to implement new languages constructs with and for components. The paper presents an original executable meta-level architecture achieving the vision that \"everything is a component}' and an operational implementation demonstrating its feasibility and effectiveness. Our system revisits some standard solutions for reification in the component's context and also handles new cases, such as ports reification, to allow for runtime introspection and intercession on components and on their descriptors. We validate these ideas in the context of an executable prototypical and minimal component-based language, named Compo, whose first goal is to help imagining the future.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"44 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125782194","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 mining informal online data to guide component-reuse decisions","authors":"Sanchit Karve, Christopher Scaffidi","doi":"10.1145/2465449.2465459","DOIUrl":"https://doi.org/10.1145/2465449.2465459","url":null,"abstract":"Online repositories provide components available for reuse, but this does not mean all such components are equally reusable. Components might be unreliable, overly specialized, or otherwise inappropriate for reuse. Repositories collect reviews, ratings, and other data intended to help software engineers choose components. But do these data actually provide any information related to reusability? If so, then how can such information be extracted from the data?\u0000 To address this question, we analyzed online ratings, reviews and other data for nearly 1200 online components, computed statistics for each component based on these data, and used factor analysis to identify three groups of statistics (factors) that were each internally correlated. We then interviewed software engineers about the reusability of 36 other components and used linear regression to test how well the 3 factors actually corresponded to component reusability.\u0000 We found that 2 of the 3 factors were indeed related to reusability. Specifically, the reusability of components could be predicted on the basis of component authors' prior work and the documentation provided about components. This result could be used in future work to develop enhanced search engines that highlight components which are potentially reusable and perhaps worthy of more time-consuming evaluation such as by applying formal methods. Additionally, our results reveal opportunities to improve online repositories through specific simplifications as well as enhancements.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125270194","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":"Ethics outside the box: empirical tools for an ethics of artificial agents","authors":"Peter Danielson","doi":"10.1145/2465449.2493383","DOIUrl":"https://doi.org/10.1145/2465449.2493383","url":null,"abstract":"Software introduces new kinds of agents: artificial software agents (ASA), including, for example, driverless trains and cars. To create these devices responsibility, engineers need an ethics of software agency. However, this pragmatic professional need for guidance and regulation conflicts with the weakness of moral science. We do not know much about how ethics informs interactions with artificial agents. Most importantly, we don't know how people will regard ASA as agents: their agents (strictly speaking) and also their competitive and cooperative partners. Naturally, we want to deal with these new problems with our old ethical tools, but this conservative strategy may not work, and if not, may lead to catastrophic failure to anticipate the emerging moral landscape. (Just ask the creators of genetically modified foods.)\u0000 1. This lecture will look at the box or frame of traditional ethics and some ways to use experimental data to get outside it. The lecture uses some quick and nasty clicker experiments to point us to disturbing evidence from recent cognitive moral psychology about the form and content of our ethical apparatus (Haidt 2012) and its universality (Mikhail 2007). Then we turn to some new evidence on the ethics of human-ASA interaction. We focus on three surprising features of human-ASA interaction that disturb received ethical paradigms: 1) Overactive deontology: the tendency to seek out a culprit to blame, even it it's the victim. 2) Utopian consequentialism: denying the constraints of acting in the imperfect real world by shifting to wishful perfectionism. 3) Embracing mechanical exploitation: accepting worse behavior from a program than one would accept from a person in Ultimatum Game experiments.\u0000 2. Next, we show how an experimental, cognitive and game theoretic approach to ethics can situate and explain these problems. We play some games based on policy decisions for the emerging technology of driverless cars that remind us of the strategic dimension of ethics. We also examine weak experimental evidence that engineers think differently about ethics and technology from other moral tribes or types.\u0000 3. However we argue that theory cannot solve our ethical problems. Neither ethical nor game theory has resources powerful enough to discover and hopefully to bridge our moralized divisions. For these formidable, scientific and political (respectively) tasks we need new empirical methods. We offer two examples from our current research program: 1) Anonymous input of moral and value data: clickers for face-to-face interaction. 2) Democratic scale deliberation: N-Reasons web based experimental prototype. Both of these methods challenge our research ethics, which experimental ethics shares with experimental software engineering.\u0000 As some of the data discussed in the lecture comes from the Robot Ethics survey, you will be better informed and represented if you visit http://your-views.org/D7/Robot_Ethics_Welcome. The \"class\" for the confere","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"47 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123834906","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":"Implementing generalized alternative construct for erasmus language","authors":"Nima Jafroodi, P. Grogono","doi":"10.1145/2465449.2465464","DOIUrl":"https://doi.org/10.1145/2465449.2465464","url":null,"abstract":"In this paper we describe the design and implementation of the generalized alternative construct for the Erasmus programming language. The alternative construct is a generalization of the familiar if-then-else statement that allows a process to non-deterministically choose between possible communications on several channels. Previous algorithms put restrictions on the use of the alternative construct that prevent both input/output operations to be used in an alternation. Our design removes previous restrictions on the use of the alternative construct. In order to support our design and to prove its correctness, we build models based on the ACP algebra, and we use the mCRL2 model checker to analyze and verify our models.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116358687","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":"Parameterised architectural patterns for providing cloud service fault tolerance with accurate costings","authors":"I. I. Yusuf, H. Schmidt","doi":"10.1145/2465449.2465467","DOIUrl":"https://doi.org/10.1145/2465449.2465467","url":null,"abstract":"Cloud computing presents a unique opportunity for science and engineering with benefits compared to traditional high-performance computing, especially for smaller compute jobs and entry-level users to parallel computing. However, doubts remain for production high-performance computing in the cloud, the so-called science cloud, as predictable performance, reliability and therefore costs remain elusive for many applications.\u0000 This paper uses parameterised architectural patterns to assist with fault tolerance and cost predictions for science clouds, in which a single job typically holds many virtual machines for a long time, communication can involve massive data movements, and buffered streams allow parallel processing to proceed while data transfers are still incomplete. We utilise predictive models, simulation and actual runs to estimate run times with acceptable accuracy for two of the most common architectural patterns for data-intensive scientific computing: MapReduce and Combinational Logic. Run times are fundamental to understand fee-for-service costs of clouds. These are typically charged by the hour and the number of compute nodes or cores used. We evaluate our models using realistic cloud experiments from collaborative physics research projects and show that proactive and reactive fault tolerance is manageable, predictable and composable, in principle, especially at the architectural level.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"40 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115871513","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}