Building Hierarchical Component Directories

Component-based development is the software paradigm focused on building applications using reusable software components. Applica- tions are built by assembling components, where the required interfaces of a component are connected to compatible provided interfaces of other components. In order to have an effective building process, software ar- chitects need adequate component directories that both index available components and ease their search. So far, existing approaches provide only a limited structure and indexation to store/register components and, as a consequence, they propose an inadequate searching process. Even when the indexes are built as flat or hierarchical structures, the indexed elements are not the components themselves, but part of them, such as services or functions, making the search of the needed compatible com- ponents imprecise. To cope with searching and compatibility problems, the contribution of this paper is twofold: it is composed of both a refined methodology (improving a previous approach) and a tool to build a hi- erarchically structured component directory. The component directory solves the identified problems letting an architect find components that are compatible with a given specification (to be assembled) or components that can substitute to a given one. This directory uses Formal Concept Analysis to build component type hierarchies thanks to a three step classification process that successively classifies functionality signatures, interfaces and, at last, component types. The refinement of the methodology is based on a substitutability relationship between components, where the notion of not having a parameter or an interface of some type makes our methodology more robust when considering required interfaces. The tool made possible to overcome scalability issues implementing several variations on the clas- sification strategy. We present several experiments on three case studies to classify components from on-line open-source component repositories as a validation of our methodology.

[1]  Jean-Marc Jézéquel,et al.  A Requirement-Centric Approach to Web Service Modeling, Discovery, and Selection , 2010, ICSOC.

[2]  Amedeo Napoli,et al.  Hermes: a simple and efficient algorithm for building the AOC-poset of a binary relation , 2014, Annals of Mathematics and Artificial Intelligence.

[3]  Rosanna Lee,et al.  JNDI API Tutorial and Reference: Building Directory-Enabled Java¿ Applications , 2000 .

[4]  Jon Sigel,et al.  CORBA Fundamentals and Programming , 1996 .

[5]  Antonio Vallecillo,et al.  A Trading Service for COTS Components , 2004, Comput. J..

[6]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[7]  Jeff McAffer,et al.  OSGi and Equinox: Creating Highly Modular Java Systems , 2010 .

[8]  Stéphanie Chollet,et al.  Heterogeneous Service Selection Based on Formal Concept Analysis , 2010, 2010 6th World Congress on Services.

[9]  Michel Riveill,et al.  SLCA, composite services for ubiquitous computing , 2008, Mobility '08.

[10]  Richard S. Hall,et al.  Dynamically Adaptable Applications with iPOJO Service Components , 2007, SC@ETAPS.

[11]  Yamine Aït Ameur,et al.  An Ontology and Indexation based Management of Services and Workflows Application to Geological Modeling , 2011, Int. J. Electron. Bus. Manag..

[12]  Christian Lindig Concept-Based Component Retrieval , 1995 .

[13]  Olivier Ridoux,et al.  Indexation multiple et automatisée de composants logiciels , 2006, Tech. Sci. Informatiques.

[14]  Christelle Urtado,et al.  Architecture-centric development and evolution processes for component-based software , 2010, SEKE.

[15]  Amedeo Napoli,et al.  Relational concept analysis: mining concept lattices from multi-relational data , 2013, Annals of Mathematics and Artificial Intelligence.

[16]  B. Liskov Keynote address - data abstraction and hierarchy , 1988, OOPSLA '87.

[17]  Bernhard Ganter,et al.  Formal Concept Analysis: Mathematical Foundations , 1998 .

[18]  Oliver Hummel,et al.  Semantic Component Retrieval in Software Engineering , 2008, Ausgezeichnete Informatikdissertationen.

[19]  Cecilia Zanni-Merk,et al.  Component Retrieval Based on Ontology and Graph Patterns Matching , 2010 .

[20]  Rudolf Wille,et al.  Restructuring Lattice Theory: An Approach Based on Hierarchies of Concepts , 2009, ICFCA.

[21]  Chouki Tibermacine,et al.  Backing Composite Web Services Using Formal Concept Analysis , 2011, ICFCA.

[22]  LiskovBarbara Keynote address - data abstraction and hierarchy , 1987 .

[23]  Colin Atkinson,et al.  Using the Web as a Reuse Repository , 2006, ICSR.

[24]  Intisar A. Al Said,et al.  Semantic-Based Retrieving Model of Reuse Software Component , 2010 .

[25]  Colin Atkinson,et al.  Code Conjurer: Pulling Reusable Software out of Thin Air , 2008, IEEE Software.

[26]  Salah Sadou,et al.  A Component Selection Framework for COTS Libraries , 2008, CBSE.

[27]  Lerina Aversano,et al.  Using Concept Lattices to Support Service Selection , 2006, Int. J. Web Serv. Res..

[28]  Jean-Marc Geib,et al.  Type-safe trading proxies using TORBA , 2001, Proceedings 5th International Symposium on Autonomous Decentralized Systems.

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

[30]  Esmond Pitt,et al.  java.rmi: The Remote Method Invocation Guide , 2001 .

[31]  Aoying Zhou,et al.  Management and Retrieval of Web Services Based on Formal Concept Analysis , 2005, The Fifth International Conference on Computer and Information Technology (CIT'05).

[32]  Suresh Chand Gupta,et al.  Reusable Software Component Retrieval System , 2013 .

[33]  Chouki Tibermacine,et al.  Automated architectural component classification using concept lattices , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

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

[35]  Chouki Tibermacine,et al.  Selection of Composable Web Services Driven by User Requirements , 2011, 2011 IEEE International Conference on Web Services.

[36]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Inf. Comput..

[37]  Giuseppe Castagna,et al.  Covariance and contravariance: conflict without a cause , 1995, TOPL.

[38]  Chouki Tibermacine,et al.  WSPAB: A Tool for Automatic Classification & Selection of Web Services Using Formal Concept Analysis , 2008, 2008 Sixth European Conference on Web Services.