Science of Computer Programming 90 (2014) 67–70
Contents lists available at ScienceDirect
Science of Computer Programming www.elsevier.com/locate/scico
Editorial
Guest editorial to the Special Issue on Component-Based Software Engineering and Software Architecture Barbora Buhnova a , Antonio Vallecillo b,∗ , Nenad Medvidovic c , Magnus Larsson d , Javier López b , Jorge Cuellar e a
Masaryk University, Czech Republic University of Málaga, Spain University of Southern California, USA d ABB, India e Siemens CT, Germany b c
h i g h l i g h t s • Introduces the Special Issue on CBSE and Software Architecture. • Presents the CompArch’12 event and its constituent conferences CBSE, QoSA, ISARCS. • Introduces the papers included in this Special Issue (best papers from CompArch’12).
a r t i c l e
i n f o
Article history: Received 13 November 2013 Accepted 14 November 2013 Available online 19 November 2013
a b s t r a c t This paper introduces the Special Issue on Component-Based Software Engineering and Software Architecture, which contains extended versions of a selection of the best papers presented at the CompArch 2012 conference, held in June 2012, in Bertinoro, Italy. © 2013 Elsevier B.V. All rights reserved.
Keywords: Component-Based Software Engineering Software Architecture Security Critical systems
1. Introduction Component-Based Software Engineering and Software Architecture are two essential disciplines for the effective, predictable and affordable development of industrial software systems. Component-Based Software Engineering (CBSE) mainly focuses on the rapid assembly of flexible software systems, using well-defined, already tested and reusable parts. CBSE combines elements of software requirements engineering, architecture, design, verification, testing, configuration and deployment. Software Architecture, in turn, focuses on the high level structures of a software system, which comprise the software elements, the relations between them, and the properties of both elements and relations. These are essential elements to design the software system and to reason about it. Although they have their own challenges and research topics, and deserve separate technological and conceptual domains, they are in fact complementary disciplines and therefore their full capabilities and benefits are truly leveraged when combined together.
*
Corresponding author. E-mail addresses: buhnova@fi.muni.cz (B. Buhnova),
[email protected] (A. Vallecillo),
[email protected] (N. Medvidovic),
[email protected] (M. Larsson),
[email protected] (J. López),
[email protected] (J. Cuellar). 0167-6423/$ – see front matter © 2013 Elsevier B.V. All rights reserved. http://dx.doi.org/10.1016/j.scico.2013.11.028
68
Editorial
With the goal of bringing together the communities working on these two disciplines, CompArch (http://www. comparch-events.org/) is the annual federated conference series which gathers researchers and practitioners from Component-Based Software Engineering and Software Architecture. Formally held for the first time in 2007, it started as an umbrella conference for the Quality of Software Architectures (QoSA), then in its third edition, and the International ACM SigSoft Symposium on Component Based Software Engineering (CBSE), in its tenth edition. Each year CompArch seeks to join with collocated events of similar interests, let they be workshops, symposia, or stand-alone conferences. CompArch 2012 was held in June 25–28, 2012, in Bertinoro, Italy, with three main conferences (CBSE, QoSA and ISARCS), one doctoral Symposium (WCOP), and one workshop (ROSS). In the first place, CompArch featured the 15th ACM SigSoft International Symposium on Component-Based Software Engineering (CBSE 2012), chaired by Nenad Medvidovic (USC, USA) and Magnus Larsson (ABB, India). CBSE has emerged as the flagship research event for the component community. It has an established track record of bringing together researchers and practitioners from a variety of disciplines to promote a better understanding of CBSE from diverse perspectives, and to engage in active discussion and debate. CBSE encompasses research (both theoretical and applied) that extends the state-of-the-art in component specification, composition, analysis, testing, and verification, and included experience reports, empirical studies and presentation of component-based benchmarks and case studies are also within scope. In addition to commonplace software components, CBSE also covers new trends in global services, distributed systems architectures, dynamically adaptable systems, and large-scale software systems, which often cross organizational boundaries and push the limits of established component-based methods, tools and platforms. Innovative solutions from diverse paradigms (e.g., service-, aspect-, and agent-oriented) are needed to address these emerging trends. Every year CBSE features a special theme, and in 2012 it was “Components for Achieving Long-Lived Systems”. Many industrial systems have very strict requirements for uninterrupted operation. There are examples of systems that have aimed to provide continuous operation for more than 15 years. Such requirements place significant demands on the underlying architecture, mandating that the architecture be very well understood and carefully designed. In turn, the architecture—if implemented correctly—forms a foundation for achieving critical quality attributes such as dependability, robustness, usability, and flexibility. The principles of component-based software engineering offer a promise for achieving effective architectures for long-lived systems. This is especially so since this approach natively provides the ability to add, remove, replace, and/or modify components during operation. A related class of approaches deals with self-management in component-based systems in order to ensure continuous operation. Under these circumstances, the conference especially solicited research and experience that highlights the applicability and value of CBSE for achieving long-lived systems. CompArch also included the 8th ACM SigSoft International Conference on Quality of Software Architecture (QoSA 2012), chaired by Barbora Bühnová (Masaryk University, Czech Republic) and Antonio Vallecillo (University of Málaga, Spain). The goal of QoSA (Quality of Software Architectures) is to address the quality aspects of software architecture, focusing broadly on its quality characteristics and how these relate to the design of software architectures. Specific issues of interest are defining and modeling quality measures, evaluating and managing architecture quality, linking architecture to requirements and implementation, and preserving architecture quality throughout the system lifetime. QoSA has become the premier forum for the presentation of new results in the area of software architecture quality. It brings together researchers, practitioners and students who are concerned with software architecture quality in a holistic way. As a working conference QoSA has a strong practical bias, encompassing research papers, industrial reports and invited talks from renowned speakers. One of the main motivations for explicitly modelling software architectures is to enable reasoning on software quality. From a software engineering perspective, a software architecture not only depicts the coarse-grained structure of a program, but also includes additional information such as the program’s dynamics (i.e., the flows of control through the system) and the mapping of its components and connections to execution environments (such as hardware processors, virtual machines, network connections, and the like). In this area, QoSA is concerned with research and experiences that investigate the influence a specific software architecture has on software quality aspects. Additionally, the development of methods to evaluate software architectures with respect to these quality attributes is considered to be an important topic. The quality attributes of interest include external properties, such as reliability and efficiency, as well as internal properties, such as maintainability. The main theme of QoSA 2012 was “Evolving Architectures”. Papers addressing both novel research results advancing the state-of-the-art of the field and experience learned from industrial case studies are welcome. Reflecting the practical emphasis of QoSA, papers showcasing applications along with a sound conceptual contribution are particularly welcome. In addition to mature research papers this year we also welcome position papers presenting ground-breaking and more risky innovative research ideas, methods, and proposals that address unexplored areas of research and challenge current thinking and/or practices. The third main conference under the CompArch umbrella was the Third ACM SigSoft International Symposium on Architecting Critical Systems (ISARCS 2012), chaired by Javier López (University of Málaga, Spain) and Jorge Cuellar (Siemens CT, Germany). The ISARCS symposium was born as the union of the previous Workshop on Architecting Dependable Systems (WADS), the Workshop on the Role of Software Architecture for Testing and Analysis (ROSATEA), and the Workshop on Views On Designing Complex Architectures (VODCA). Modern software systems increasingly run in and interact with an open environment. This characteristic pushes forward the boundaries of critical system beyond the traditional class of critical applications. Architecting critical systems is then
Editorial
69
getting more and more importance in every application domain. The dependability and security of these systems must persist when facing both predictable and unpredictable changes. This calls for effective methods, techniques and tools for developing, designing, maintaining, and upgrading critical systems. The aim of ISARCS is to bring together different communities in order to create a forum in which the different expertise collaborate in providing a comprehensive view on how to design, develop, maintain and evolve critical systems from the architectural perspective. Architecting critical systems has the big challenge to guarantee both the perceived and objective dependability and security even accepting service degradation. This requires trade-off among the various attributes of dependability and security that cannot be considered in isolation. In the frame of the CompArch 2012 conference, the Doctoral Symposium on Components and Architecture (WCOP) is organized for young researchers in the area of component based software engineering, software architecture and software quality. In its 17th edition, the doctoral symposium is aimed to give feedback from established researchers to promising new ideas in the field of component based software engineering, software architecture and software quality to young researchers in all phases of their PhD career. Finally, the Workshop on Reusing Open-Source Software Components (ROSS) was also held at CompArch2012, with the aim of bringing researchers and industrial experts to present and discuss the issues related to reuse of open-source components from technical, process, organizational, legal, and business point of view, and with particular interest in potentials for Small and Medium Enterprises (SMEs). The quality of the papers, the excellence of the event, and the strong industrial bias have always been the drivers of CompArch. This is why the maturity and potential impact of the papers featured by its constituent conferences encouraged the Program Chairs of QoSA 2012, CBSE 2012 and ISARCS 2012 to propose a journal special issue with the best papers of the three conferences, according to the feedback of the reviewers and to their impact in the audience during the presentations. Consequently, once the conference was over the chairs invited seven papers to submit extended versions of their conference papers for this special issue in the Science of Computer Programming journal. The papers presented in this special issue are the result of this effort. The included papers not only indicate the current breadth, depth and maturity of research and applications related to architecting component-based systems, but also provide an overview of some of the current open issues and identify potential lines for further research. 2. Selected papers for this special issue After the initial invitation all selected papers underwent a thorough peer review process, with at least two rounds of reviews. Following the journal guidelines and requirements, all submitted papers were refereed by at least three well-known experts in the field, which in our case included Steffan Becker, Jan Carlson, Ivica Crnkovic, Joshua Garcia, Lucia Happe, Ivo Krka, Antinisca di Marco, Indika Meedeniya, Francisco Moyano, Richard Paige, Tomas Pitner, Marek Prochazka, Cecília Rubira, Antonino Sabetta, Jean-Guy Schneider, Clemens Szyperski, Bedir Tekinerdogan and Yongjie Zheng. At the end of the review process, five papers were selected for this Special Issue: – “Semi-automated architectural abstraction specifications for supporting software evolution”, by Thomas Haitzer and Uwe Zdun, introduces an approach for supporting the semi-automated architectural abstraction of architectural models throughout the software lifecycle. It addresses the problem that the design and implementation of a software system often drift apart as software systems evolve, leading to architectural knowledge evaporation. Our approach provides concepts, a Domain-Specific Language and tool support for the semi-automatic abstraction of architecture component and connector views from implemented systems and keeping the abstracted architecture models up-to-date during software evolution. – “Metrics and techniques for quantifying performance isolation in cloud environments”, by Rouven Krebs, Christof Momm and Samuel Kounev, highlight that the sharing of resources in the cloud normally leads to possible interference between users and performance problems are one of the major obstacles for potential cloud customers. Consequently, it is one of the primary goals of cloud service providers to have different customers and their hosted applications isolated as much as possible in terms of the performance they observe. To make different offerings, comparable with regards to their performance isolation capabilities, a representative metric is needed to quantify the level of performance isolation in cloud environments. Such a metric should allow to measure externally by running benchmarks from the outside treating the cloud as a black box. In their article, the authors propose three different types of novel metrics for quantifying the performance isolation of cloud-based systems, and consider four new approaches to achieve performance isolation in Software-as-a-Service (SaaS) offerings and evaluate them based on the proposed metrics as part of a simulation-based case study. – “Architecture-level software performance abstractions for online performance prediction” by Fabian Brosig, Nikolaus Huber and Samuel Kounev, addresses one of the problems of modern service-oriented enterprise systems, which have increasingly complex and dynamic loosely-coupled architectures that often exhibit poor performance and resource efficiency and have high operating costs. This is normally due to the inability to predict at run-time the effect of workload changes on performance-relevant application-level dependencies and to adapt the system configuration accordingly. In this paper, the authors analyse typical online performance prediction scenarios and propose a performance meta-model
70
Editorial
for expressing and resolving parameter and context dependencies, for modelling service abstractions at different levels of granularity and for modelling the deployment of software components in complex resource landscapes. – “Learning from the future of component repositories”, by Pietro Abate, Roberto Di Cosmo, Ralf Treinen and Stefano Zacchiroli, deals with the problem of ensuring the logical coherence of component metadata in component repositories. Some relevant classes of incoherencies can be formulated in terms of properties of the future repositories into which the current repository may evolve. An approach to construct a finite representation of the infinite set of all potential futures for a class of properties is presented in this paper, and validated in two quality assurance applications. – “Employing early model-based safety evaluation to iteratively derive E/E∼architecture design” by Vladimir Rupanov, Christian Buckl, Ludger Fiege, Michael Armbruster, Gernot Spiegelberg and Alois Knoll, presents and discusses an iterative architecture design and refinement process centred around ISO 26262 requirements and model-based analysis of safety-related metrics. This process simplifies identification of the most sensitive parts of the architecture, selection of the best suitable safety mechanisms to reduce thereby failure rate on the system level and improve the metrics defined by the standard. This process is supported by a framework for architecture model analysis and selection of safety mechanisms, and a model-based toolset, and has been validated by applying it to the analysis of a steer-by-wire system model and the selection of safety mechanisms for it. These papers contribute in different aspects to the field of Component-based Software Engineering, and Software Architecture, providing a deeper understanding of some of the issues that practitioners face when designing and developing non-trivial and critical applications, and present novel approaches, techniques and tools for dealing with these issues. Acknowledgements First, we would like to thank the authors of the papers of this special issue for accepting our invitation to present their contributions here. Our gratitude also goes to the reviewers for the timely manner in which they assisted in choosing and making suggestions to improve the selected papers, and for their helpful and insightful comments. We are aware of all the time and effort involved in producing such constructive reports, and in helping authors improve their papers. Finally, we would like to show our appreciation to the Science of Computer Programming editorial office, and in particular to Mark van den Brand, Bas van Vlijmen and Jan Bergstra, for agreeing to organize this special issue and for their excellent support during its preparation.