EX-MAN Component Model for Component-Based Software Construction

In software engineering, composition is the way to reuse existing work. In component-based development (CBD), a number of component models are defined with an emphasis on composition mechanisms for components. With respect to components, current component models can be categorised into three main groups where components are: (i) objects, (ii) architectural units and (iii) encapsulated components. This paper presents a comparison of system construction in these three categories of component models and concludes selecting the X-MAN component model (X-MAN) from the third category for its edge over other models because of its exogenous composition connectors. However, because of the limitations of X-MAN, the use of this component model at a wider scale is hindered. In this paper, we propose extended X-MAN component model (EX-MAN) which addresses the limitations of X-MAN. To demonstrate the EX-MAN semantics for system construction, we have developed a tool exogenous composition framework (ECF). We have described the concepts used in our work using a trivial bank example. To evaluate the feasibility of EX-MAN for system construction, using ECF (a related tool we have developed), we constructed the trivial bank example and also a more complex system, CoCoME, example.

[1]  Azlin Nordin,et al.  Constructing Component-Based Systems Directly from Requirements Using Incremental Composition , 2010, 2010 36th EUROMICRO Conference on Software Engineering and Advanced Applications.

[2]  Laura Bocchi,et al.  A Formal Approach to Service Component Architecture , 2006, WS-FM.

[3]  Niklaus Wirth,et al.  What can we do about the unnecessary diversity of notation for syntactic definitions? , 1977, Commun. ACM.

[4]  Kung-Kiu Lau,et al.  A Software Component Model and Its Preliminary Formalisation , 2005, FMCO.

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

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

[7]  Kung-Kiu Lau,et al.  Composite Connectors for Composing Software Components , 2007, SC@ETAPS.

[8]  Oscar Nierstrasz,et al.  A Component Model for Field Devices , 2002, Component Deployment.

[9]  Kung-Kiu Lau,et al.  Software Component Models , 2007, IEEE Trans. Software Eng..

[10]  Kung-Kiu Lau,et al.  Towards Composing Software Components in Both Design and Deployment Phases , 2007, CBSE.

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

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

[13]  Oscar Nierstrasz,et al.  Component-oriented software technology , 1995 .

[14]  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).

[15]  Farhad Arbab,et al.  Coordination Models and Languages , 1998, Adv. Comput..

[16]  Oscar Nierstrasz,et al.  Research directions in software composition , 1995, CSUR.

[17]  Ioannis Ntalamagkas,et al.  A software component model with concurrency , 2009 .

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

[19]  Kung-Kiu Lau,et al.  (Behavioural) Design Patterns as Composition Operators , 2010, CBSE.

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

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

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

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

[24]  Nicholas Carriero,et al.  Coordination languages and their significance , 1992, CACM.

[25]  Perla Velasco-Elizondo,et al.  Deriving Functional Interface Specifications for Composite Components , 2011, SC@TOOLS.

[26]  Michael Winter,et al.  Components for embedded software: the PECOS approach , 2002, CASES '02.

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

[28]  Kung-Kiu Lau,et al.  Incremental construction of component-based systems , 2012, CBSE '12.

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

[30]  Kung-Kiu Lau,et al.  A catalogue of component connectors to support development with reuse , 2010, J. Syst. Softw..

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

[32]  Kung-Kiu Lau,et al.  An Introduction to Component-Based Software Development , 2017, Series on Component-Based Software Development.

[33]  Raffaela Mirandola,et al.  The Common Component Modeling Example: Comparing Software Component Models [result from the Dagstuhl research seminar for CoCoME, August 1-3, 2007] , 2007, CoCoME.

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

[35]  Paul C. Clements,et al.  A survey of architecture description languages , 1996, Proceedings of the 8th International Workshop on Software Specification and Design.