H. Muccini, K. Harper, R. Heinrich, J. Bosch, N. Plouzeau, O. Zimmermann, L. Baresi, V. Cortellessa
{"title":"Welcome Message from the Chairs of WICSA, QoSA and CBSE","authors":"H. Muccini, K. Harper, R. Heinrich, J. Bosch, N. Plouzeau, O. Zimmermann, L. Baresi, V. Cortellessa","doi":"10.1109/CBSE.2016.4","DOIUrl":"https://doi.org/10.1109/CBSE.2016.4","url":null,"abstract":"Welcome to the WICSA, QoSA, and CBSE 2016 conferences. While we had separate calls for papers, separate chairs and review processes for each conference, we had a unified, stronger community with a joint program committee. Even though the proceedings separate the papers in distinct chapters for each conference, there is a single conference program designed jointly by the program chairs of the three conferences. More precisely, papers accepted separately by the WICSA 2016, QoSA 2016, and CBSE 2016 conferences will be presented together in shared sessions. Hence, this year’s event is a great opportunity to bring together the researchers from the WICSA, QoSA and CBSE conference series. This year, WICSA, QoSA and CBSE calls for papers have attracted 149 submissions in total. Papers submitted to either WICSA, QoSA or CBSE were evaluated separately for each conference. After a careful evaluation by at least three reviewers and a following discussion period, 30 papers were accepted from WICSA, 12 from QoSA and 14 from CBSE. During the technical sessions, conference attendees will have the opportunity to listen to 56 presentations in 18 shared sessions. Some of these sessions will be working sessions with time slots dedicated to extended open discussions. In their calls for papers WICSA, QoSA, and CBSE addressed key concerns of software architectures across the system life cycle, such as designing for longevity, designing for reliability, and designing for flexibility. When we allocated the accepted papers to presentations sessions, it became evident that these concerns were shared by the three conferences. Hence the sessions were assembled to focus on these concerns.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"112 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-04-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124771948","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}
Yushi Kuroda, I. Yamasaki, Shigekuni Kondo, Yukihisa Katayama, O. Mizuno
{"title":"A memory isolation method for OSGi-based home gateways","authors":"Yushi Kuroda, I. Yamasaki, Shigekuni Kondo, Yukihisa Katayama, O. Mizuno","doi":"10.1145/2602458.2602461","DOIUrl":"https://doi.org/10.1145/2602458.2602461","url":null,"abstract":"This paper proposes a new memory isolation method for OSGi-based home gateways. The OSGi technology enables embedded gateway devices for smart home services to run multiple software components; \"bundles\" in OSGi. In OSGi-based smart home platforms, third party service providers' bundles share the limited memory resources of the Java Virtual Machine. If a faulty bundle that is malicious or buggy consumes excessive memory, the platform and other healthy bundles will freeze. To address this issue, we propose a new method that can isolate the memory consumption of bundles without the need to modify bundles or the OSGi framework and has minimal overhead costs. We start by defining the memory consumption of bundles from the new viewpoint of application level \"function\" for an OSGi-based smart home platform.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"3 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":"122211186","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":"Rigorous component-based design in BIP: half-day tutorial","authors":"S. Bliudze","doi":"10.1145/2602458.2611457","DOIUrl":"https://doi.org/10.1145/2602458.2611457","url":null,"abstract":"This tutorial presents the BIP component-based design and analysis framework, primarily focusing on the control software for (real-time) embedded systems. We provide the participants with an overview of the research and some practical hands-on experience of application design in BIP. After a short motivation, we discuss the BIP component model, then move directly to the demonstration of the BIP language, design process, code generation and simulation.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"36 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":"121731790","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":"Design-by-contract for reusable components and realizable architectures","authors":"M. Ozkaya, C. Kloukinas","doi":"10.1145/2602458.2602463","DOIUrl":"https://doi.org/10.1145/2602458.2602463","url":null,"abstract":"Architectural connectors can increase the modularity and reusability benefits of Component-based Software Engineering, as they allow one to specify the general case of an interaction pattern and reuse it from then on. At the same time they enable components to be protocol-independent - components do not need to know under which interaction patterns they will be used, as long as their minimal, local interaction constraints are satisfied. Without connectors one can specify only specific instances of such patterns and components need to specify themselves the interaction protocols that they will follow, thus reducing their reusability.\u0000 Connector frameworks so far allow designers to specify systems that are unrealizable in a decentralized manner, as they allow designers to impose global interaction constraints. These frameworks either ignore the realizability problem altogether, ignore connector behaviour when generating code, or introduce a centralized controller that enforces these global constraints but does so at the price of invalidating any decentralized properties of the architecture.\u0000 We show how the Xcd ADL extends Design-by-Contract (DbC) for specifying (i) protocol-independent components, and (ii) arbitrary connectors that are always realizable in a decentralized manner as specified by an architecture - Xcd connectors impose local constraints only. Use of DbC will hopefully make it easier for practitioners to use the language, compared to languages using process algebras. We show how Xcd specifications can be translated to ProMeLa so as to verify that (i) provided services local interaction constraints are satisfied, (ii) provided services functional pre-conditions are complete, (iii) there are no race-conditions, (iv) event buffer sizes suffice, and (v) there is no global deadlock. Without formally analyzable architectures errors can remain undiscovered for a long time and cost too much to repair.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"28 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":"131323093","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 new approach to detect potential race conditions in component-based systems","authors":"Jean-Yves Didier, M. Mallem","doi":"10.1145/2602458.2602470","DOIUrl":"https://doi.org/10.1145/2602458.2602470","url":null,"abstract":"When programming software applications, developers have to deal with many functional and non-functional requirements. During the last decade, especially in the augmented reality field of research, many frameworks have been developed using a component-based approach in order to fulfil the non-functional requirements. In this paper, we focus on such a specific requirement: race conditions issues in component-based systems. We present a heuristic that analyses data flows and detects components that may be subject to race conditions. A toy example introducing the problem and the solution is developed and implemented under the ARCS (for Augmented Reality Component System) framework. We also show the results of our algorithm on real size applications using up to 70 components and compare those results with some obtained by developers who had to make exactly the same work by hand.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"127 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":"123911804","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":"Injecting quality attributes into software architectures with the common variability language","authors":"J. Horcas, M. Pinto, L. Fuentes","doi":"10.1145/2602458.2602460","DOIUrl":"https://doi.org/10.1145/2602458.2602460","url":null,"abstract":"Quality attributes that add new behavior to the functional software architecture are known as functional quality attributes (FQAs). These FQAs are applied to pieces of software from small components to entire systems, usually crosscutting some of them. Due to this crosscutting nature, modeling them separately from the base application has many advantages (e.g. reusability, less coupled architectures). However, different applications may require different configurations of an FQA (e.g. different levels of security), so we need a language that: (i) easily expresses the variability of the FQAs at the architectural level; and that (ii) also facilitates the automatic generation of architectural configurations with custom-made FQAs. In this sense, the Common Variability Language (CVL) is extremely suited for use at the architectural level, not requiring the use of a particular architectural language to model base functional requirements. In this paper we propose a method based on CVL to: (i) model separately and generate FQAs customized to the application requirements; (ii) automatically inject customized FQA components into the architecture of the applications. We quantitatively evaluate our approach and discuss its benefits with a case study.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"11 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":"122204823","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":"Quantifying the parallelism in BPMN processes using model checking","authors":"Radu Mateescu, Gwen Salaün, Lina Ye","doi":"10.1145/2602458.2602473","DOIUrl":"https://doi.org/10.1145/2602458.2602473","url":null,"abstract":"A business process is a set of structured, related activities that aims at fulfilling a specific organizational goal for a customer or market. An important metric when developing a business process is its degree of parallelism, i.e., the maximum number of tasks that are executable in parallel in that process. The degree of parallelism determines the peak demand on tasks, providing a valuable guide for the problem of resource allocation in business processes. In this paper, we investigate how to automatically measure the degree of parallelism for business processes, described using the BPMN standard notation. We first present a formal model for BPMN processes in terms of Labelled Transition Systems, which are obtained through process algebra encodings. We then propose an approach for automatically computing the degree of parallelism by using model checking techniques and dichotomic search. We implemented a tool for automating this check and we applied it successfully to more than one hundred BPMN processes.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"13 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":"127740607","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}
J. Buisson, Everton Cavalcante, F. Dagnat, E. Leroux, Sebastien Martinez
{"title":"Coqcots & pycots: non-stopping components for safe dynamic reconfiguration","authors":"J. Buisson, Everton Cavalcante, F. Dagnat, E. Leroux, Sebastien Martinez","doi":"10.1145/2602458.2602459","DOIUrl":"https://doi.org/10.1145/2602458.2602459","url":null,"abstract":"Software systems have to face evolutions of their running context and users. Therefore, the so-called dynamic reconfiguration has been commonly adopted for modifying some components and/or the architecture at runtime. Traditional approaches typically stop the needed components, apply the changes, and restart the components. However, this scheme is not suitable for critical systems and degrades user experience. This paper proposes to switch from the stop/restart scheme to dynamic software updating (DSU) techniques. Instead of stopping a component, its implementation is replaced by another one specifically built to apply the modifications while maintaining the best quality of service possible. The major contributions of this work are: (i) the integration of DSU techniques in a component model, and; (ii) a reconfiguration development process including specification, proof of correctness using Coq, and a systematic method to produce the executable script. In this perspective, the use of DSU techniques brings higher quality of service when reconfiguring component-based software and the formalization allows ensuring the safety and consistency of the reconfiguration process.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"47 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":"132278526","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}
Qais Noorshams, Roland Reeb, A. Rentschler, Samuel Kounev, Ralf H. Reussner
{"title":"Enriching software architecture models with statistical models for performance prediction in modern storage environments","authors":"Qais Noorshams, Roland Reeb, A. Rentschler, Samuel Kounev, Ralf H. Reussner","doi":"10.1145/2602458.2602475","DOIUrl":"https://doi.org/10.1145/2602458.2602475","url":null,"abstract":"Model-based performance prediction approaches on the software architecture-level provide a powerful tool for capacity planning due to their high abstraction level. To process the increasing amount of data produced by today's applications, modern storage systems are becoming increasingly complex having multiple tiers and intricate optimization strategies. Current software architecture-level modeling approaches, however, struggle to account for this development and are not well-suited in complex storage environments due to overly simplistic storage assumptions, which consequently leads to inaccurate performance predictions. To address this problem, in this paper we present a novel approach to combine software architecture-level performance models with statistical models that capture the complex behavior of modern storage systems. More specifically, we first propose a general methodology for enriching software architecture modeling approaches with statistical I/O performance models. Then, we present how we realize the modeling concepts as well as model solving to obtain performance results. Finally, we evaluate our approach extensively in the context of three case studies with two state-of-the-art environments based on Sun Fire and IBM System z server hardware. Using our approach, we are able to successfully predict the application performance within 20 % prediction error in almost all cases.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"5 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":"132049243","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":"Development of smart cyber-physical systems","authors":"T. Bures","doi":"10.1145/2602458.2611458","DOIUrl":"https://doi.org/10.1145/2602458.2611458","url":null,"abstract":"The recent increase in the ubiquity and connectivity of computing devices allows forming large-scale distributed systems that respond to and influence activities in the real world (typically called smart Cyber-Physical Systems -- sCPS). Examples of such systems include intelligent vehicle navigation, autonomous operation of smart buildings and civil infrastructure, emergency coordination in case of disaster, and even interactive distributed games. Engineering sCPS is typically very challenging because of their inherent dynamicity, open-endedness, autonomicity, and close relation to the real world. The goal of this tutorial is to acquaint the participants with the challenges of engineering sCPS and to explain and demonstrate a novel approach based on autonomic component ensembles that provides means (methods and tools) for relatively seamless design and development of sCPS.","PeriodicalId":399536,"journal":{"name":"International Symposium on Component-Based Software Engineering","volume":"76 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":"132232606","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}