Journal of Software Maintenance and Evolution: Research and Practice Search-based Many-to-one Component Substitution

In this paper, we present a search-based automatic many-to-one component substitution mechanism. When a component is removed from an assembly to overcome component obsolescence, failure or unavailability, most existing systems perform component-tocomponent (one-to-one) substitution. Thus, they only handle situations where a specific candidate component is available. As this is not the most frequent case, it would be more flexible to allow a single component to be replaced by a whole component assembly (many-to-one component substitution). We propose such an automatic substitution mechanism, which does not require the possible changes to be anticipated and which preserves the quality of the assembly. This mechanism requires components to be enhanced with ports, which provide synthetic information on components’ assembling capabilities. Such port-enhanced components then constitute input data for a searchbased mechanism that looks for possible assemblies using various heuristics to tame complexity.

[1]  Paola Inverardi,et al.  Formal Specification and Analysis of Software Architectures Using the Chemical Abstract Machine Model , 1995, IEEE Trans. Software Eng..

[2]  Marianne Huchard,et al.  Search-based many-to-one component substitution , 2008 .

[3]  Jirí Adámek,et al.  Partial bindings of components - any harm? , 2004, 11th Asia-Pacific Software Engineering Conference.

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

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

[6]  David Garlan,et al.  Exploiting style in architectural design environments , 1994, SIGSOFT '94.

[7]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[8]  Roman Barták,et al.  Constraint Processing , 2009, Encyclopedia of Artificial Intelligence.

[9]  Paola Inverardi,et al.  Static checking of system behaviors using derived component assumptions , 2000, TSEM.

[10]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

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

[12]  Alan W. Brown,et al.  The Current State , 2016 .

[13]  Antonio Vallecillo,et al.  Component-based software quality : methods and techniques , 2003 .

[14]  Petr Tuma,et al.  Streaming State Space: A Method of Distributed Model Verification , 2007, First Joint IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering (TASE '07).

[15]  Jeff Magee,et al.  Dynamic structure in software architectures , 1996, SIGSOFT '96.

[16]  Frantisek Plasil,et al.  Behavior Protocols for Software Components , 2002, IEEE Trans. Software Eng..

[17]  Jan Kofron,et al.  Behavior Protocols Verification: Fighting State Explosion , 2004 .

[18]  Ralf H. Reussner,et al.  Reasoning about Software Architectures with Contractually Specified Components , 2003, Component-Based Software Quality.

[19]  Robert J. Allen A formal approach to software architecture , 1997 .

[20]  Frantisek Plasil,et al.  Reducing Component Systems' Behavior Specification , 2007, XXVI International Conference of the Chilean Society of Computer Science (SCCC'07).

[21]  Victor J. Rayward-Smith,et al.  The next release problem , 2001, Inf. Softw. Technol..

[22]  Marianne Huchard,et al.  Precalculating Component Interface Compatibility using FCA , 2007, CLA.

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

[24]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[25]  Wilhelm Hasselbring,et al.  On A Software Architecture Description supporting Component Deployment and System Runtime Reconfiguration , 2004 .

[26]  Ivica Crnkovic Component-based software engineering - new challenges in software development , 2001, Softw. Focus.

[27]  Marianne Huchard,et al.  Automated and Unanticipated Flexible Component Substitution , 2007, CBSE.

[28]  Mark Harman,et al.  The Current State and Future of Search Based Software Engineering , 2007, Future of Software Engineering (FOSE '07).

[29]  Remco M. Dijkman,et al.  Verifying the correctness of component-based applications that support business processes , 2003 .

[30]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[31]  Marianne Huchard,et al.  Automating the Building of Software Component Architectures , 2006, EWSA.

[32]  Kurt C. Wallnau,et al.  Volume III: A Technology for Predictable Assembly from Certifiable Components , 2003 .

[33]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[34]  Thomas A. Henzinger,et al.  Interface automata , 2001, ESEC/FSE-9.

[35]  Premek Brada Component Change and Version Identification in SOFA , 1999, SOFSEM.