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.
-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 concerne l'ensemble des méthodes et règles relatives à la production rationnelle des logiciels.
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.
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.
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.
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èles évolutifs
- Modèle en spirale…
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.
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 ?
Merci de votre visite
Laissez un commentaire