Article Les modèles de développement logiciel
Par Insight Editor / 15 Jul 2016 / Sujets: Cloud Modern infrastructure
Par Insight Editor / 15 Jul 2016 / Sujets: Cloud Modern infrastructure
Quel que soit le type de logiciel ou d’application que vous créez, la création d’un plan de développement et de test est l’étape cruciale de la réussite de tout projet.
Nous passerons en revue dans ce billet les modèles les plus populaires de développement et de gestion du cycle de vie des logiciels, ainsi que leurs avantages et inconvénients respectifs.
Le modèle en cascade est un mode de développement séquentiel et linéaire, souvent utilisé dans le cadre de projets ayant un ensemble défini d’exigences. Comme son nom l’indique, le processus d’élaboration du logiciel se rapproche de l’écoulement d’un cours d’eau, progressant vers le bas tout au long des phases de conception du logiciel.
Ce modèle repose sur l’achèvement de la phase précédente, chacune des activités dépendant de la fin de la précédente pour débuter. Étant donné que le modèle ne permet pas de revenir aux phases déjà achevées, le modèle en cascade devrait être utilisé pour les projets qui ne prévoient pas de changements imprévus au développement à mi-parcours.
Cette approche a été l’un des premiers modèles utilisés pour le développement de logiciels.
Avantages: Simple et compréhensible, le modèle en cascade est une méthode facile à gérer et idéale pour la gestion du cycle de vie des petits projets où les exigences sont établies et prédéterminées en amont.
Inconvénients: En raison de sa structure rigide, le modèle en cascade ne fonctionne pas bien pour les projets complexes où il y a possibilité qu’un changement dans les exigences survienne ou que de tests soient imposés à des moments aléatoires tout au long de la phase de développement logiciel.
Le modèle en V (ou cycle en V), une version évolutive du modèle en cascade, utilise également un flux séquentiel. Cependant, au lieu de se déplacer linéairement vers le bas, le cycle de vie du développement logiciel comporte un infléchissement vers le haut après le codage (pour chacune des phases de test).
Pour chaque phase de la séquence descendante, il existe une phase de test correspondante dans la séquence ascendante suivante. Ce modèle est utilisé pour les projets où les exigences et les outils logiciels sont connus à l’avance.
Avantages: Le modèle en V est un processus simple, idéal pour les petits projets. L’utilisation du modèle en V peut offrir de meilleures chances de succès grâce aux plans de tests pour chacune des étapes de la phase de développement et grâce à la planification régulière des mises à jour tout au long de son cycle de vie.
Inconvénients: Semblable au modèle en cascade, le modèle en V est de nature très rigide et n’est donc pas idéal pour les applications ou les logiciels systèmes qui peuvent nécessiter des changements/des mises à jour imprévus tout au long du cycle de vie du logiciel.
Construit pour pallier les lacunes du modèle en cascade, le modèle incrémentiel se compose d’étapes itératives et incrémentielles de développement. Le modèle incrémentiel est essentiellement composé de plusieurs mini cycles de cascade.
Ce modèle divise le développement en petites sections/étapes et peut permettre aux développeurs de logiciels de tirer profit des apprentissages et des connaissances acquises au cours des étapes de développement antérieures.
Avantages: Le modèle incrémentiel est une excellente solution pour les projets qui ont besoin d’adaptation par rapport aux demandes de changement survenant entre les incréments. Ce modèle présente également l’avantage de pouvoir détecter les problèmes plus tôt dans le développement du logiciel pour une meilleure planification de la gestion du cycle de vie.
Inconvénients: Un inconvénient potentiel du modèle incrémentiel est la nécessité d’une planification et d’une documentation stratégiques. Cette méthode a également tendance à exiger plus de ressources en personnel et en argent. Ce modèle n’est pas idéal pour faire du développement continu, car la séquence suivante ne peut commencer avant que l’étape précédente ne soit terminée.
Abréviation de « Rapid Application Development », le modèle RAD est une version du modèle incrémental. Lors de la mise en œuvre de ce modèle, plusieurs composantes sont développées simultanément comme s’il s’agissait de petits projets individuels. Les différents composants sont ensuite assemblés en prototypes fonctionnels.
Avantages: Le modèle RAD permet de réduire le temps de développement et d’améliorer la rétroaction des clients tout au long du développement du logiciel.
Inconvénients: L’applicabilité du modèle RAD est limitée, car le projet doit être facilement modularisé en plusieurs étapes. Il exige également des développeurs très expérimentés ainsi que d’excellentes compétences en modélisation et en planification. Les problèmes liés à l’assemblage final des composants pourraient entraîner des difficultés imprévues et l’obligation éventuelle d’effectuer un réaménagement des composants pour qu’ils s’adaptent correctement aux autres.
Ce modèle repose sur l’adaptabilité des processus et sur l’engagement de l’utilisateur éventuel du logiciel grâce à la livraison rapide de composants logiciels fonctionnels. Le modèle comporte à la fois des processus itératifs et incrémentiels, car il décompose le développement du produit en petites versions incrémentielles qui sont ensuite livrées par itérations successives.
Le modèle agile repose sur une forte collaboration entre les équipes interfonctionnelles et le client/utilisateur.
Avantages: Le modèle agile réduit le temps nécessaire pour obtenir des fonctionnalités individuelles du système à venir. Elle exige également beaucoup de communication et une rétroaction continue de la part du client ou de l’utilisateur, ce qui peut donner une orientation claire au projet.
Inconvénients: La méthode Agile peut potentiellement dévier de sa trajectoire initiale et déraper, car elle repose sur une interaction avec l’utilisateur final, interaction qui peut manquer de clarté ou de précision. La documentation est également minime pour une stratégie de développement logiciel Agile et nécessite une équipe bien rodée et interfonctionnelle.
Le modèle itératif repose sur la spécification et la mise en œuvre de parties individuelles du logiciel, plutôt que d’essayer de commencer avec des exigences de spécification complètes. Une fois qu’un produit brut est créé dans une itération, il est ensuite examiné et amélioré dans l’itération suivante et ainsi de suite. Le modèle itératif repose l’élaboration par étape du produit en cours de fabrication (conception/développement, test et implémentation).
Avantages: Comme le produit est développé progressivement, il est facile d’identifier les problèmes dès le début en utilisant ce modèle de développement logiciel.
Inconvénients:Comme chaque phase d’itération est rigide et sans processus parallèles, le modèle itératif peut prendre plus de temps et être plus coûteux.
Le modèle en spirale combine des éléments des modèles de développement itératif et en cascade, dans le but de combiner les avantages de la production descendante et ascendante. Le modèle en spirale comporte quatre phases : identification, conception, fabrication, évaluation et analyse des risques. Le projet logiciel passe à plusieurs reprises par ces phases dans des itérations appelées spirales.
Avantages: Le modèle en spirale peut être avantageux, car il gère les risques et divise le développement en phases. Il permet également d’obtenir des estimations plus précises du budget et du calendrier, car les difficultés sont découvertes plus tôt.
Inconvénients: Étant donné que ce modèle est hautement personnalisé, la réorientation du processus peut mener à la confusion. Il faut également que les membres de l’équipe connaissent bien l’évaluation des risques.
Le modèle à prototypage repose sur la création de prototypes d’applications logicielles ou de logiciels système qui sont utilisés pour visualiser les divers composants du logiciel. Ce modèle est utilisé pour limiter les divergences d’idées par rapport aux exigences du logiciel à venir, au moyen d’une collaboration et d’une rétroaction suffisantes avec l’utilisateur.
Avantages: Le modèle prototype peut permettre de réduire le temps et les coûts, avec une forte implication de l’utilisateur.
Inconvénients: Ce modèle peut causer une certaine confusion chez l’utilisateur entre le prototype et le produit final et peut potentiellement ajouter un temps de développement excessif pour le développement du prototype.