Elsevier

Journal of Systems and Software

Volume 111, January 2016, Pages 128-148
Journal of Systems and Software

Twenty-eight years of component-based software engineering

https://doi.org/10.1016/j.jss.2015.09.019Get rights and content

Highlights

  • We defined more precisely the identification of the gaps.

  • We also defined more precisely the incentives for further research.

  • In Section 4.3 we made explicit connection to the Fig. 15 and identified gaps.

  • All pointed typos were fixed.

Abstract

The idea of developing software components was envisioned more than forty years ago. In the past two decades, Component-Based Software Engineering (CBSE) has emerged as a distinguishable approach in software engineering, and it has attracted the attention of many researchers, which has led to many results being published in the research literature. There is a huge amount of knowledge encapsulated in conferences and journals targeting this area, but a systematic analysis of that knowledge is missing. For this reason, we aim to investigate the state-of-the-art of the CBSE area through a detailed literature review. To do this, 1231 studies dating from 1984 to 2012 were analyzed. Using the available evidence, this paper addresses five dimensions of CBSE: main objectives, research topics, application domains, research intensity and applied research methods. The main objectives found were to increase productivity, save costs and improve quality. The most addressed application domains are homogeneously divided between commercial-off-the-shelf (COTS), distributed and embedded systems. Intensity of research showed a considerable increase in the last fourteen years. In addition to the analysis, this paper also synthesizes the available evidence, identifies open issues and points out areas that call for further research.

Introduction

Component-Based Software Engineering (CBSE) promotes the development of software systems through construction from existing software components, the development of components as reusable entities, and system evolution realization by the customization and replacement of components (Szyperski, 2002). The CBSE idea is not new. It was envisioned more than forty years ago by McIlroy (1968) who provided an idea of commercial component production similar to that found in other engineering fields. However, most of the research work on CBSE has emerged in the last two decades. The motivations behind CBSE have been of a business and technical nature, i.e. increased efficiency and effectiveness, lower costs, and shorter time-to-market on one side, and improved quality with regards to fewer errors, improved performance, maintainability, portability, etc. on the other side. However, for many of these claims there is no proper evidence. Furthermore, after many years of development, the question arises whether the research in this field has fulfilled its goals, or if there are still important issues that require further research. Regarding these years of development in the CBSE research field, Schneider and Han (2004) argue that a literature review on CBSE is important in order to investigate the state-of-the-art, pointing out research topics which researchers and practitioners should investigate.

In this context, we present a systematic mapping study (Kitchenham, Charters, 2007, Petersen, Feldt, Mujtaba, Mattsson, 2008) performed to map out the CBSE area in the period 1984–2012. The goal is to synthesize evidence of contributions from academic publications. We identify the existing research trends, open issues, and areas for further improvement.

The remainder of this paper is organized as follows: Next, Section 2 describes the mapping process undertaken in this study. Sections 3 and 4 present data analysis and synthesis results. Section 5 considers the threats to the validity of this research, and Section 6 presents the related work. Finally, Section 7 presents a summary of the work and directions for future research.

Section snippets

Systematic mapping study method

The review method is based on guidelines for performing systematic mapping studies Petersen et al. (2008) and systematic literature reviews Kitchenham and Charters (2007). We adopted the mapping process defined in Petersen et al. (2008), as illustrated in Fig. 1.

The definition of research questions reflects the goal of this study. CBSE papers are identified by following search procedures, and the screening of these papers is the primary focus of this study. Furthermore, keywording using

Data analysis and synthesis

In this section, we present the answers to the research questions by analyzing and synthesizing the data extraction results. In order to better understand the results, we grouped them according to each research question. Given space constraints, the primary studies cited in this section are represented by an ID (e.g. P145, P233), and further information about them is on the web6. A list of the the cited

Gap analysis and topics for further research

The analysis of the primary studies showed the characteristics and their evolution through more than two decades. Here we analyze combinations of the results from the stated questions and investigate whether these combinations can indicate possible missing links in the research. Based on these results we identify possible future steps in CBSE research.

