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.