Reutilisation de logiciel : une approche algebrique, son application a ada et les outils associes

La reutilisation du code est un sujet economiquement important, mais difficile en pratique. Nous nous interessons dans cette these a une approche de la reutilisation ou le code reutilise n'est pas modifie. Quand elle est possible, la reutilisation sans modification est particulierement interessante puisque les composants reutilisables sont generalement de tres grande qualite, qu'il n'est pas necessaire de les retester et qu'il y a moins de code a maintenir. Une telle forme de reutilisation n'est pas possible que si les composants reutilisables sont decrits grace a des specifications formelles et modulaires: le caractere formel est indispensable pour des preuves de correction et la modularite est requise pour les specifications comme pour les programmes. En considerant le cas de composants decrits par des specifications algebriques structurees, nous definissons rigoureusement la relation est reutilisable pour entre une specification a implanter et la specification d'un composant reutilisable. Nous montrons que cette definition est compatible avec les primitives de notre langage de specification et nous donnons des conditions suffisantes de reutilisabilite. Nous decrivons ensuite l'outil reusig d'aide a la recherche et a l'adaptation de composants reutilisables pour implanter une specification donnee. Cet outil considere uniquement l'aspect syntaxique des specifications et les resultats ne sont donc pas toujours corrects au niveau semantique. Mais, comme le montre les exemples d'utilisation de reusig donnes dans cette these, ses bonnes performances permettent de filtrer toute une base de composants et les resultats sont generalement pertinents. Nous presentons enfin brievement le systeme generique esf-rose d'aide a la reutilisation, puis nous decrivons l'adaptation de reusig au cas du langage de programmation ada et son integration dans le systeme esf-rose