Académique Documents
Professionnel Documents
Culture Documents
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é
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
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
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
9
Validation et vérification
10
Maintenance
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)
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
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
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
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
27
Modélisation
En génie logiciel :
● Modélisation = spécification + conception
● Aider à la réalisation d'un logiciel à partir des besoins du
client
28
29