DÉVELOPPEMENT DES SYSTÈMES ONTOGENETIQUES
Bien que la méthodologie RUP (Rational Unified Process) ne soit pas adaptée à la production des systèmes ontogénétiques, elle présente de nombreux atouts pratiques et jouit d’une notoriété mondiale. De ce fait, son adaptation pour les systèmes ontogénétiques est une voie prometteuse. Nous proposons ONTO‐RUP, une démarche pour le développement des systèmes ontogénétiques, basée sur une extension du RUP. Pour cela, l’approche proposée prévoit un nouveau cycle de vie pour le RUP, en proposant l’adjonction d’autres disciplines, des éléments de modélisation et des directives pour mener la modélisation de l’ontogenèse. Pour cela, l’approche préserve tous les outils et atouts du RUP.
Approches Existantes et Ontogenèse
Plusieurs travaux de recherche ont montré que plus de 80% des coûts du cycle de vie du logiciel sont engagés après la livraison [Pim 11], [Sal 04], [Aur 05]. Par conséquent, il existe des raisons économiques importantes pour obtenir une meilleure compréhension du pourquoi et du comment les systèmes évoluent. La vision comment porte sur l’évolution du système logiciel comme une discipline d’ingénierie. Elle étudie les aspects plus pragmatiques qui aident le développeur du logiciel ou le chef de projet dans leurs tâches au jour le jour. Cependant, l’évolution des logiciels étudie également le processus de changement lui‐même, l’analyse des débris du logiciel pour extraire les tendances, faire desLes méthodes et les mécanismes standards actuels couvrent seulement une partie du processus de logiciel, et souvent ne supportent pas la phase de maintenance et d’évolution.
La standardisation est rarement appliquée et les changements sont fréquemment implémentés manuellement. Ils n’existent pas actuellement des démarches de développement appropriées qui redonnent à l’évolution le statut de concept central. La communauté du génie logiciel admet que les enjeux des nouvelles technologies se situent plutôt dans le contexte des méthodes de développement [Ben 12, Joh 05, Lim 11, Cha 01, Mes 08]. Ces dernières doivent faire face aux problèmes de l’évolution des systèmes logiciels mais aussi à leur complexité qui s’accroît à un rythme sans rapport avec nos capacités actuelles à les appréhender. Sur le plan des démarches, il n’en existe pas encore, à notre connaissance, qui soient dédiées à l’approche ontogénétique qui mettent l’accent sur l’évolution et font que l’évolution devienne la préoccupation primaire de l’implémentation d’un système logiciel.
La vision ontogénétique est radicale et sépare les changements dans deux catégories: Les changements anticipés et changements non anticipés. Nous citons en premier les travaux de Pimentel and al. [Pim 11] qui représente notre source d’inspiration pour l’élicitation des évolutions anticipées des besoins. Les auteurs proposent une approche pour effectuer des changements sur les exigences exprimées par les modèles de but en se basant sur une représentation du futur fournie par la méthode « futures wheel ». Cependant, le travail se concentre principalement sur la façon dont les méthodes prospectives peuvent être utilisées pour l’élicitation des besoins futurs, et discute les impacts d’étudier le futur sur l’activité d’ingénierie des besoins. Les auteurs résument 17 méthodes prospectives où certaines de ces méthodes sont encore utilisées pour l’élicitation des besoins, mais pas pour étudier le futur; comme, par exemple, le cas des méthodes des scénarios et les méthodes participatives. Une approche qui s’intéresse à la problématique de l’évolution sous l`angle des besoins est proposée dans [Eti 04] et [Sal 04] pour l’adaptation des systèmes d’information. Dans cette approche le processus d’évolution des besoins est modélisé en utilisant un méta‐modèle et une typologie générique d’opérateurs exprimant les différents types des évolutions et ceci en utilisant le concept de l’écart (Gap en anglais).
Approches de Développement Existantes et Ontogenèse
Les systèmes ontogénétiques évoluent tout en restant opérationnels et en réponse à des stimuli internes. Les changements/évolutions anticipés sont analysés et codifiés durant les phases de développement du système, sous forme de patchs, qui s’exécutent si certaines conditions sont vérifiées. Comme signalé précédemment, ils n’existent pas dans la littérature des méthodes de développement qui prennent en charge la conception et l’implémentation des évolutions anticipées qui se déclenche automatiquement pendant le fonctionnement du système. Pour faire évoluer les systèmes ontogénétiques pendant leur exécution tout en préservant leur disponibilité, c’est‐à‐dire leur continuité de service, les évolutions/changements non anticipés sont pris en charge dés leur arrivée et le système ontogénétique reste opérationnel et mis à jour dynamiquement, cette caractéristique existe dans certains systèmes logiciels mais elle est liée beaucoup plus à la plateforme du codage du logiciel qu’à la méthode de son développement et production. Toutes les formes d’évolution sont traitées de la même façon. Ce point est important car les systèmes ontogénétiques présentent l’avantage de considérer les deux formes de changements (anticipés ou non) de manière identique. Cette vision est absente dans toutes les méthodes de développement existantes qu’elles soient traditionnelles ou agiles. Le cycle de maintenance du système logiciel est totalement indépendant du cycle de son développement.