Vous êtes sur la page 1sur 29

Le processus du logiciel

Quel est le cycle de vie d’un logiciel et


ses modèles?

1
S.HAFOUDI - Génie logiciel
Le processus de logiciel
• ÉTAPES DU CYCLE DE VIE DU DEVELOPPEMENT D’UN
LOGICIEL:
● Etude de faisabilité
● Analyse des besoins
● Spécification
● Conception
● Programmation
● Validation et vérification
● Livraison
● Maintenance
2
Etude préalable ou étude de faisabilité

Elle concerne la définition globale du problème.

Questions:
Pourquoi développer le logiciel ?
Y a-t-il de meilleures alternatives ?
Comment procéder pour faire ce développement ?
Y a-t-il un marché pour le logiciel ?
Quels moyens faut-il mettre en œuvre ? A-t-on le budget, le
personnel,
le matériel nécessaires ?

3
Analyse des besoins
 Comprendre les besoins du client
● Objectifs généraux, environnement du futur système,
ressources disponibles, contraintes de performance…
● Fournie par le client (expert du domaine d'application, futur
utilisateur…)

4
Spécification

● Établir une description claire de ce que doit faire le logiciel


(fonctionnalités détaillées, exigences de qualité, interface…)
● Clarifier le cahier des charges (ambiguïtés, contradictions) en
listant les exigences fonctionnelles et non fonctionnelles

5
Exigences fonctionnelles et non fonctionnelles

Exigences fonctionnelles
Décrivent les fonctionnalités du système ,ce qu’un système doit
faire .
Exemple : Application de location de véhicule
- Ajouter Client, Ajouter véhicule, attribuer un client à un
véhicule….
Exigences non fonctionnelles
Définissent les propriétés et contraintes du système Exemple :
Fiabilité,Temps de réponse, Taille de stockage
 Exigences sur le processus de développement
Exemple :Environnement de développement , Langage de
programmation , Méthode de développement

6
Conception

Élaborer une solution concrète réalisant la spécification


Conception globale :description architecturale en
composants (avec interface et fonctionnalités)

7
Conception

Conception détaillé
Détailler le fonctionnement des composants
Définir quelques algorithmes, la représentation des
données, ...
des tests unitaires sont définis pour s’assurer que les
composants réalisés sont bien conformes à leurs descriptions

8
Programmation

Implantation de la solution conçue


● Choix de l'environnement de développement, du/des langage(s)
de programmation, de normes de développement...

9
Validation et vérification

• Validation : assurer que les besoins du client sont satisfaits (au


niveau de la spécification, du produit fini...)

• Vérification : assurer que le logiciel satisfait sa spécification

10
Maintenance

• Corrective : identifier et corriger des erreurs trouvées après


la livraison

• Adaptative : adapter le logiciel aux changements dans


l'environnement (format des données, environnement
d'exécution...)

• Perfective : améliorer la performance, ajouter des


fonctionnalités, améliorer la maintenabilité du logiciel.

11
Modèles génériques
Différents modèles :
• Linéaire:
– en cascade
– en V
• Non linéaire:
– Prototypage
– Modèles incrémentaux
– en spirale

12
Cascade (Waterfall model)

Le modèle en cascade (Waterfall model) est le plus classique


des cycles de vie.

Cycle de vie linéaire sans aucune évaluation entre le début du


projet et la validation

Le projet est découpé en phases successives dans le temps

A chaque phase correspond une activité principale bien


précise produisant un certain nombre de livrables

Chaque phase ne peut remettre en cause que la phase


précédente
13
Cascade (Waterfall model)

14
Cycle de vie en cascade avec retour en arrière

15
Cascade
• Problèmes
– Il est difficile de séparer les étapes
– On peut l’utiliser quand les besoins sont bien définis et
ils sont stables.
• Avantages
– Bien documenté à chaque phase
• Désavantages
– Rigide (on ne peut pas de répondre au besoins
nouveaux ou modifiés des clients)

16
Cycle de vie en V

A ce jour, le cycle en V reste le cycle de vie le plus utilisé.


C’est un cycle de vie orienté test :

A chaque activité créative (spécification, conception et


codage) correspond une activité de vérification (validation,
intégration, tests unitaires).

Chaque phase en amont prépare la phase correspondante de


vérification (la vérification est prise en compte au moment
même de la création).

17
Cycle de vie en V

18
Cycle de vie en V
Avantages:
La préparation des dernières phases (validation-vérification) par les
premières (construction du logiciel), permet d’éviter d’énoncer une
propriété qu’il est impossible de vérifier objectivement après la
réalisation.
Inconvénients:
Construit-on le bon logiciel ? Le logiciel est utilisé très (trop) tard.
• Il faut attendre longtemps pour savoir si on a construit le bon
logiciel.
• Difficile d’impliquer les utilisateurs lorsque qu’un logiciel
utilisable n’est
disponible qu’à la dernière phase

Idéal quand les besoins sont bien connus, quand l’analyse et la conception
sont claires

19
Prototypage
Principe :
● Développement rapide d'un prototype avec le client pour valider
ses besoins
● Écriture de la spécification à partir du prototype, puis processus
de développement linéaire

Avantage : Validation concrète des besoins, moins de


risques d'erreur de spécification
20
Prototypage
• Le prototypage Jetable : ici, le squelette du logiciel n’est
créé que dans un but et dans une phase particulière du
développement.

• Le prototypage Evolutif : ici, on conserve tout, au long


du cycle de développement. Il est amélioré et complété
pour obtenir le logiciel final

21
Prototypage

Avantage :
Les efforts consacrés au développement d’un prototype sont le
plus souvent compensés par ceux gagnés à ne pas développer de
fonctions inutiles

Mais :
Les décisions rapides sont rarement de bonnes décisions
Le prototype évolutif donne-t-il le produit demandé ?

22
Modèle incrémental

Le produit est délivré en plusieurs fois, de manière incrémentale, c’est à dire


en le complétant au fur et à mesure et en profitant de l’expérimentation
opérationnelle des incréments précédents.

23
Modèle incrémental
Avantage :
•chaque développement est moins complexe;
•les intégrations sont progressives ;
• possibilité de livraisons et de mises en service après chaque
incrément ;
Limite :
• la remise en cause du noyau de départ ou des incréments
précédents;
•ne pas pouvoir intégrer de nouveaux incréments

24
Modèle en spirale

25
Modèle en spirale
Avantage :
• Meilleure maitrise des risques
• Flexibilité dans les exigences
• Bon pour les grands projets complexes.
• Bon pour la satisfaction du client

Risque :
• Il ne convient pas aux petits projets car il est coûteux
• Difficulté dans la gestion du temps. Comme le nombre de
phases est inconnu au début du projet, l’estimation du temps
est donc très difficile
• La spirale peut durer indéfiniment
26
Documentation

Objectif : Traçabilité du projet


Pour l'équipe
● Regrouper et structurer les décisions prises
● Faire référence pour les décisions futures
● Garantir la cohérence entre les modèles et le produit
Pour le client :
● Donner une vision claire de l'état d'avancement du projet
Base commune de référence :
 Personne quittant le projet : pas de perte d'informations
 Personne rejoignant le projet : intégration rapide

27
Modélisation

Modèle : Simplification de la réalité, abstraction, vue


subjective .

En génie logiciel :
● Modélisation = spécification + conception
● Aider à la réalisation d'un logiciel à partir des besoins du
client

28
29

Vous aimerez peut-être aussi