Modèle en spirale


Le modèle en spirale est une approche du développement logiciel qui peut être considérée comme une réponse aux inconvénients du modèle en cascade. Le modèle en spirale décrit le cycle de développement d’un logiciel au moyen de spirales, qui sont répétées jusqu’à ce que le produit fini puisse être livré. Le modèle en spirale est également appelé modèle incrémental. Le produit est continuellement travaillé et les améliorations se déroulent souvent en très petites étapes.

Une caractéristique clé du modèle en spirale est la minimisation des risques dans le développement logiciel, ce qui peut entraîner une augmentation des coûts globaux, ainsi que plus d’efforts et un lancement différé. Ces risques sont contrés par l’approche progressive en réalisant d’abord des prototypes, qui sont répétés dans les spirales ou les cycles de développement de logiciels au moins une fois. Le modèle en spirale est également générique et peut être combiné avec d’autres méthodes de développement agile classiques, c’est pourquoi il est également appelé modèle de second ordre.

Informations générales

Le modèle en spirale a été présenté par Barry W. Boehm dans son essai A Model of Software Development and Enhancement. À l’heure actuelle, le waterfall model ou modèle en cascade et les inconvénients associés ont été fréquemment discutés. Contrairement à d’autres modèles tels que le "code and fix" ou le modèle en cascade, ce modèle-là s’axe sur les risques. L’identification et la résolution des risques jouent un rôle important dans les différents cycles du projet après la définition des objectifs et des conditions. L’accent est mis sur les facteurs possibles qui peuvent causer des incertitudes pour le logiciel ou l’ensemble du projet. Si les risques peuvent être contrôlés de manière rentable, rien n’empêche la réussite du projet selon l’hypothèse. Les approches pour minimiser ces risques sont, par exemple, les prototypes, les simulations, les tests de référence ou les entretiens avec les utilisateurs. Pour certains types de risques, toute la procédure peut même être révisée et différemment structurée. Des interventions dans la gestion sont possibles à chaque cycle du projet et d’autres approches de développement peuvent être adaptées.

Comment ça fonctionne

Le modèle en spirale se caractérise par les cycles suivants (aussi appelés quadrants) :[1]

  • objectif et décision alternative : les objectifs sont déterminés conjointement avec le client. Dans le même temps, les alternatives possibles sont discutées et les conditions cadres sont spécifiées (par exemple le système d’exploitation, l’environnement et langage de programmation).
  • analyse et évaluation des risques : les risques potentiels sont identifiés et évalués. Les alternatives en question sont également évaluées, tandis que les risques sont enregistrés, estimés puis réduits à l’aide de prototypes, des simulations et des logiciels d’analyse. Dans ce cycle, plusieurs prototypes existent sous forme de modèles de conception ou de composants fonctionnels.
  • développement et test : les prototypes sont encore plus étendus et des fonctionnalités sont ajoutées. Le code réel est écrit, testé et migré vers un environnement de test plusieurs fois jusqu’à ce que le logiciel puisse être implémenté dans un environnement productif.
  • planification du cycle suivant : le cycle à venir est planifié à la fin de chaque cycle. Si des erreurs se produisent, les solutions sont recherchées. Si une meilleure alternative est une solution envisageable, elle sera préférée au sein du cycle suivant.

La force motrice la plus importante du modèle en spirale est l’analyse est l’évaluation des risques. Tout risque qui menace le projet est censé être identifié dès le début. L’avancement du projet dépend de manière décisive de la manière dont les risques peuvent être limités ou supprimés. Le projet ne sera considéré comme réussi quand il n’y aura plus de risque. Le but du cycle est de produire un produit qui est en amélioration continue. Le logiciel ou l’application est constamment affiné. Le modèle en spirale est incrémental, mais pas nécessairement répétitif. Les répétitions ne se produisent que lorsque des risques, des erreurs ou des conflits menacent le projet. Ensuite seulement, le produit passera à un cycle suivant, ce qu’on appellera une répétition ou une itération.

Avantages/inconvénients

  • Le modèle en spirale est souvent utilisé pour des projets plus importants qui sont soumis à des risques. Comme ces risques ont un impact monétaire direct, le contrôle des budgets pour les clients et les entreprises de développeurs est central. Le modèle en spirale est surtout utilisé dans les nouveaux environnements techniques, car le risque est réel.
  • Les conflits entre les prérequis d’un logiciel et sa conception sont effectivement évités grâce à l’approche cyclique : ces prérequis peuvent être constamment vérifiés et si nécessaire, modifiés.
  • Retours et commentaires peuvent être obtenus auprès des utilisateurs, des développeurs et des clients lors des premières phases du projet. Cependant, cette structure nécessite également une gestion qui prend en compte les cycles du produit et peut donc répondre rapidement aux risques. Le contrôle de ces projets est donc relativement complexe et nécessite également une bonne documentation pour que tous les changements soient enregistrés. [2]
  • Bien que le logiciel soit testé sous divers aspects pendant le cycle de développement logiciel et du test (test des unités, d’acceptation et d’intégration), il arrive souvent que les prototypes soient transférés dans le système de production. Il existe donc un risque que d’autres erreurs et des incohérences conceptuelles soient saisies dans le produit final.
  • Dans les cas où des décisions doivent être prises sur les cycles suivants, il existe un risque que des boucles se forment et que le projet prenne plus de temps si de mauvais choix sont faits. Pour cette raison, alternatives et évaluations sont importantes.

Importance pour la programmation

Contrairement à un modèle séquentiel (comme le modèle en cascade) disposé en phases successives, le modèle en spirale esquisse le cycle de développement d’un logiciel qui doit traverser plusieurs étapes. Cette approche ressemble donc davantage à un prototypage qu’avec les approches classiques. Le modèle en spirale est censé éviter les inconvénients, tandis que d’autres modèles mettent l’accent sur les avantages. En se concentrant sur la réduction des risques, ce modèle comporte une composante financière qui peut être pertinente pour les preneurs de décisions. Grâce aux discussions avec les clients, aux analyses et aux études de faisabilité, des projets de grande envergure peuvent être mis en oeuvre et leur impact économique peut être surveillé. Dans quelle mesure les méthodes agiles comme le scrum, la programmation extrême ou le DevOps sont de meilleurs choix dépendent de différents facteurs, notamment de la portée du projet, du budget ou du niveau requis de soutien et de maintenance. Plus la flexibilité est requise, plus les méthodes agiles peuvent entrer en jeu.

Références

Lien web