Fig. 15 summarizes the results from the three research questions posed in this mapping study: research topics (classified according to Table 4:

Threats to validity

In empirical software engineering, validity threats are categorized under four distinct concerns Petersen et al. (2008); Perry et al. (2000):

  • Construct validity relates to the collected data and how well the data represent the investigated phenomenon.

  • Internal validity concerns the connection between the observed behavior and the proposed explanation for the behavior, i.e., it is about ensuring that the actual conclusions are true.

  • External validity concerns the possibility of generalizing the

Related work

The literature on CBSE provides a large number of studies, regarding both general and specific issues. Amongst them, we have identified some works developed to gather and evaluate available evidence in the area. They are thus considered to have similar ideas to our mapping study and are described below.

Brown and Wallnau (1998) present a report about some discussion points from a workshop on Component-Based Software Engineering (CBSE), providing a useful synthesis of participants’ diverse

Concluding remarks

In this paper, we performed a literature review to investigate the state- of-the-art in the CBSE area. As the result of a manual search, 1396 primary studies were identified, of which 1231 were considered relevant as primary studies. Five aspects of these studies were analyzed: main objectives, research topics, application domains, research intensity and research types and methods.

Increasing productivity, cost savings and increasing quality are the most frequently mentioned CBSE objectives. In

Acknowledgment

This work was partially supported by the National Institute of Science and Technology for Software Engineering (INES9), funded by CNPq and FACEPE, grants 573964/2008-4 and APQ-1037-1.03/08, by the project RALF3, funded by the Swedish Foundation for Strategic Research, and project ORION funded by The Knowledge Foundation, Sweden. We would also like to thank Josip Maras who automated collection of some data.

Tassio Ferreira Vale is an assistant professor at Federal University of Recôncavo da Bahia, a graduate of computer science from Universidade Salvador (UNIFACS) in 2009, received his M.Sc. degree in Computer Science from Federal University of Pernambuco in 2012, and is currently a PhD candidate in Computer Science at Federal University of Bahia. He is an IT consultant, lecturer and software development freelancer. In addition, he is member of the Reuse in Software Engineering Research (RiSE)

References (25)

  • BrownA.W. et al.

    The current state of cbse

    IEEE Softw.

    (1998)
  • AlmeidaE.S. et al.

    C.R.U.I.S.E: Component Reuse in Software Engineering

    C.E.S.A.R e-book

    (2007)
  • BoschJ.

    Architecture-centric software engineering

    Proceedings of the 24th International Conference on Software Engineering, ICSE ’02

    (2002)
  • BreretonP. et al.

    Lessons from applying the systematic literature review process within the software engineering domain

    J. Syst. Softw.

    (2007)
  • CrnkovicI.

    Component-based software engineering - new challenges in software development

    Softw. Focus

    (2001)
  • CrnkovicI. et al.

    Building Reliable Component-Based Software Systems

    (2002)
  • CrnkovicI. et al.

    A classification framework for software component models

    IEEE Trans. Softw. Eng.

    (2011)
  • CrnkovicI. et al.

    Software components beyond programming: from routines to services, Software

    IEEE

    (2011)
  • HeinemanG.T. et al.

    Component-based software engineering: putting the pieces together

    (2001)
  • JorgensenM. et al.

    A systematic review of software development cost estimation studies

    IEEE Trans. Softw. Eng.

    (2007)
  • KitchenhamB. et al.

    Guidelines for performing systematic literature reviews in software engineering

    (2007)
  • LauK.K. et al.

    A software component model and its preliminary formalisation

    Proceedings of the 4th International Conference on Formal Methods for Components and Objects, FMCO’05

    (2006)
  • Cited by (0)

    Tassio Ferreira Vale is an assistant professor at Federal University of Recôncavo da Bahia, a graduate of computer science from Universidade Salvador (UNIFACS) in 2009, received his M.Sc. degree in Computer Science from Federal University of Pernambuco in 2012, and is currently a PhD candidate in Computer Science at Federal University of Bahia. He is an IT consultant, lecturer and software development freelancer. In addition, he is member of the Reuse in Software Engineering Research (RiSE) group and Fraunhofer Project Center (FPC) Brazil. His primary interest is software engineering, with an emphasis on software product lines traceability, component-based software engineering and software reuse.

    Ivica Crnkovic is a professor of industrial software engineering at Mälardalen University where he is the scientific leader of the industrial software engineering research. His research interests include component-based software engineering, software architecture, software configuration management, software development environments and tools, and software engineering in general. Professor Crnkovic is the author of more than 150 refereed articles and papers on software engineering topics and a co-author and co-editor of two books: “Building reliable component-based Systems” and “Implementing and integrating Product Data Management and Software Configuration Management”. He has co-organized several conferences and other events related to software engineering (such as ESEC/FSE, ASE, ECSA, Euromicro SEAA conferences, CompArch/WICSA federated conferences, etc. ), and participated in Program Committees major software engineering conferences. His teaching activities cover several courses in the area of Software Engineering undergraduate and graduate courses.

    Eduardo Santana de Almeida is an assistant professor at Federal University of Bahia and head of the Reuse in Software Engineering Labs. He has more than 100 papers published in the main conferences and journals related to software engineering, and has chaired several national and international conferences and workshops. His research interests include methods, processes, tools, and metrics to develop reusable software. Contact him at [email protected].

    Paulo Anselmo da Mota Silveira Neto has a Bachelor of Computer Science degree from Catholic University of Pernambuco (UNICAP), specialist in software engineering from University of Pernambuco (UPE), Master of Science degree in computer science (software engineering) from Federal University of Pernambuco (UFPE). Nowadays, he is a PhD candidate in computer science at Federal University of Pernambuco and member of the RiSE group, which has executed research regarding to Software Product Lines (SPL) Testing, SPL Architecture Evaluation, Test Selection Techniques, and Regression Testing. He is also participating on important research projects in software engineering area, as the National Institute of Science and Technology for Software Engineering (I.N.E.S.).

    Yguarat Cerqueira Cavalcanti is a graduate of computer science from Federal University of Alagoas in 2007, received his MS degree in Computer Science from Federal University of Pernambuco in 2009, and PhD in Computer Science at Federal University of Pernambuco. He is a system development analyst at the Brazilian Federal Organization for Data Processing (SERPRO). He is member of the Reuse in Software Engineering Research (RiSE) group, ACM, and Institute of Electrical and Electronics Engineers Computer Society. His primary interest is software engineering, with an emphasis on software maintenance and reuse.

    Silvio Romero de Lemos Meira has a degree in electronic engineering from the Instituto Tecnológico de Aeronáutica (1977), Masters in Computer Science from Universidade Federal de Pernambuco (1981), and PhD in computer science at University of Kent at Canterbury (1985). He is currently a professor at Universidade Federal de Pernambuco. He has experience in computer science, with emphasis on software engineering, working on the following topics: software reuse, information systems, open source, social networking, performance, and quality metrics in software engineering.

    View full text