NOTIONS DE BASE SUR
LE CYCLE DE DEVELOPPEMENT DES LOGICIELS
1. Définitions :
Le cycle de
vie d'un logiciel est un processus qui décrit les étapes nécessaires pour
développer, maintenir et retirer un logiciel.
Un Prototype est une version
préliminaire d'un produit, généralement utilisée pour tester et valider des
concepts ou des fonctionnalités avant la production finale.
Types de
prototypes :
-Prototype jetable :
maquette exploratoire développée pour mieux comprendre les besoins du client,
évaluer différentes solutions, etc. Développé rapidement et jeté ensuite.
-Prototype évolutif (ou réutilisable): maquette destinée à être complétée/optimisée dans les
prochaines étapes du développement jusqu’à l’obtention du produit final.
Le prototypage est le processus de création d'un
prototype. C’est une méthode de développement logiciel dans lequel un prototype
est construit et testé jusqu’à ce qu’il soit acceptable.
- À chaque étape, un ou plusieurs
prototypes sont soumis au client pour évaluation/révision.
-Permet d'examiner et d'explorer
certains aspects du système pour évaluer et choisir les meilleures
stratégies/solutions.
Le génie logiciel
Le génie logiciel concerne
l'ensemble des méthodes et règles relatives à la production rationnelle des
logiciels.
2. Description du cycle de vie d’un logiciel ;
Voici les principales phases de ce cycle :
1. Analyse et spécifications
Lors de la phase d’analyse,
également appelée phase de spécification, on analyse les besoins de
l’utilisateur ou du système englobant et on définit ce que le logiciel devra
faire. Le résultat de la phase d’analyse est consigné dans un document appelé «
cahier des charges du logiciel ou spécification du logiciel ».
2.Conception
et spécifications (ou design)
La phase
d’analyse est suivie de la phase de conception, généralement décomposée en deux
phases successives :
-Conception
générale ou conception architecturale (Choix des modules, interfaces entre
modules…)
-Conception
détaillée : La conception détaillée affine la conception générale. Elle
commence par décomposer les entités découvertes lors de la conception générale
en entités plus élémentaires (choix du langage. Conception de chaque module).
3. Programmation
ou Développement (codage du logiciel) :
Après la
conception détaillée, on peut passer à la phase de codage, également appelée
phase de construction, phase de réalisation ou phase d’implémentation. Lors de
cette phase, la conception détaillée est traduite dans un langage de
programmation (Écriture du code source selon les spécifications définies).
4. Tests
qualité :
La phase
d’implémentation est suivie de la phase de test. Durant cette phase, les
composants du logiciel sont évalués et intégrés, et le logiciel lui-même est
évalué pour déterminer s’il satisfait la spécification élaborée lors de la
phase d’analyse. Cette phase est en général subdivisée en plusieurs phases.
Lors des tests unitaires, on évalue chaque composant
individuellement pour s’assurer qu’il est conforme à la conception détaillée.
Si ce n’est déjà fait, il faut élaborer pour chaque composant un jeu de données
de tests. Il faut ensuite exécuter le composant avec ce jeu, comparer les
résultats obtenus aux résultats attendus, et consigner le tout dans le document
des tests unitaires. S’il s’avère qu’un composant comporte des erreurs, il est
renvoyé à son auteur, qui devra diagnostiquer la cause de l’erreur puis
corriger le composant. Le test unitaire de ce composant est alors à reprendre
Après avoir
effectué avec succès la phase des tests de tous les composants, on peut
procéder à leur assemblage, qui est effectué pendant la phase d’intégration.
Pendant cette phase, on vérifie également la bonne facture des composants
assemblés, ce qu’on appelle le test d’intégration.
5.
Installation (Déploiement) :
Après avoir
intégré le logiciel, on peut l’installer dans son environnement d’exploitation,
ou dans un environnement qui simule cet environnement d’exploitation, et le
tester pour s’assurer qu’il se comporte comme requis dans la spécification
élaborée lors de la phase d’analyse.
6.
Maintenance :
Après
l’installation, suit la phase d’exploitation et de maintenance. Le logiciel est
maintenant employé dans son environnement opérationnel, son comportement est
surveillé et, si nécessaire, il est modifié. Cette dernière activité s’appelle
la maintenance du logiciel.
3. Description de quelques approches de cycle de développement des
logiciels
Il existe
plusieurs approches pour le cycle de développement des logiciels, chacune ayant
ses propres caractéristiques et avantages. Voici quelques-unes des approches
les plus courantes :
a-Modèle
en cascade (Waterfall)
Les étapes
sont réalisées de façon strictement séquentielle. C'est un modèle linéaire où
chaque phase doit être terminée avant de passer à la suivante.
Avantages :
-Facilité de gestion et de documentation.
-Plan simple
de ce qu’il faut faire.
-facile à
comprendre, clarté des étapes, permettant un suivi facile.
Inconvénients :
-Peu flexible
face aux changements.
-Les erreurs
détectées tardivement peuvent être coûteuses à corriger.
-Hypothèses souvent irréalistes que l’on peut dès le
départ définir complètement en détail :
·
Ce qu’on veut réaliser
·
Les résultats intermédiaires obtenus.
-Ne reflète pas la façon dont le code est réellement
développé.
-Trop rigide,
manque de flexibilité pour imprévus.
-Pas de «
feedback » avant la livraison au client.

