Software component models: past, present and future

In the early years of the CBSE Symposium, much research was focused on identifying the desiderata of CBSE and developing different approaches to CBSE. However, a common framework for defining and analysing CBSE approaches with respect to these desiderata was only introduced later: this was provided by the notion of component models. Every CBSE approach is underpinned by a component model, and therefore the study of component models, in particular how to define ones that can potentially meet the desiderata of CBSE, is pivotal to the success of CBSE. We have surveyed and studied existing CBSE approaches and their corresponding component models, and as a result we have: (i) shown that early approaches/models do not fully meet the CBSE desiderata; (ii) identified criteria for designing component models that can better meet the CBSE desiderata; (iii) defined a new component model according to (ii); (iv) defined a taxonomy of existing component models based on the desiderata. In addition to the classic desiderata, nowadays CBSE has to address new challenges posed by an unprecedented increase in the scale and complexity of software applications, in particular safety-critical ones. As a result, there are new CBSE desiderata for which we need to define new models. In this tutorial, we will: (i) present a taxonomy of existing component models, both old and new; (ii) discuss how well they meet the classic desiderata; (iii) discuss criteria that new models must meet in order to address future CBSE challenges. The CBSE Symposium celebrated its fifteenth anniversary in 2012. For the next 15 years, the study of component models will continue to play a pivotal role in future CBSE success. This tutorial aims to contribute to this effort.

[1]  Peng Liang,et al.  PECOS in a Nutshell , 2002 .

[2]  Ian Sommerville,et al.  Towards a classification model for component-based software engineering research , 2003, 2003 Proceedings 29th Euromicro Conference.

[3]  Steffen Becker,et al.  The palladio component model , 2010, WOSP/SIPEW '10.

[4]  Manfred Broy,et al.  What characterizes a (software) component? , 1998, Softw. Concepts Tools.

[5]  Don Box,et al.  Programming Distributed Applications with Com+ and Microsoft Visual Basic 6.0, Second Edition , 2000 .

[6]  Ivica Crnkovic,et al.  Building Reliable Component-Based Software Systems , 2002 .

[7]  Thierry Coupaye,et al.  An Open Component Model and Its Support in Java , 2004, CBSE.

[8]  Petr Hnetynka,et al.  SOFA 2.0: Balancing Advanced Features in a Hierarchical Component Model , 2006, Fourth International Conference on Software Engineering Research, Management and Applications (SERA'06).

[9]  David Notkin,et al.  Component-Oriented Programming in ArchJava , 2001 .

[10]  Séverine Sentilles,et al.  A Classification Framework for Software Component Models , 2011, IEEE Transactions on Software Engineering.

[11]  Fintan Bolton Pure CORBA , 2001 .

[12]  Kung-Kiu Lau,et al.  The W Model for Component-Based Software Development , 2011, 2011 37th EUROMICRO Conference on Software Engineering and Advanced Applications.

[13]  Steve Counsell,et al.  2009 35th Euromicro Conference on Software Engineering and Advanced Applications , 2009 .

[14]  David S. Platt,et al.  Introducing Microsoft® .NET , 2001 .

[15]  K. Kaur,et al.  Candidate Process Models for Component Based Software Development , 2010 .

[16]  Daniel Kroening,et al.  Component-based Design and Verification in X-MAN , 2012 .

[17]  Murali Sitaraman,et al.  Foundations of component-based systems , 2000 .

[18]  Kung-Kiu Lau,et al.  Software Component Models , 2006, IEEE Transactions on Software Engineering.

[19]  Frantisek Plasil,et al.  SOFA/DCUP: architecture for component trading and dynamic updating , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

[20]  Graham Jolliffe Cost-Efficient Methods and Processes for Safety Relevant Embedded Systems (CESAR) - An Objective Overview , 2010, SSS.

[21]  Barbara Paech,et al.  Component-based product line engineering with UML , 2001, Addison Wesley object technology series.

[22]  Debayan Bose Component Based Development , 2010, ArXiv.

[23]  Kung-Kiu Lau,et al.  X-MAN: An MDE Tool for Component-Based System Development , 2012, 2012 38th Euromicro Conference on Software Engineering and Advanced Applications.

[24]  Kung-Kiu Lau,et al.  Exogenous connectors for software components , 2005, CBSE'05.

[25]  David Garlan,et al.  Acme: architectural description of component-based systems , 2000 .

[26]  Ivica Crnkovic,et al.  Component-based development process and component lifecycle , 2005, 27th International Conference on Information Technology Interfaces, 2005..

[27]  Marcelin Fortes da Cruz,et al.  AMBERS: Improving Requirements Specification Through Assertive Models and SCADE/DOORS Integration , 2007, SSS.

[28]  Richard Monson-Haefel,et al.  Enterprise JavaBeans , 1999, Java series.

[29]  Douglas K. Barry Web Services, Service-Oriented Architectures, and Cloud Computing, Second Edition: The Savvy Manager's Guide , 2013 .

[30]  George T. Heineman,et al.  Component-Based Software Engineering: Putting the Pieces Together , 2001 .

[31]  Kung-Kiu Lau,et al.  A Taxonomy of Software Composition Mechanisms , 2010, 2010 36th EUROMICRO Conference on Software Engineering and Advanced Applications.

[32]  Jeff Magee,et al.  The Koala Component Model for Consumer Electronics Software , 2000, Computer.

[33]  Séverine Sentilles,et al.  ProCom - the Progress Component Model Reference Manual, version 1.0 , 2008 .

[34]  Séverine Sentilles,et al.  A Component Model for Control-Intensive Distributed Embedded Systems , 2008, CBSE.

[35]  Bertrand Meyer,et al.  The grand challenge of trusted components , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[36]  Kung-Kiu Lau,et al.  A taxonomy of software component models , 2005, 31st EUROMICRO Conference on Software Engineering and Advanced Applications.

[37]  Andy Wigley,et al.  Microsoft .Net Compact Framework: Core Reference , 2003 .

[38]  Gustavo Alonso,et al.  Web Services: Concepts, Architectures and Applications , 2009 .

[39]  Grady Booch,et al.  Essential COM , 1998 .

[40]  Ivica Crnkovic,et al.  15 years of CBSE symposium: impact on the research community , 2012, CBSE '12.

[41]  Ron Ben-Natan,et al.  CORBA - a guide to common object request broker architecture , 1995, J. Ranade Workstation series.

[42]  John Daniels,et al.  UML Components: A Simple Process for Specifying Component-Based Software , 2000 .

[43]  David Notkin,et al.  Architectural Reasoning in ArchJava , 2002, ECOOP.

[44]  Tomas Bures,et al.  Communication Style Driven Connector Configurations , 2003, ICSE 2003.

[45]  David Notkin,et al.  ArchJava: connecting software architecture to implementation , 2002, ICSE '02.

[46]  Thierry Coupaye,et al.  The FRACTAL component model and its support in Java , 2006, Softw. Pract. Exp..

[47]  Luiz Fernando Capretz Y: A New Component-Based Software Life Cycle Model , 2005 .

[48]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[49]  Steffen Becker,et al.  The Palladio component model for model-driven performance prediction , 2009, J. Syst. Softw..