Modèle en spirale : le modèle de gestion des risques pour le développement logiciel

Le développement de nouveaux logiciels pose un grand défi à toutes les parties prenantes. Plus l’application à développer est complexe, plus il est difficile d’organiser clairement le processus de développement et le rendre maîtrisable dans sa complexité. C’est pourquoi on recourt habituellement à des plans détaillés étape par étape, également connus sous le nom de modes opératoires. Ceux-ci subdivisent le processus de développement en phases de taille raisonnable délimitées dans le temps et dans leur contenu. L’un des modèles les plus connus, spécialement axé sur la réduction des risques, est celui qu’on appelle le modèle en spirale, qui date de 1986.

Qu’est-ce que le modèle en spirale ?

Après avoir présenté pour la première fois en 1986 sa méthode pour développer des applications complexes, l’ingénieur logiciel américain Barry W. Boehm fit paraître son modèle dans la publication A Spiral Model of Software Development and Enhancement en 1988 et dans un cadre également plus large. Dans cette publication, il décrit le modèle en spirale comme une alternative possible au modèle en cascade établi jusqu’alors et qui servait en même temps de base expérimentale. Au contraire du modèle en cascade, le modèle en spirale ne part pas du principe que les tâches du développement logiciel doivent être organisées de manière linéaire, mais de manière itérative. Les phases ne se déroulent pas de manière unique, étape par étape, mais en plusieurs fois, en suivant une spirale. À travers cette répétition cyclique, le projet avance relativement lentement vers les objectifs fixés, mais en contrepartie le risque que le processus de développement échoue est drastiquement réduit au moyen de contrôles réguliers.

Définition

Modèle en spirale : le modèle en spirale est un mode opératoire de développement logiciel inventé par Barry W. Boehm en 1986. Il part du principe que le développement d'applications représente un cycle itératif, qui doit être répété jusqu’à ce que le but fixé soit atteint. Par une analyse régulière des risques et des contrôles réguliers du produit intermédiaire, le modèle en spirale diminue considérablement le risque d’échec lors des projets logiciels de grande taille.

Explication du modèle en spirale : comment fonctionne le modèle en spirale ?

Les problèmes survenant dans le cadre du processus de développement d’un logiciel peuvent avoir des conséquences très variées sur le projet dans son ensemble. Il faut s'attendre dans tous les cas à une augmentation des coûts, à des efforts supplémentaires et à un retard dans la sortie du logiciel - des facteurs qui peuvent vite se transformer en problème existentiel, surtout pour les petits éditeurs. Avec son approche incrémentielle et itérative - qui comprend aussi une évaluation régulière des risques sous forme d'ébauches de prototype, d’analyses ou de simulations - le modèle en spirale est censé éviter les scénarios de ce genre ou, du moins, en atténuer les répercussions négatives. Le projet logiciel suit donc continuellement le cycle du modèle en spirale jusqu'à l’état final, en passant normalement par les quatre étapes suivantes :

Phase 1 : définition des objectifs et d’alternatives

Un cycle-type dans le modèle en spirale commence par la détermination des objectifs à associer aux différentes étapes individuelles du processus de développement. Il peut ici s’agir par exemple d’améliorer des performances ou d’étendre des fonctionnalités. Dans le même temps, il convient de définir des alternatives pour la mise en œuvre (conception A vs. conception B par exemple) et de déterminer le cadre général ainsi que les coûts ou le temps de travail nécessaire.

Phase 2 : examen des alternatives

L’étape suivante correspond à l’évaluation des alternatives, dans laquelle les objectifs et le cadre général servent de valeurs de référence. Dans cette phase du cycle du modèle en spirale, le but est d’identifier les zones d’incertitude, c’est-à-dire les zones du projet qui comportent un risque non négligeable pour l’avancement du projet de développement. Ensuite a lieu l’élaboration de la stratégie la moins risquée et la plus économique, où des méthodes telles que le prototypage, les simulations, les tests d’étalonnage, les modèles d'analyse et les sondages d’usagers peuvent être employées.

Phase 3 : développement et contrôle de l’état intermédiaire

Après l’analyse des risques, place au développement logiciel à proprement parler, une phase toujours caractérisée par des risques résiduels relatifs. Si des risques liés aux performances ou aux interfaces utilisateur ou encore des risques concernant le contrôle des interfaces internes pèsent sur le processus de développement, une stratégie de développement évolutive est d’abord possible, dans laquelle le projet est spécifié plus précisément et les prototypes optimisés. Le code est écrit et testé plusieurs fois jusqu’à obtenir le résultat voulu, lequel servira ensuite de base à faible risque pour les étapes de développement ultérieures.