b- V-Model
Le Modèle en V
met l'accent sur la validation et la vérification à chaque phase. L’attention
centrée sur la correction : vérification et validation. Chaque phase de
développement a une phase de test correspondante.
Avantages :
Montre comment
les activités de « test » sont liées à celles « d’analyse et de
conception ».
- Bonne
traçabilité des exigences.
-Idéal pour
des projets avec des exigences bien définies.
Inconvénients
Manque de
« feedback », pas de résultats intermédiaires dont on peut discuter
avec le client.

c-Autres modèles
-Modèle par prototypage
-
Modèles évolutifs
-
Modèle en spirale…
4. Les principaux acteurs intervenant dans la production d’un
logiciel.
Dans la production d'un logiciel, plusieurs acteurs
clés interviennent à différentes étapes du cycle de développement. Voici les
principaux :
1. Analystes de systèmes
· Rôle : Recueillent et analysent les exigences des
utilisateurs.
· Importance : Écrivent des spécifications détaillées
qui guident le développement.
2. Développeurs ou Programmeur
· Rôle : Écrivent le code source du logiciel.
· Importance : Transforme les spécifications en un
produit fonctionnel.
3. Testeurs / QA (Assurance Qualité)
· Rôle : Effectuent des tests pour identifier les
bugs et vérifier le bon fonctionnement.
· Importance :
Garantissent la qualité et la fiabilité du logiciel avant sa mise en
production.
4. Le graphiste ou Designers UI/UX
· Rôle : Conçoivent l'interface utilisateur et
l'expérience utilisateur.
· Importance :
Assurent que l'interface du logiciel est intuitive et agréable à utiliser.
EXERCICES
CONTROLE DE CONNAISSANCES
1.Definir : cycle de vie du
logiciel, prototypage.
2. Qu’est-ce qui garantit la
qualité et la fiabilité du logiciel
3. Cite
02 approches de cycle de développement des logiciels
4.
Cite 02 acteurs intervenant dans le cycle de développement des logiciels
5.Quel est l’acteur
qui transforme les spécifications en un produit fonctionnel.
EXERCICE I : Mets les étapes du développement logiciel
suivantes dans le bon ordre chronologique :
-
Tests et validation
-
Définition des besoins
-
Conception
-
Maintenance
-
Codage (programmation)
-
Livraison / déploiement
EXERCICE II : Relier chaque
phase à sa description
|
COLONNE
A |
COLONNE
B |
|
1.
Tests 2.
Développement 3.specifications 4.
Déploiement 5.
Conception 6.
Maintenance |
a.
Planification de la structure b.
Vérification du bon fonctionnement du logiciel c.
Mise en service du logiciel auprès des utilisateurs d.
Correction des bugs et mise à jour après le lancement e.
Écriture du code par les programmeurs f. Planification de la structure technique du
logiciel
|
EXERCICE III :
Associe chaque métier à sa description.
|
COLONNE
A |
COLONNE
B |
|
1.
Développeur 2.Analyste
fonctionnel 3.
Testeur 4.
Chef de projet 5. graphiste |
a.
Il organise et suit l’avancement du projet b.
Il définit les besoins du client et rédige un cahier des charges. c.
Il écrit le code du logiciel. d.
Il vérifie que le logiciel fonctionne correctement. e.
Conçoit l'interface utilisateur et l'expérience utilisateur |
EXERCICE IV :
Imagine que tu veux créer une
application mobile pour aider les élèves à réviser leurs leçons. Réponds aux
questions suivantes :
1. Quel est le besoin à satisfaire ?
2. Quelles fonctionnalités principales
aimerais-tu dans l’application ?
3. Quels métiers seraient nécessaires
pour développer cette application ?
4. Pourquoi les tests sont-ils
importants avant de publier l’application ?
CORRIGES
CONTROLE DE CONNAISSANCES
1.- Le cycle de vie d'un logiciel est un processus qui décrit les étapes
nécessaires pour développer, maintenir et retirer un logiciel.
- Le prototypage est le processus de
création d'un prototype.
2. les tests
3. modèle en cascade et modèle en
V
4. développeur, analyste
5.programmeur
ou développeur.
EXERCICE
I :
1. Spécification des
besoins
2. Conception
3. Développement
4. Tests
5. Déploiement
6. Maintenance
EXERCICE II : Relier chaque phase à sa
description
1.b
2.d
3.a
4.c
5.f
6.d
EXERCICE III : Associe chaque métier à sa description.
1.c
2.b
3.d
4.a
5.e
EXERCICE IV :
1.
-faciliter et optimiser le
processus de révision des leçons pour les élèves.
-lutter contre l’oubli et renforcer
la mémorisation.
-Proposer des méthodes de révision
variées et interactives.
-permettre aux élèves de suivre
leurs progrès
-réduire le stress lie aux
examens
-compléter les méthodes de révision
principales…
2.
-importation/saisie des matières
et des leçons
-organiser les leçons par matières
par matière, chapitre, thème…
-définir des priorités et des échéances
-Planification de la révision
3. Quels métiers seraient
nécessaires pour développer cette application ?
-analyste
-développeurs
-testeurs
-maintenanciers
4. Ils garantissent la qualité et la fiabilité du
logiciel avant sa mise en production.