Chapitre 2 - Cycles de Develeppement Logiciels
Chapitre 2 - Cycles de Develeppement Logiciels
Chapitre 2 - Cycles de Develeppement Logiciels
Bien qu’il existe plusieurs modèles de cycles de vie de développement logiciels, quatre
activités fondamentales sont communes à la plupart de ces modèles : il s’agit de la
spécification logicielle, le développement logiciel (conception + implémentation logiciel),
la validation logicielle et l’évolution logiciel. La manière dont ces activités sont menées
dépend du type de logiciel, des personnes et des structures organisationnelles impliquées.
Il n'y a pas de bonne ou de mauvaise façon d'organiser ces activités.
• L’étude de faisabilité : Une estimation est faite pour savoir si les besoins des
utilisateurs identifiés peuvent être satisfaits en utilisant les technologies logicielles
et matérielles disponible. L'étude examine si le système proposé sera rentable d'un
point de vue commercial, s'il peut être développé dans le cadre d’un certain nombre
de contraintes budgétaires et s’il est pratiquement et technologiquement réalisable.
Une étude de faisabilité doit être relativement bon marché et rapide. Le résultat
devrait éclairer la décision de procéder ou non à une analyse plus détaillée.
• La validation des exigences : Lors de Cette activité, les exigences sont vérifiées
relativement à leur réalisme, leur cohérence et leur exhaustivité. Au cours de ce
processus, des erreurs dans le document des exigences sont inévitablement
découvertes. Il doit ensuite être modifié pour corriger ces derniers.
Bien entendu, les activités du processus d’ingénierie des exigences ne sont pas
simplement exécutées dans un ordre strict. L'analyse des exigences se poursuit pendant la
définition et la spécification, et de nouvelles exigences apparaissent tout au long du
processus. Par conséquent, les activités d'analyse, de définition et de spécification sont
entrelacées.
• Conception des composants : Les services sont alloués aux composants et les
interfaces de ces composants sont conçues.
• Conception d'algorithmes : Les algorithmes utilisés pour fournir les services sont
conçus en détail et spécifiés
Sauf pour les petits programmes, les systèmes ne doivent pas être testés comme une
seule unité monolithique. La figure 3 montre un processus de test en trois étapes où les
composants du système sont testés, le système intégré est testé et, enfin, le système est testé
avec les données du client. Les étapes du processus de test sont :
• Les tests des composants ou test unitaires : Les composants individuels sont
testés pour s'assurer qu'ils fonctionnent correctement. Chaque composant est testé
indépendamment, sans autres composants du système. Les composants peuvent être
des entités simples telles que des fonctions ou des classes d'objets, ou peuvent être
des regroupements cohérents de ces entités.
Figure 3 : Les phase de tests dans le processus de développement logiciels
• Les tests d’intégration système : Les composants sont intégrés pour constituer le
système. Ce processus concerne la recherche d'erreurs résultant d'interactions
imprévues entre les composants et de problèmes d'interface de composants. Pour
les grands systèmes, il peut s'agir d'un processus en plusieurs étapes dans lequel les
composants sont intégrés pour former des sous-systèmes qui sont testés
individuellement avant d'être eux-mêmes intégrés pour former le système final.
La flexibilité des systèmes logiciels est l'une des principales raisons pour lesquelles de
plus en plus de logiciels sont incorporés dans de grands systèmes complexes.
Contrairement aux systèmes matériels, les modifications peuvent très facilement être
apportées au logiciel à tout moment pendant ou après le développement du système.
Historiquement, il y a toujours eu une scission entre le processus de développement logiciel
et le processus d'évolution logiciel encore appelé maintenance logicielle. Des gens
considèrent le développement logiciel comme une activité créative où un système logiciel
a été développé d'un concept initial à un système opérationnel.
Le cycle de vie en cascade peut être utilisé lorsqu’un projet est relativement simple,
c’est-à-dire lorsqu’on a la quasi-certitude que les besoins ou exigences n’évolueront pas en
cours de projet. En pratique, une étape ne démarre que si la précédente est terminée et
validée. La nature séquentielle du modèle en cascade ne permet pas de revenir en arrière,
d'annuler ou de modifier des aspects d’une étapes du cycle de développement déjà réalisé.
Ce modèle est le mieux adapté lorsque les développeurs ont déjà conçu et développé des
logiciels similaires dans le passé et connaissent tous ses domaines.
Lorsqu'un modèle incrémental est utilisé, le premier incrément est souvent un produit
de base. Autrement dit, les exigences de base sont satisfaites, mais de nombreuses
fonctionnalités supplémentaires (certaines connues, d'autres inconnues) ne sont pas livrées.
Le produit principal est utilisé par le client ou fait l'objet d'un examen détaillé. À la suite
de l'utilisation et / ou de l'examen, un plan est développé pour le prochain incrément. Le
plan traite de la modification du produit principal pour mieux répondre aux besoins du
client et de la fourniture de fonctionnalités et de fonctionnalités supplémentaires. Ce
processus est répété après la livraison de chaque incrément, jusqu'à ce que le produit
complet soit produit.
L'inconvénient majeur du modèle de cascade est que nous ne passons à l'étape suivante
que lorsque la précédente est terminée et qu'il n'y a aucune chance de revenir en arrière si
quelque chose ne va pas dans les étapes ultérieures. Le modèle en V vient offrir une
solution à cette limite. Il fournit des moyens de tester le logiciel à chaque étape du cycle.
À chaque étape, des plans de test et des cas de test sont créés pour vérifier et valider le
produit conformément aux exigences de cette étape. Par exemple, lors de l'étape de collecte
des exigences, l'équipe de test prépare tous les cas de test en correspondance avec les
exigences. Plus tard, lorsque le produit est développé et est prêt pour les tests, les cas de
test de cette étape vérifient la validité du logiciel par rapport aux exigences à ce stade.
Figure 6 : Modèle en V
3.4. Le modèle en spirale
• Planification : tâches requises pour définir les ressources, les délais et autres
informations relatives au projet.
• Analyse des risques - tâches requises pour évaluer les risques techniques et de
gestion.
• Évaluation des clients - tâches requises pour obtenir les commentaires des clients
en fonction de l'évaluation des représentations logicielles créées pendant la phase
d'ingénierie et mises en œuvre pendant la phase d'installation.
Figure 7 : Modèle en spirale
4. Conclusion
Ce chapitre nous ayant permis dans un premier temps d’appréhender la notion de cycle
de vie de développement logiciel et de comprendre pourquoi est-ce qu’il est nécessaire de
découper le processus de développement logiciel en ensemble d’activités vérifiables et
validables, nous avons ensuite présenté les activités les est plus récurrentes du processus
de développement logiciels et pour finir, nous avons identifié et présenté les principaux
modèles génériques de cycle de vie de développement logiciel. Dans le chapitre suivant
nous avons aborderons dès lors en détail la première du cycle de développement à savoir
l’ingénierie des besoins logiciels.