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.- cycle
de vie du logiciel : 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.
- prototypage : Le prototypage est le processus de création d'un prototype.
2. les tests
3. v-model
4. développeur,
analyste
5.progrmmeur 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.