La fiabilité des logiciels complexes est un enjeu capital pour la recherche en génie logiciel. Des techniques de raisonnement formel rapides et fiables sont une nécessité face à des systèmes de plus en plus complexes, critiques et soumis à des adaptations de plus en plus fréquentes. Dans ce projet, nous nous intéressons à la préservation de la fiabilité du logiciel tout au long de sa vie et des nombreuses évolutions et variantes qu'il connaîtra. Par adaptabilité logicielle, nous désignons à la fois
Ce projet vise la création d'un centre inter-universitaire de recherche fondamentale en adaptabilité logicielle. Ses défis principaux sont de prévenir, détecter et résoudre de manière incrémentale les incohérences et conflits entre versions et/ou variantes de logiciels. Au niveau syntaxique et structurel, on étudiera les formalismes de transformation de graphes et les vues intensionnelles. Au niveau sémantique, on se consacrera à la vérification formelle de modèles de variabilité (feature diagrams). Grâce à une collaboration étroite entre trois partenaires d'expertises complémentaires, ces différentes techniques seront comparées et combinées, dans le but de faire progresser l'état des connaissances dans le domaine et d'ouvrir la voie à des outils plus efficaces.
Aujourd'hui, les systèmes logiciels sont présents dans tous les aspects de l'activité humaine. Leur développement constitue un des piliers de l'économie mondiale. La fiabilité des logiciels est un enjeu capital pour la recherche en génie logiciel. Des techniques de raisonnement formel rapides et fiables sont une nécessité face à des systèmes de plus en plus complexes, critiques et soumis à des adaptations de plus en plus fréquentes. Dans ce projet, nous nous intéressons à la préservation de la fiabilité du logiciel tout au long de sa vie et des nombreuses évolutions et variantes qu'il connaîtra.
Sous le terme d'adaptabilité logicielle, nous sous-entendons la capacité d'évolution d'un logiciel, ainsi que sa variabilité :
Les partenaires du projet ont une compétence considérable et complémentaire dans la recherche fondamentale à des solutions scientifiques pour augmenter l'adaptabilité logicielle et pour réaliser la variabilité logicielle. Parmi les défis à relever, c'est aux plus fondamentaux que ils se consacront en priorité.
Un des défis fondamentaux consiste à détecter et résoudre de manière incrémentale des incohérences et conflits lors de l'adaptation logicielle. On rencontre cette nécessité à plusieurs niveaux et en différentes formes. Dans une ligne de produits logiciels, l'architecture décrivant la ligne de produits peut évoluer en parallèle avec les produits individuels. Dans un modèle logiciel composé de différentes vues, des adaptations dans une ou plusieurs vues peuvent compromettre la cohérence globale du modèle. Dans le cadre d'un développement collaboratif, plusieurs personnes peuvent faire des adaptations en parallèle à la même entité logicielle, et lors de la fusion de ces adaptations des conflits peuvent survenir.
L'UMons utilisera la théorie de transformation de graphes pour aborder cette problématique d'un point de vue syntaxique (c.à.d. constructif). La représentation à base de graphes typés permet de facilement représenter l'architecture d'un logiciel ou d'une ligne de produits. Des règles de transformation sont utilisées pour spécifier les adaptations logicielles. Le graphe de type, les invariants de graphe et les préconditions et postconditions peuvent être utilisés pour assurer la cohérence structurelle. Les propriétés formelles du formalisme permettent d'analyser et de résoudre des conflits entre les transformations, basé sur les notions de dépendance parallèle et séquentielle, et en utilisant l'analyse des paires critiques.
L'UCL étudiera comment son formalisme des vues intensionnelles, originalement conçu pour gérer et résoudre des incohérences et conflits au niveau du code source lors de l'évolution d'un logiciel, peut être appliqué à la problématique de la variabilité logicielle et les lignes de produits. Comme l'approche de l'UMH, le formalisme des vues intensionnelles est assez syntaxique, permettant surtout la déclaration des régularités structurelles dans le code source. Des extensions plus sémantique du formalisme, par exemple en utilisation l'interprétation abstraite, sont actuellement étudiées.
Dans la continuation de ses travaux antérieurs, le partenaire FUNDP travaillera sur la vérification formelle de modèles de variabilité (“feature models”) dans les lignes de produits logiciels. Jusqu'à présent, les résultats se sont cantonnés à l'étude des langages et des procédures de décisions associées d'un point de vue sémantique (c.à.d. non constructif). La voie des transformations de graphes sera désormais étudiées pour réaliser de manière concrète les opérations précédemment étudiées: fusions (unions, intersections…), “refactorings”, etc. De plus, la portée des techniques de co-évolution sera maintenant étendue au code source par recours au formalisme des vue intensionnelles. Il est à noter également que les “feature models” sont une notation qui pose encore de nombreuses questions aux chercheurs (modularisation, séparation des préoccupations, visualisation…). Les nouveaux contextes d'utilisation des “features models” qui seront explorés dans ce projet sont susceptibles de donner de nouveaux éclaircissements sur ces points également.
Dans ce projet, premièrement nous étudierons comment les deux différents aspects de la problématique (syntaxique et sémantique) peuvent être combinés. Nous éssaierons, par exemple, de trouver des relations entre les régularités et contraintes structurelles d'un coté, et les contraintes sémantiques de l'autre coté. Nous tenterons également de prouver que certaines opérations syntaxiques, exprimés comme transformations de graphes, préserveront certaines contraintes sémantiques. Dans le cadre des lignes de produits, par exemple, on souhaite vérifier si une transformation est optimale par rapport à la complexité (en temps et en mémoire). Dans le cadre de l'évolution logicielle, on souhaite vérifier si un “réusinage” (refactoring) du logiciel préserve certains aspects de son comportement. L'utilisation de la transformation de graphes pour supporter le refactoring a été étudié en detail par l'UMons. Deuxièmement, nous étudierons comment les différents formalismes proposés se distinguent et pourraient être combinés. Par exemple, les vues intensionnelles pourraient être utilisées pour exprimer des contraintes transversales sur les feature models. Ou encore les règles de transformation pourraient spécifier comment résoudre des conflits structurels détectés par le formalisme des vues intensionnelles.
Troisièmement, l'expertise de l'UMons sur la modélisation logicielle pourra être appliquée sur les feature models étudiés par les FUNDP. En particulier, l'UMons a appliqué l'idée de la transformation de modèles logiciels sur la problématique de l'évolution des modèles. Ceci nous a permis, entre autres, de supporter la gestion de l'incohérence des modèles, en détectant et résolvant les incohérences de manière incrémentale et interactive. Dans ce projet, nous appliquerons cette approche sur les feature models, pour trouver des incohérences dans la spécification d'une famille de produits, ainsi que pour traiter des incohérences entre une famille de produits et les produits dérivés de cette famille.
Finalement, l'UCL a acquis une certaine expertise dans le domaine de la variabilité à l'exécution (run-time variability) avec des applications typiques dans l'intelligence ambiante, les systèmes embarqués, les applications mobiles, etc. Tandis que cette problèmatique sera étudié dans un projet parallèle dans lequel l'UCL est impliqué, l'utilité des approches proposées dans ce projet pour ce type de variabilité peut être étudiée et peut mener à des résultats intéressants pour les deux projets.
En résumé, les promoteurs du projet ont une expérience complémentaire en formalismes et mécanismes permettant d'analyser et d'étendre l'état de l'art en adaptabilité logicielle. Ils exploiteront et feront avancer davantage leurs connaissances, dans le but de créer un centre de référence sur l'adaptabilité logicielle. Ce centre de recherche interuniversitaire, unique en Belgique, aura pour vocation de:
Pr. Tom Mens (porte parole)
Université de Mons-Hainaut
Service de Génie Logiciel
Avenue du Champ de Mars 6
7000 Mons
Belgique
Pr. Kim Mens
Université catholique de Louvain
Département d'Ingénierie Informatique
Place Sainte-Barbe 2
1348 Louvain-la-Neuve
Belgique
Pr. Patrick Heymans
Facultés Universitaires Notre-Dame de la Paix
PReCISE group
Rue Grandgagnage n°21
5000 Namur
Belgique