Phase 4 : planification du cycle suivant

Avec la fin d’un cycle commence déjà la planification du cycle suivant. Il peut s’agir de l’avancement régulier du projet, si l’objectif du cycle a été atteint et l’objectif suivant doit être défini. Mais il peut s’agir également de trouver des solutions, si l’étape de développement précédente ne s’est pas déroulée comme prévu. Ainsi, par exemple, la stratégie suivie jusqu’alors peut être remplacée par l’une des alternatives déjà définies au préalable ou bien par une nouvelle alternative. Avec celle-ci, il est ensuite possible de démarrer une nouvelle tentative pour atteindre l’objectif fixé.

Note

Le modèle en spirale (développement logiciel) est un mode opératoire générique. Les quatre phases fixent simplement les objectifs fondamentaux d’un cycle, mais elles ne doivent pas obligatoirement se refléter à chaque tour. Et leur ordre n’est pas non plus spécifié strictement par le modèle en spirale. C’est la raison pour laquelle le modèle peut être combiné à tout moment à d'autres modes opératoires.

Représentation graphique du modèle en spirale selon Boehm

La publication de 1988 comprend également une représentation graphique du modèle en spirale, qui montre à titre d’illustration à quoi ressemble le processus cyclique de développement logiciel en forme de spirale. Chaque enroulement de la spirale matérialise un cycle terminé, après avoir franchi tour à tour quatre quadrants différents, qui représentent dans ce cas les quatre phases possibles du modèle. Au fur et à mesure que la taille de la spirale grandit, la progression avance, de même que la validation par le contrôle (axe X) et les coûts de développement (axe Y).

Avantages et inconvénients du modèle en spirale pour le développement logiciel

Le développement logiciel selon le modèle en spirale est apprécié surtout pour les projets complexes de grande taille, dans lesquels la maîtrise du budget revêt une importance cruciale, tant pour le client que la société de développement. Toutes les parties prenantes profitent ici de la place centrale de l'analyse des risques, qui constitue probablement le principal avantage du modèle en spirale comparé aux autres modes opératoires. L'évaluation régulière des risques s'avère en particulier payante lorsque sont déployés des environnements techniques novateurs qui, en règle générale, sont associés à un potentiel de risque élevé à cause d'une absence de valeurs empiriques.

La structure cyclique fait partie elle aussi des points forts du modèle. D’une part, les conflits entre la partie conception et les exigences techniques sont quasiment exclus grâce aux contrôles réguliers. D'autre part, il est à tout moment possible de recueillir et tenir compte des retours d’information en raison de la progression en forme de spirale. Ainsi, le client comme les utilisateurs peuvent être impliqués dès le début dans le processus de développement. Néanmoins, la condition préalable pour jouir de ces avantages est une gestion de projet très active, puisque les différents cycles doivent être attentivement et constamment surveillés et documentés.

En outre, les nombreuses petites étapes du développement logiciel selon le modèle en spirale ne présentent pas que des avantages, puisque malgré une foule de tests, il n’est pas rare que des bouts de programme inachevés se retrouvent dans le système de production. En conséquence, il existe toujours le risque que d’éventuelles erreurs ou éventuels défauts de conception soient présents également dans le produit final. Par ailleurs, des retards dans le développement peuvent avoir lieu à tout moment si au sein d’un cycle ou au moment de planifier le cycle suivant des décisions importantes portant sur la suite du processus doivent être prises.

Le tableau ci-dessous récapitule les avantages et les inconvénients du modèle en spirale :

Avantages Inconvénients
Modèle générique flexible Effort de gestion important
Implication précoce du client et des utilisateurs possible Les décisions régulières peuvent retarder le processus de développement
Contrôle périodique dû aux risques À cause de la subdivision du processus de développement, des erreurs et incohérences de conception peuvent facilement se retrouver dans le produit final
Coordination parfaite entre exigences techniques et conception Connaissance en analyse et gestion des risques indispensable, mais souvent manquante
Maîtrise maximale des coûts, ressources et qualité du projet logiciel Inadapté aux petits projets aux risques raisonnables
Adapté aux environnements techniques novateurs