Académique Documents
Professionnel Documents
Culture Documents
Chapitre 1 Introduction
3% 2%
19% 29%
Utilisés directement
Utilisés après quelques modifications
Utilisés après de fortes modifications
Jamais utilisés
Payés et pas livrés
80%
60%
40%
20%
0%
4% 10%
20%
52%
76%
Souvent, 13%
Jamais, 45%
Parfois, 16%
Rarement, 19%
●
diicile de mesurer la qualité
●
conséquences critiques causées par modifications infinies
●
mises à jour et maintenance dues à l'évolution rapide de la
technologie
●
difficile de raisonner sur des programmes
●
défaillances logicielles principalementhumaines
De façon transversale
●
Documentation : essentielle pour le suivi de projet et
la communication au sein de l'équipe de projet
●
Standardisation/normalisation : aide à la communication pour le
développement, la maintenance et la réutilisation
En pratique :
Pas de processus idéal
●
●
Choix du processus en fonction des contraintes (taille des
équipes, temps, qualité...)
●
Adaptation de « processus types » aux besoins réels
●
Spécification
●
Conception
●
Programmation
●
Validation et vérification
● Livraison
● Maintenance
Analyse
des besoins
Spécification
Conception
Programmation
Validation
Cahier des
Besoins charges Logiciel
du client
fonctionnel
Vérification
S.BenSalem - Génie logiciel 25
Méthodes de validation et vérification
Méthodes de validation :
●
Revue de spécification, de code
●
Prototypage rapide
●
Développement de tests (extreme programming)
exécutables
Méthodes de vérification :
●
Test (à partir de la spécification)
●
Preuve de programmes
●
Model-checking (vérification de modèles)
exigences
fonctionnelles et non fonctionnelles)
●
Cahier de tests
Description des cas de test (couverture des exigences de test)
●
Dossier de tests
Implémentation et exécution des tests
●
Rapport de test
●
dans
l'environnement (format des données, environnement
d'exécution...)
Perfection
●
: améliorer la performance, ajouter des
fonctionnalités, améliorer la maintenabilité du logicie
l
7%
6%
8% Spécification
Conception
Programmation
Intégration/Test
19% 60% Maintenance
80
Intégration/Test
60
Programmation 40
Conception
20
Spécification
Conception Dossier de
conception
détaillée
Programmation
Code documenté +
et test unitaire
Rapport de tests
unitaires
Intégration
et test système Rapport de validation
Livraison
et maintenance
S.BenSalem - Génie logiciel 31
Processus en cascade
Caractéristiques :
Hérité des méthodes classiques d'ingénierie
●
Recette : faite par le client, validation par rapport aux besoins initiaux
(tests, validation des documents, conformité aux normes...)
Analyse Écriture
Recette
des besoins Validation
Tests d'acceptation
Spécification et système
Conception Intégration et
architecturale tests d'intégration
Conception
Tests unitaires
détaillée
Programmation
Cahier
Besoins des
Prototype Logiciel
du client
charges
fonctionn
el
changements
Avantages : développement rapide en adéquation avec les
besoins
Inconvénients : pas de spécification, documentation = tests,
maintenance ?
Pour l'équipe :
Regrouper et structurer les décisions prises
●
Pour le client :
Donner une vision claire de l'état d'avancement du projet
●
Problèmes :
Ambiguïtés : plusieurs sens d'un même mot selon les personnes
●
ou les contextes
●
Contradictions, oublis, redondances difficiles à détecter
●
Difficultés à trouver une information
●
Mélange entre les niveaux d'abstraction (spécification vs.
conception)
Langages formels :
✔ Avantages : précis, analysables automatiquement, utilisables
pour automatiser la vérification et le test du logiciel
✗Inconvénients : apprentissage et maîtrise difficiles
En génie logiciel :
●
Modélisation = spécification + conception
●
Aider la réalisation d'un logiciel à partir des du client
besoins
Notations graphiques
●
normalisées :
…de modélisation
Abstraction du fonctionnement et de la structure du système
●
Spécification et conception
●
…unifié :
Fusion de plusieurs notations antérieures : Booch, OMT, OOSE
●
●
Standard défini par l'OMG (Object Management Group)
●
Dernière version : UML 2.4.1 (août 2011)
formel
●
Vue Vue
d'implant logiq
ation ue
Vue des cas
d'utilisation
déploiement
●
Diagramme de séquence
Diagramme de
●
●
Diagramme de communication
paquetages ●
Diagramme global d'interaction
Diagramme de structure
● ●
Diagramme de temps
composite
S.BenSalem - Génie logiciel 49
●
Diagramme de profils
Exemple d'utilisation des diagrammes
●
Diagrammes de cas d'utilisation : besoins des utilisateurs
●
Diagrammes de séquence : scénarios d'interactions entre les
Spécification
●
Diagrammes de classes : structure interne du logiciel
●
Diagrammes d'objet : état interne du logiciel à un instant donné
Conception
●
Diagrammes états-transitions : évolution de l'état d'un objet
●
Diagrammes de séquence : scénarios d'interactions avec
utilisateurs oulesau sein du logiciel
●
Diagrammes de composants : composants physiques du logiciel
●
Diagrammes de déploiement : organisation matérielle du logiciel
S.BenSalem - Génie logiciel 50
Ateliers et Outils de Génie Logiciel
Chapitre 2: Cahier de charge
53
Définition AFNOR
55
Produire un CDC: Méthodologie (2)
• Le Cahier des Charges Fonctionnel est la conclusion des
travaux d'analyse de la valeur et d'analyse fonctionnelle
qui symbolisent la démarche d'expression du besoin :
• Orienter l'étude : Du général au spécifique.
• Premiers points de la démarche :
• regarder le projet d'un œil extérieur
• Prendre du recul
57
Traduire le besoin en fonctions
58
Formaliser les travaux
59
Contrôler le CDC besoin
60
Valider le CDC besoin
61
Exemple de CDC selon
IEEE std 830 (1)
I. Introduction
II.Contexte de la réalisation
1. Objectifs
2. Hypothèses
3. Bases méthodologiques
III.Description générale
1. Environnement du projet
2. Fonctions générales du système
3. Caractéristiques des utilisateurs
4. Configuration du système
5. Contraintes générales du développement, d’exploitation et
de maintenance Contraintes de développement
Contraintes d’exploitation
Maintenance et évolution du système 62
Exemple de CDC selon
IEEE std 830 (2)
IV. Description des interfaces externes du logiciel
1. Interface matériel / logiciel
2. Interface homme / machine
3. Interface logiciel / logiciel
V. Description des objets
1. Définition des objets
Identification de l’objet i
Contraintes sur l’objet i
VI.Description des fonctions
1. Définitions des fonctions
Identification de la fonction i
Description de la fonction i
Contraintes opérationnelles sur la fonction i
63
Exemple de CDC selon
IEEE std 830 (3)
2. Conditions particulières de fonctionnement
1. Performances
2. Capacités
3. Modes de fonctionnement
4. Contrôlabilité
5. Sûreté
6. Intégrité
7. Conformité aux standards
8. Facteurs de qualité
VII- Justification des choix effectués
VIII- Glossaires
IX. Références
1. Annexes
2. Index 64
Exemple de CDC: Gestion
d’une bibliothèque (1)
Fonctionnalités
65
Exemple de CDC: Gestion
d’une bibliothèque (2)
Le bibliothécaire communique avec les emprunteurs.
L'outil assiste le bibliothécaire dans sa tâche.
Un emprunteur peut réserver un livre ou un magazine qui
n'est pas disponible (déjà prêté ou non encore répertorié).
Lorsqu'un livre ou un magazine devient disponible (rendu ou
acheté), l'emprunteur qui l'a réservé est averti.
La réservation est annulée lorsque le livre ou le magazine est
prêté.
Une réservation peut être annulée à tout moment.
Les création, mise à jour et destruction d'informations
relatives aux titres, emprunteurs, prêts et réservations
doivent être aisées.
66
Exemple de CDC: Gestion
d’une bibliothèque (3)
Contraintes non fonctionnelles
L'application doit tourner dans tout environnement Unix ou Windows.
L'application doit avoir une IHM agréable.
L'application doit pouvoir être étendue à d'autres fonctionnalités.
Limitations
68
Exercice: Gestion d’une projet
69
70