IFT3913
Qualité du logiciel et métriques
Chapitre 2
Modèles de processus du développement du logiciel
Plan du cours
Introduction
Modèles de processus du développement du logiciel
Qualité du logiciel Théorie de la mesure
Mesure de la qualité du logiciel Études empiriques
Mesure du produit logiciel
Collection et analyse des métriques
3
Introduction
Les notions de qualité et de mesure sont liées au processus de développement
Théorie
– Prévention
– Détection et correction précoce des erreurs – Élimination des causes d’erreurs
Pratique
– Injection de qualité dans toutes les activités
– Ajout d’activités dédiées à la qualité du produit et du processus
– Ajout d’activités de contrôle de la qualité – Évaluation quantitative (doit être possible)
Introduction
Attention ! La qualité à un coût
– Évaluer la durée de vie des logiciels
« La plupart des logiciels sont immortels » Nicholas Zvegintzov
– Évaluer les caractéristiques de qualité
importante pour le logiciel (cf. prochain chapitre ☺)
5
Introduction
Ce chapitre
– Rappelle les principaux modèles de développement du logiciel
– Introduit les modèles et les standards d’évaluation des processus de
développement
Le modèle en cascade
Le modèle de la cascade défini des étapes (ou phases) durant lesquelles les activités de développement se déroulent
Une étape doit se terminer à une date donnée par la production de certains documents ou logiciels
Les résultats de l'étape sont soumis à une étude approfondie
L'étape suivante n'est abordée que si les résultats sont jugés satisfaisants
7
Le modèle en cascade
Analyse besoins Planification Faisabilité
Conception du produit
Conception détaillée
Implantation et test
Intégration et test
Installation et test Exploitation et maintenance
Le modèle en cascade
Faisabilité (pourquoi ?)
– Répondre aux questions
• Pourquoi faut-il réaliser ce logiciel ?
• Y a-t-il de meilleures alternatives ?
• Le logiciel sera-t-il satisfaisant pour les utilisateurs ?
• Y a-t-il un marché pour le logiciel ?
• A-t-on le budget, le personnel, le matériel nécessaires ?
9
Le modèle en cascade
Analyse des besoins (quoi ?)
– Définir précisément les fonctions que le logiciels doit réaliser/fournir
– Le résultat de cette phase est le cahier des charges du logiciel
Le modèle en cascade
Conception (comment ?)
– Définir la structure du logiciel
– Les résultats comprennent l’architecture du logiciel (décomposition en modules) et la spécification des interfaces des modules – La définition des algorithmes de chacune
des procédures des modules est appelée la conception détaillée du logiciel
11
Le modèle en cascade
Implantation et test (comment ?)
– Implanter les procédures des modules – Tests unitaires
Intégration et test
– Intégrer les différents modules – Valider / vérifier l’adéquation de
l’implantation, de la conception et de l’architecture avec le cahier des charges (acceptation)
Le modèle en cascade
Installation et test
– Déploiement du logiciel chez le client et tests avec un sous ensemble d’usager choisi
Exploitation et maintenance
– Utilisation en situation réelle, retour d’information des usagers, des administrateurs, des gestionnaires…
– Maintenance corrective, perfective et adaptative
13
Le modèle en cascade
Les versions actuelles du modèle en cascade incluent de la validation et de la vérification à chaque étape
– Faisabilité et analyses des besoins + validation – Conception, conception détaillée + vérification – Implantation + tests unitaires
– Intégration + tests d’intégration et d’acceptation – Installation + tests de déploiement
Le modèle par prototypage
Le modèle en cascade suppose que les besoins sont clairs, arrêtés et bien définis Le modèle par prototypage est intéressant
– Besoins pas clairement définis
– Besoins changeants au cours du temps
Le prototypage permet le développement rapide d’une ébauche du futur logiciel
– Prototype jetable – Prototype évolutif
15
Le modèle par prototypage
Le modèle en spirale
17
Le modèle en spirale
Chaque cycle de la spirale comprend quatre étapes
– Détermination des objectifs du cycle, des
alternatives pour les atteindre et des contraintes à partir des résultats des cycles précédents ou de l’analyse des besoins
– Analyse des risques, évaluation des alternatives et éventuellement prototypage
– Développement et vérification de la solution retenue (un autre modèle peut-être utilisé)
– Revue des résultats et planification du cycle suivant
Le modèle en spirale
Risques majeurs du développement du logiciel
– Défaillance du personnel – Calendrier et budget irréalistes
– Développement de fonctions inappropriées
– Développement d'interfaces utilisateurs inappropriées – Produit « plaqué or »
– Validité des besoins
– Composants externes manquants – Tâches externes défaillantes – Problèmes de performance
– Exigences démesurées par rapport à la technologie
19
Mise en œuvre des processus
Le degré de mise en œuvre d’un processus varie d’une organisation à une autre (et d’un projet à un autre)
Les chances de succès dépendent en partie du degré de mise en œuvre du processus Des modèles et des standards existent pour évaluer ce degré de mise en œuvre
– CMM – SPR – ISO 9000
Capability Maturity Model (CMM)
Définit par le SEI (Carnegie-Mellon
University) en 1989 (de nouvelles versions existent)
Décrit une approche évolutionniste
d’amélioration des processus indéfinis et ad hoc vers des processus disciplinés
Établit une échelle pour évaluer la maturité d’utilisation d’un processus dans une organisation
21
Capability Maturity Model (CMM)
CMM – Niveau 1 (initial)
– Caractérisation
• Processus chaotique et changeant
• Calendriers, budgets, fonctionnalités, qualités imprévus et imprévisibles
• Performance dépend avant tout des individus
Capability Maturity Model (CMM)
CMM – Niveau 2 (répétable) – Caractérisation
• Processus intuitif et ad hoc
• Coût et qualité très variables
• Calendriers raisonnablement maîtrisés
– Points clés pour atteindre ce niveau
• Gestion des besoins
• Planification des projets
• Suivi des projets
• Gestion des sous-contractants
• Assurance qualité
23
Capability Maturity Model (CMM)
CMM – Niveau 3 (défini) – Caractérisation
• Processus documenté, normalisé et intégré
• Tous les projets suivent une version approuvée du processus de l’organisation
– Points clés pour atteindre ce niveau
• Définition du processus
• Amélioration du processus
• Programme de formation
• Gestion des projets intégrée
• Ingénierie du logiciel
• Coordination inter-groupes et évaluation par les pairs
Capability Maturity Model (CMM)
CMM – Niveau 4 (géré)
– Caractérisation
• Mesures de la qualité du processus et du produit
• Processus gérés quantitativement – Points clés pour atteindre ce niveau
• Mesures et analyse du processus
• Gestion de la qualité
25
Capability Maturity Model (CMM)
CMM – Niveau 5 (optimisé)
– Caractérisation
• Amélioration continue du processus à partir des mesures et des données collectées précédemment
• Intégration d’idées et de technologies novatrices
– Points clés pour atteindre ce niveau
• Prévention des erreurs
• Intégration des innovations technologiques
• Gestion des changements du processus
Capability Maturity Model (CMM)
Évaluation par un questionnaire
– Chaque question booléenne est associée à un niveau
– Pour atteindre un niveau, il faut 90% de
« oui » aux questions clés et 80% de
« oui » à toutes les questions de ce niveau – Il faut avoir un niveau pour passer au
niveau supérieur
27
Software Productivity Research (SPR)
Défini par Capers Jones Est similaire à CMM
Touche les aspects plus tactiques et stratégiques de l’entreprise
Comprend 400 questions (échelle de Lickert) Fournit une évaluation selon les niveaux : excellent, bon, moyen, marginal, faible
ISO 9000
Ensemble de standards et de lignes directrices pour gérer la qualité
Le standard ISO 9001 concerne le secteur de la fabrication et de la transformation
Le standard ISO 9000-3 est une
adaptation de ISO 9001 pour le logiciel
29
ISO 9000
ISO 9000-3
– Lignes directrices
1. Responsabilité de la gestion 2. Logiciel de qualité
3. Revues contractuelles 4. Contrôle de la conception 5. Contrôle des documents 6. Achats
7. Produits fournis par les clients
8. Identification et traçabilité des produits 9. Contrôle du processus
10. Tests et inspections
ISO 9000
ISO 9000-3
– Lignes directrices
11. Équipement d’inspections, de mesures et de tests 12. États des inspections et des tests
13. Contrôle des produits non-conformes 14. Actions correctives et préventives
15. Manutention, stockage, conditionnement et livraison 16. Enregistrement de qualité
17. Audits de qualité internes 18. Formation
19. Service après-vente
31
ISO 9000
ISO 9000-3 – Certification
• Avant de faire la demande, s’assurer que le processus fonctionne bien
• Utilisation des services de consultants en assurance qualité pour le suivi, le soutient et la formation
• Demande après d’un organisme de certification
• Examen et analyse de la documentation
• Contrôle in situ, comparaison du processus réels et de la documentation
• Descriptions détaillées des écarts et discussions
ISO 9000
ISO 9000-3
– Contrôle et suivi
• Deux visites sans préavis par année par l’organisme de certification pour vérifier la conformité du processus
• Retrait du certificat si des écarts sont constatés sans correction ou trop importants