Abstract

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.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.