Title: Informatique de Base
1Informatique de Base
- Techniques dInspection du logiciel
2Plan
- Inspection du logiciel
- Définition/objectif
- Objets
- Processus
- Coûts/avantages
- Comparaison
- Parcours structurés (structured walkthroughs)
- Tests
3Inspection
- Origine
- Michael Fagan (IBM)
- utilisé dans un projet informatique de 1972 à
1974 - publication en 1976
- Définition simplifiée (IEEE Standard Glossary of
Software Engineering Terminology) - une technique formelle d évaluation par laquelle
- des produits (documents) informatiques
- sont examinés en détail
- par une personne ou un groupe autre que son
auteur - pour y détecter des erreurs
- ?? utiliser le travail en groupe comme un moyen
d'améliorer la qualité du logiciel (diminuer le
nombre d'erreurs)
4Objectif
- IEEE Standard for Software Reviews and Audits
- vérifier que des éléments de logiciels satisfont
leur spécification - vérifier que des éléments de logiciels satisfont
certains standards - identifier les dérivations par rapport aux
standards ou spécifications - recueillir des données sur les erreurs et
l effort consenti - n examine pas des alternatives ni des questions
de style . - Objectif général améliorer la qualité du logiciel
5Idées principales
- Wienberg The Psychology of Computer Programming
- Les erreurs peuvent être plus facilement repérées
par d'autres - programmes créations personnelles
- programmeur ne sais pas ou ne veut pas voir ses
erreurs - Si les programmes sont montrés aux autres
- ils deviennent moins personnel ("egoless
programming") - on admet plus facilement des erreurs
6Inspection Objets
Etapes et produits de lingénierie du logiciel
Spécification de haut niveau
Définition Exigences
Pseudo-code
Architecture
Cahier des Charges
Conception
Code
Codage et Tests
Structuration
Spécification de bas niveau
Opération
Maintenance
7Processus d'Inspection Vue abstraite
Étape Logicielle Précédente
1 entrée
Document à réviser
Étape Logicielle
3 requêtes de changements
Étape d Inspection
2 corrections
4 requêtes d améliorations
Document terminé
Amélioration du processus de développement de
logiciel et d Inspection
5 sortie
Étape Logicielle Suivante
8Processus d'Inspection Exemple TP
1 entrée
Conceptualisation et Structuration
Spécification des sous-systèmes
Spécification
3 requêtes de changements
Diagrammes Fonctionnels et Sous-Systèmes
Étape d Inspection
2 corrections
Spécification des sous-systèmes corrigée
5 sortie
Spécification de bas niveau
9Processus d'Inspection Vue Détaillée
Requête d'Inspection
Requête d'Inspection
Planning
Réunion d'initialisation
Inspection Individuelle
Réunion d'Enregistrement
Edition et Suivi
Sortie
10Requête d'Inspection
- Base volontaire recherche de meilleure qualité
- Qui? L'auteur ou le propriétaire du document
- Choix d'un leader
- rôles
- vérifier les critères d'entrée du document pour
éviter les pertes de temps - gérer tout le processus d'inspection
- pas un manager direct!
11Processus d'Inspection Vue Détaillée
Requête d'Inspection
Planning
Planning
Réunion d'initialisation
Inspection Individuelle
Réunion d'Enregistrement
Edition et Suivi
Sortie
12Planning Activités
- Rôle du leader
- Définir
- les documents nécessaires (identifier, numéroter)
- les objectifs (qualité attendue du document)
- les participants et leur rôle spécifique
- les méthodes (étapes, nombre de cycles,
procédures) - le planning des réunions (nombre et dates)?
master plan - Distribuer les documents
- Convoquer les réunions
13Planning Documents
- Produit inspecté
- Découpé en unités à traiter à chaque réunion
- Documents source
- À partir desquels le produit a été élaboré
- Utilisés pour déterminer s'ils ont bien été
utilisés comme sources - Règles
- Comment bien dériver le produit à partir de la
source - Permettent l'objectivité dans l'inspection
- Documents sont sujets à questions
- Objectif de l'inspection soulever des questions
- Question violation apparente d'une règle
14Planning Autres Documents
- Checklist
- liste de questions précises
- aident à vérifier l'application correcte des
règles - permettent de trouver plus d'erreurs, plus
facilement - Procédures
- que faire et comment le faire pendant
l'inspection - Master Plan
15Processus d'Inspection Vue Détaillée
Requête d'Inspection
Planning
Réunion d'initialisation
Réunion d'initialisation
Inspection Individuelle
Réunion d'Enregistrement
Edition et Suivi
Sortie
16Réunion d'initialisation
- Explication des objectifs
- ex découvrir les défauts principaux, pas des
erreurs secondaires, ... - Formation des participants aux techniques
d'inspection, explication des procédures - Explication des rôles des participants
- Distribution des documents
- Présentation du planning
17Processus d'Inspection Vue Détaillée
Requête d'Inspection
Planning
Réunion d'initialisation
Inspection Individuelle
Inspection Individuelle
Réunion d'Enregistrement
Edition et Suivi
Sortie
18Inspection Individuelle
- Phase importante (20 à 30 du temps d'inspection)
- Bien comparer Source/Produit/Règles, utiliser les
checklists - Noter systématiquement toutes les questions qui
surviennent - Définition de rôles différents
- Efficacité maximale (erreurs différentes trouvées
par des personnes différentes) - Charge de travail adaptée
- Définition de rôles équivalents
- Meilleure complétude des erreurs trouvées
- Différencier
- Erreurs principales (qui auront une grosse
influence sur le reste du processus) - Secondaires
19Processus d'Inspection Vue Détaillée
Requête d'Inspection
Planning
Réunion d'initialisation
Inspection Individuelle
Réunion d'Enregistrement
Réunion d'Enregistrement
Edition et Suivi
Sortie
20Réunion d'Enregistrement
- En groupe
- Objectifs
- enregistrer toutes les question identifiées
individuellement - identifier d'autres questions en groupe
- NE doit PAS décider si les questions sont des
erreurs ou pas - NE doit PAS discuter les questions ni leur
solution(s) - Activité importante 20 à 30 du temps
- Leader veille au respect
- du temps
- de la discipline
- Secrétaire prend note des questions soulevées
21Réunion d'Enregistrement Contenu de
l'Enregistrement
- Questions soulevées
- violation de règle
- question d'intention à l'auteur (comprend pas
quelque chose) - suggestions d'amélioration du processus (règles,
checklists, procédures) - Nature du problème (quelle règle est violée)
- Sa localisation en utilisant la numérotation
définie par le leader - quel document
- emplacement dans le document
- Son degré de gravité
- critique/principale/secondaire
- Quand la question a été soulevée
- pendant la révision individuelle
- pendant la réunion
22Processus d'Inspection Vue Détaillée
Requête d'Inspection
Planning
Réunion d'initialisation
Inspection Individuelle
Réunion d'Enregistrement
Edition et Suivi
Edition et Suivi
Sortie
23Edition et Suivi
- Edition
- par l'auteur ou le propriétaire
- relecture de l'enregistrement
- classification des questions comme erreurs ou pas
- requalification du degré de gravité
- modification du produit ou demande de
modification de la source (étape logicielle
précédente) - demande d'amélioration des règles, checklists ou
procédure - Suivi
- leader doit s'assurer que toutes les questions
ont été traitées
24Processus d'Inspection Vue Détaillée
Requête d'Inspection
Planning
Réunion d'initialisation
Inspection Individuelle
Réunion d'Enregistrement
Edition et Suivi
Sortie
Sortie
25Sortie
- Leader vérifie que le produit rencontre des
critères prédéfinis de qualité - Exemple de critères
- nombre estimé de défauts majeurs restant par page
(en fonction de l'expérience antérieure, par
exemple, ceux retrouvés via les tests,) - jugement subjectif du leader
- Si critères non rencontrés, refaire un cycle
26Processus dinspection
27Exemple TPRequête dInspection et Planning
- Leader
- Enseignant
- Objectif
- Trouver le maximum derreurs dans les
spécifications - Participants et rôles
- Chaque groupe révise les spécifications dun
autre groupe - Tous les membres dans un groupe ont le même rôle
28Exemple TPPlanning Documents
- Produit
- Spécification d'un groupe, lignes numérotées
- Source
- Partie du Document de Conceptualisation et
Structuration (diagrammes fonctionnels et
sous-systèmes) de la série et qui a été assignée
au groupe - Règles
- Pour chaque fonction identifiée dans le document
source, une spécification doit apparaître dans le
produit - A toute donnée qui entre dans une fonction du
document source correspond un paramètre d'entrée
dans la spécification de la fonction
correspondante du produit et inversément - Toute fonction du produit est décrite par des
paramètres en entrée, des résultats, une
postcondition et événtuellement une précondition. - Le type de chaque paramètre utilisé dans une
spécification est décrit dans cette spécification - ...
29Exemple TP Planning
- Etapes
- Un seul cycle
- Deux étapes
- 1. Révision individuelle
- 2. Réunion denregistrement
- Pas de correction de la spécification
- Planning des réunions
- 21/3 de 8h30 à 10h30 révision individuelle
- Avant 28/3 réunion denregistrement rapport
30Exemple TPRéunion d'initialisation
- Maintenant
- Explication des objectifs
- Formation des participants
- Explication des rôles des participants
- Présentation du planning
- Distribution des documents
- Enoncé, Conceptualisation/Structuration, Règles
- La spécification à réviser sera disponible au TP
- Amener 4 copies par groupe!
31Exemple TPRévision individuelle
- Utilisation dun formulaire denregistrement des
questions - Proposition
- Avant TP lecture des règles!
- Au TP
- 1ère lecture de la specification première
identification de questions - Travail règle par règle (vérifier si elle est
appliquée dans toute la spécification) ou - Travail fonction par fonction (vérifier si toutes
les règles sont vérifiées dans la spécification
de la fonction).
32Exemple TPRéunion denregistrement
- Réunion de mise en commun des questions soulevées
- Notation systématique des erreurs
- Par un secrétaire
- Utilisation du formulaire
- Propositions daméliorations du processus (règles
et procédures) - Négociation du degré de gravité
33Techniques dInspection
34Inspection Avantages (1)
- Meilleure qualité du logiciel versus "Coût"
important des erreurs - "Une banque anglaise a transféré accidentellement
2 billions de livres à des companies anglaises et
et américaines à cause d'une erreur de conception
de logiciel qui permettait de dupliquer des
instructions de paiement." - Le service d'ambulances d'urgences de Londres a
perdu 4 appels d'urgence Dans un cas, on a
retrouvé ces informations et envoyé une ambulance
mais le patient est décédé plus tard." - Meilleure productivité des programmeurs (30 à
100)
35Inspection Avantages (2)
- Diminution du temps total de développement (10 à
30) car - meilleure compréhension du problème
- moins d'erreurs
- Détection des erreurs principales TÔT ? reduction
de l'effort pour les corriger - Diminution du coût et temps des tests (5 à 10
fois moins) car moins d'erreurs avant tests
(jusqu'à 82 en moins) - Diminution du coût de maintenance (10 fois moins)
car - meilleure lisibilité de la documentation
(specification, ) - moins d'erreurs
36Inspection Avantages (3)
- Avantages psychologiques meilleur moral du
programeur car - travail de meilleure qualité
- moins de pression
- partage des forces et faiblesses dans le groupe
(aspect formatif) - réunions efficaces
37Inspection Coût
- Coût de mise en place du processus d'Inspection
- formation des leaders
- formation du management
- définition des procédures et documents
- Activités d'inspection elles-mêmes
- Activités d'amélioration du processus
- Achat d'outils de support (traitement de texte,)
- MAIS vite amorti (test et maintenance)
38Comparaisons (1)
- Parcours Structurés (Structured Walkthroughs)
- même idée mais un moins formalisé
- discussions plus libres, informelles
- événtuellement moins de personnes (seulement 2
possible) - pas d'enregistrement systématique
- Révisions/Relecture (Reviews)
- encore moins formel
39Comparaisons (2)
- Techniques de Tests
- Similitudes
- même objectif
- enregistrement des erreurs trouvées
- Différences
- inspection est plus facile à utiliser
- inspection statique, test dynamique
- On peut faire de l'inspection de plans de tests
40Conclusion
- Technique relativement simple
- Si systématique, peut avoir des effets importants
sur la qualité - Peut s appliquer sur tous les documents
- Permet un amélioration progressive du processus
(règles, checklists, procédures)
41Références
- Gilb, Graham, Software Inspection, Addison
Wesley, 1993. - Bell, Morrey, Pugh, Software Engineering A
Programming Approach, Prentice-Hall, 1987.