Un processus de sélection de composants logiciels multi-niveaux
Résumé
Component-Based Software Engineering allows to build a system from reusable pre-existing commercial off-the-shelf (COTS) components. The two immediate potential benefits for such an approach are reduced development costs and shorter time-to-market. For this reason, more and more software applications are built using COTS rather than being developed from scratch, as this is something that fewer and fewer companies can afford. However, due to the intrisic nature of COTS as "black-box" units put into markets by third party publishers, we must rethink software development life-cycle in depth. In fact, it becomes impossible to specify requirements without asking if the marketplace provides COTS that can satisfy them. And one cannot specify an architecture without asking if there exist components to integrate it. In such a context, component selection becomes particularly important. So important that a bad requirements definition associated to a poor selection of components can lead to major financial failure, and sometimes human ones. There are also extra costs due to the investigation of hundreds of candidates disseminated into several different markets and libraries, not to mention the diversity of components' description formats. Finally, this phase can become so time-consuming that it may annihilate the initial promise of costs and time reductions. Therefore, the only solution to maintain these gains is to have a selection process that would be well-defined, repeatable, and as much automated as possible. In this thesis I propose a mechanism that allows to select, among a vast library of candidates, the one that is the "best" for a specific need, functionally as well as non-functionally. The originality of this approach is to allow an iterative selection by using more and more precise requirements' description levels. To achieve this goal, this mechanism incorporates the results of works from various domains such as component search and retrieval, subtyping and quality metrics, into a unique concept : target component.
Le paradigme composant propose de construire un système à partir d'éléments faiblement couplés et pour la plupart déjà existants. Le taux de réutilisation ainsi atteint entraîne une diminution des délais et des coûts de développement. Pour faire face à la complexité croissante des applications, les entreprises sont de plus en plus obligées d'avoir recours à des composants commerciaux "sur étagère", fournis par des tierces personnes, et dont la nature même impose de repenser profondément le cycle de développement d'un logiciel. Il n'est plus possible de spécifier un besoin ou une architecture sans se demander s'il existe sur le marché un composant capable de satisfaire le premier ou de s'intégrer dans la seconde. Dans ce contexte, une activité voit son importance renforcée : la sélection de composants. Cette activité est sensible : une mauvaise définition des besoins associée à une mauvaise sélection des composants peut conduire à des catastrophes financières, voire même humaines dans certains cas. Elle est de plus trés coûteuse car elle impose le parcours de marchés comportant des milliers de composants, décrits avec des formats potentiellement tres différents. La sélection devient au final trés consommatrice en temps, au point de menacer les gains que conférait à l'origine ce type d'approche. La seule solution pour espérer maintenir ces gains est de disposer d'un mécanisme de sélection qui soit autant que possible automatisé. Dans cette thèse je propose un mécanisme qui permet de sélectionner, parmi une vaste bibliothèque de composants, le candidat qui répond le mieux à un besoin spécifique, aussi bien sur le plan fonctionnel que non-fonctionnel. L'originalité de cette approche est de permettre une sélection itérative en s'appuyant sur des niveaux de description des besoins de plus en plus détaillés. À cette fin, ce mécanisme intègre des résultats de travaux provenant de domaines variés tels que la recherche de composants, le sous-typage et les métriques de qualité, au sein d'un unique concept : le composant recherché.
Loading...