Skip to content. | Skip to navigation

Emergences

Lettre d'information n° 34

Image emergences pour impression
Personal tools
You are here: Home 2015 Lettre d'information n° 34 Gérer la variabilité dans les lignes de produits logiciels
Document Actions

Gérer la variabilité dans les lignes de produits logiciels

Utilisé par l'industrie depuis des décennies, le concept de lignes de produits s'invite désormais dans le secteur du logiciel. Les éditeurs voudraient décliner leurs programmes en une kyrielle de variantes pour répondre spécifiquement à certaines exigences clients et pour se positionner sur un plus grand nombre de segments de marché. Mais gérer ainsi des milliers d'options n'est pas une mince affaire. Dans ce contexte, les vertus de l'ingénierie de modèle démontrent toute leur pertinence, comme l'explique le chercheur Mathieu Acher*.

Utilisé par l'industrie depuis des décennies, le concept de lignes de produits s'invite désormais dans le secteur du logiciel. Les éditeurs voudraient décliner leurs programmes en une kyrielle de variantes pour répondre spécifiquement à certaines exigences clients et pour se positionner sur un plus grand nombre de segments de marché. Mais gérer ainsi des milliers d'options n'est pas une mince affaire. Dans ce contexte, les vertus de l'ingénierie de modèle démontrent toute leur pertinence, comme l'explique le chercheur Mathieu Acher*.

Prenez le secteur automobile, suggère le scientifique. À chaque fois qu'un fabricant sort une nouvelle voiture, le véhicule est décliné dans une quantité de versions. Chaque version est elle-même disponible en de nombreuses déclinaisons. Et en outre, le client peut encore choisir des options supplémentaires : essence ou diesel, toit ouvrant, hayon, air conditionné... Au total, on parle de plus de 300 options. Mais, souvent, elles interfèrent les unes avec les autres. En conséquence, le logiciel embarqué doit être lui aussi  personnalisé pour prendre en compte chaque variation du véhicule. À bien y penser, il s'agit donc en soit d'une véritable ligne de produits logiciels.

Décliner ainsi un logiciel en de multiples variantes requiert des techniques innovantes basées en grande partie sur l'ingénierie de modèles. Des modèles basés sur la physique sont déjà chose courante dans des secteurs comme l'automobile ou l'aéronautique. “Les constructeurs s'en servent pour la conception et la simulation. D'un point de vue ligne de produits, c'est à l'intérieur même de ces modèles qu'il faudrait prendre en compte la variabilité. Tel composant du modèle doit être remplacé par un autre, introduisant ainsi une variante. Dans ce cas, la variabilité sert à spécifier quels sont les points de variation et à dériver explicitement une variante logicielle. Mais pour cela, on a besoin de formalismes ou de langages.  Dans les dernières années Mathieu Acher et plusieurs autres scientifiques (1) ont élaboré Familiar, un langage pour gérer à grande échelle les options dans les modèles et les contraintes entre ces options. “C'est notre outil principal pour spécifier la variabilité dans les modèles ou tout autre artefact susceptible de personnalisation : code source, interface graphique, modèles 3D, etc.

Dériver automatiquement des variantes

Les chercheurs travaillent en ce moment à démontrer l'utilisabilité de Familiar dans de multiples domaines. “Un de nos partenaires industriels est un acteur majeur du secteur de la défense. Il exporte du matériel radio dans le monde entier. Sur ce marché, les desiderata des clients varient grandement d'un pays à l'autre. Évidemment, le constructeur n'a pas envie de tout recommencer de zéro à chaque fois qu'il signe un nouveau contrat. Plutôt que de devoir réagir constamment à de nouvelles exigences, il envisage donc une démarche plus proactive qui permettrait d'anticiper les futures variantes et d'identifier les portions de code réutilisables. Naturellement, ce n'est pas chose facile car pour réutiliser du code, il faut l'avoir conçu d'une manière particulière. Mais au final, cela va payer. Le constructeur pourra dériver des variantes à peu de frais. Il suffira de choisir une configuration qui satisfasse les spécifications du modèle puis d'appuyer sur le bouton pour obtenir le nouveau produit. L'entreprise pourra même offrir à ses clients la possibilité d'effectuer eux-mêmes cette personnalisation. Tout cela est possible parce que notre partenaire a déjà placé l'ingénierie de modèle au cœur de sa stratégie.  Cela dit, des outils de rétro-ingénierie ont aussi été développés pour aider les entreprises possédant des artefacts plus anciens. Familiar peut ainsi prendre toutes sortes d'éléments en entrée : matrices de comparaison de produits, fichiers de configuration, contraintes logiques, modèles de conception, exigences textuelles, code source, dépendances de composants, etc.

Dans un tout autre domaine, les scientifiques développent une collaboration avec Inpixal.  Cette PME rennaise possède une expertise de pointe en matière d'algorithmes de vision pour les systèmes de vidéo-surveillance. “La qualité d'image peut s'avérer médiocre. Néanmoins, il faut des algorithmes efficaces. C'est à dire : robustes, précis, rapides. Et pas seulement dans des conditions de luminosité idéales, mais aussi les jours de faible visibilité. Pour vérifier le comportement de l'algorithme, il faut le tester sur de nombreuses vidéos couvrant un maximum de contextes : crépuscule, brouillard et ainsi de suite.” 

Problème : le manque de matière visuelle. Pas facile de disposer d'une grande variété de contextes. On vient très vite à manquer de vidéos. “C'est ce qui nous a donné l'idée de synthétiser des vidéos dans lesquelles nous viendrions insérer, ici et là, des chars supplémentaires, ou des arbres, ou des conditions atmosphériques différentes. Et cela marche bien. Les vidéos synthétisées sont réalistes. Elles offrent une palette de scénarios de tests très variée.  Tant et si bien que ce vaste jeu de séquences pourrait devenir de facto un banc de tests permettant à un industriel de démontrer la supériorité de son algorithme par rapport aux solutions proposées par ses concurrents.

Configurateur d'options pour imprimantes 3D

Ces recherches sur la variabilité pourraient aussi avoir des retombées dans le domaine foisonnant de l'impression 3D. “La personnalisation massive ! Voilà ce qui se profile à l'horizon, prédit Mathieu Acher. Prenez par exemple ces petites boîtes en plastique qui servent à ranger les piles. On en trouve maintenant de toutes sortes. Les gens qui en créent publient leurs modèles sur des sites collaboratifs de façon à ce que d'autres puissent les réutiliser ou les personnaliser à leur tour. De nouvelles versions (variantes) apparaissent sans cesse. Il s'agit d'une ligne de produits à part entière. Mais on perçoit bien le besoin d'insuffler des techniques éprouvées de lignes de produits pour pouvoir aider les utilisateurs à modéliser les options, leurs contraintes, et pouvoir réaliser efficacement des variantes de produits.” Autrement dit : un configurateur d'options que tout un chacun pourra utiliser avant d'aller ensuite faire imprimer son fichier dans la boutique du quartier.

--------
Notes :

* Mathieu Acher est membre de Diverse, une équipe projet Inria/CNRS/Université de Rennes/Insa Rennes , commune à l'Irisa (UMR CNRS 6074). Elle est spécialisée dans l'ingénierie de modèle.

 (1) Familiar a été initialement conçu au laboratoire I3S par Mathieu Acher, Philippe Collet et Philippe Lahire. Il est maintenant conjointement développé par Diverse (Rennes), Modalis (Nice) et Colorado State University (USA).
Lire également : Familiar : A domain-specific language for large scale management of feature models, by A. Acher, P. Collet, P. Lahire and R. France; in Science of Computer Programming, vol. 78, 2013.