Upload
avril-pichon
View
116
Download
8
Embed Size (px)
Citation preview
Assurance et Contrôle Qualité du Logiciel
Mustapha EL [email protected]
La qualité en génie logiciel?
Personne ne sait aujourd’hui créer de logiciel sans défaut!
Définition
La qualité est (Le Petit Robert):Ce qui fait qu’une chose est plus ou moins
recommandable le degré plus ou moins élevé d’une échelle
de valeurs pratique
En Génie LogicielLa qualité d’un logiciel est son aptitude à
satisfaire les besoins (exprimés ou potentiels) des utilisateurs
DéfinitionCe qu’est la qualité (du logiciel)
Besoins des utilisateurs Fonctions à réaliser: Calcul de paie,
commande d’avion,... Caractéristiques d’utilisation:
Exploitation, Evolutions,...
DéfinitionCe qu’est la qualité (du logiciel)
Les caractéristiques d’un logiciel diffèrent selon qu’il s’agit: d’un logiciel (prototype) jetable d’un logiciel dont la durée de vie est de
plusieurs années d’un logiciel dont les pannes ont une
importance relative d’un logiciel dont la moindre erreur peut
avoir des conséquences graves
Processus de réalisation d’un logiciel de qualité
Les processus doivent obéir aux conditions suivantes:
Ne pas faire seulement un contrôle de qualité en fin de processus
Assurer une production échelonnée de documentation
Prendre en compte les coûts de maintenance
Les facteurs de qualité du logiciel
dépendent du domaine de l’application et des outils utilisés
concernent les développeurs (facteurs internes) ou les utilisateurs (facteurs externes)
ValiditéExtensibilitéRéutilisabilitéCompatibilitéEfficacitéPortabilité
VérificabilitéIntégritéFacilité d’emploiEconomieDocumentationCompréhensibilité
Caractéristiques jouant un rôle dans la qualité du logiciel
FlexibilitéInteropérabilitéModularitéModifiabilitéGénéralitéTestabilité
AdaptabilitéUtilisabilitéClartéMaintenabilité...
Fiabilité des logiciels
Fiablilité: Aptitude d’un dispositif à accomplir une fonction requise dans des conditions d’utilisation et pour une période de temps déterminée
Fiabilité des logiciels: Probabilité pour qu’une panne du logiciel provoquant un écart par rapport au résultat attendu au delà des tolérances spécifiées, ait lieu dans un environnement opérationnel de référence et à l’intérieur d’une
durée d’utilisation donnée
Fiabilité des logiciels
Matériel: Doubler les composants La fiabilité d’un système dépend :
de la qualité de la conception de la qualité de la réalisation de la fiabilité des composants
Ajouter du code pour faire les vérifications nécessaires
NE PAS FAIRE D’ECONOMIE DE CODE
Fiabilité des logiciels
NE PAS FAIRE D’ECONOMIE DE CODE Le matériel de plus en plus rapide et de moins en
moins cher Un logiciel peu fiable est rejeté Le coût d’une panne est supérieur au coût du code Efficacité: petite partie du code Fiabilité: Totalité du code Inefficacité: peut être prédite, pas la non fiabilité Système peu fiable: pertes d’infos, pertes de temps
et d’argent pour les reconstruire
Sécurité des logiciels
Sécurité des logiciels: Protection des ressources d’un système informatique contre les événements à caractère accidentel ou intentionnel
Modification ou destruction des ressources Observation (non autorisée) des
ressources Indisponibilité des ressources ou
services
Traitements induits
Contrôle d’accès Contrôles de validité, cohérence de
l’information saisie Redondances Audits d’intégrité Pistes d’audits Alertes sur seuils Cryptage
Facteurs & Critères de qualité
Proposés par McCall (1978) et Boehm (1978)
Les facteurs: concernent les caractéristiques d’utilisation
liées à l’environnement d’exploitation à l’environnement de suivi et de maintenance
traduisent la vision EXTERNE que peut en avoir le demandeur
Facteurs & Critères de qualité
Les critères Concernent les caractéristiques d’utilisation
en fonction d’une vision INTERNE (structure du logiciel)
sont les composantes des facteurs de qualité
peuvent être affectés à plusieurs facteurs sont reliés à des métriques
Facteurs
liés à l’environnement d’exploitation: Confidentialité Couplabilité Efficacité Maniabilité Robustesse
liés à l’environnement de maintenance et de suivi Maintenabilité Adaptabilité Portabilité
liés au processus de développement Correction
Critères
Banalité d’emploi: indépendance par rapport à une application
Communicabilité: facilité de communication entre l ’homme et la machine
Efficacité mémoire: consommation minimale de l ’espace mémoire
Efficacité périphérique: vitesse et capacité optimale des périphériques
Efficacité en temps d’exécution: consommation minimale en temps machine
Expansibilité: possibilité d ’accroissement des zones de données et de la taille programme
Exploitabilité: facilité de mise en œuvre et d ’exploitation
Critères
Historique des accès: mémorisation des accès
Indép./ env. logiciel: absence de liens structurels avec E.L.
Indép. / env. matériel: absence de liens structurels avec E.M.
Lisibilité: possibilité de compréhension d ’un document ou d ’un code par simple lecture
Modularité: décomposition d ’un logiciel en éléments de taille réduite
Observabilité: facilité de localisation des non conformités
Précision: exactitude des résultats obtenus
Critères
Protection du code et des données en exploitation: protection contre les accès par des personnes non autorisées, le logiciel étant en exploitation
Protection du code et des données hors exploitation: protection contre des accès par des personnes non autorisées, le logiciel étant hors exploitation
Simplicité: facilité de compréhension liée à l ’absence d ’éléments superflus
Critères Standardisation des données:compatibilité des
données avec des standards externes Standardisation des interfaces: compatibilité
des interfaces avec des standards externes Tolérance aux fautes: possibilité de limiter ou
supprimer les effets d ’une perturbation, que celle-ci ait une cause interne ou externe au logiciel
Traçabilité: existence de liens entre les différentes représentations textuelles ou graphiques
La qualité dans la conduite de projet
Conduite de Projet
Développementde SI
Planification et Suivi
Assurance & ContrôleQualité
Gestion de la configuration
Gestionde la documentation
Assurance & Contrôle Qualité
Assurance Qualité: Mise en œuvre d’une approche préventive de la qualité.
L’AQ consiste en un ensemble d’actions de prévention des défauts qui accompagnent le process de dvt des artefacts logiciels.
Contrôle Qualité: Mise en œuvre d’une approche curative de la qualité.
Le CQ suppose que bien que le process de production est satisfaisant, il présente des dysfonctionnements dont les effets doivent être éliminés.
Activité d’assurance qualitéDéfinition
Ensemble des actions préétablies et systématiques nécessaires pour donner la confiance appropriée en ce qu’un produit ou un service satisfera aux exigences données relatives à la qualité
Passe par l’élaboration d’un MANUEL QUALITE(Ensemble des méthodes, règles et procédures
mises en œuvre pour développer du logiciel )
Assurance Qualité: Liens entre les différentes activités
AssuranceQualité
Productionlogiciel
ContrôleQualité
Technologies Produit finiProduit fini
Normes, Procédures, Métrologie
Vérifie, Mesure, Corrige
ProductionGestionMaintenance
Assurance QualitéManuel Qualité
Manuel qualité : document décrivant les dispositions générales prises par l’entreprise pour obtenir la qualité de ses produits ou services
Organisé en 6 parties: Organisation de l’entreprise Activités de production et de contrôle technique Activité de gestion Activité de contrôle de la qualité Plan type du PLAN QUALITE Lignes directrices permettant d’établir le plan
qualité
Assurance QualitéRôle du Manuel Qualité
Usage interne et externe
Maîtrisé par tous Démonstration
Formation: technique, méthode et outils
Assurance QualitéPlan Qualité
Plan Qualité: Document décrivant les dispositions spécifiques prises par l’entreprise
Assurance QualitéPlan type du Plan Qualité
1) But, Domaine d’application et responsabilité:Portée du plan qualité et dispositions pour en assurer son
application
2) Documents applicables et documents de références: Documents appelés dans le plan qualité
3) Terminologie
4) Organisation:
Personnes intervenant dans le projet Pour chaque personne: sa place dans la structure de
l’entreprise, son rôle et ses responsabilités dans le projet Liens hiérarchiques et fonctionnels entre les intervenants
Assurance QualitéPlan type du Plan Qualité
5) Démarche de développement Liste des phases de développement Pour chaque phase:
contenu des activités de la phase, documents ou produits en entrée de la phase, documents ou produits réalisés dans la phase, conditions de passage à la pahse suivante et
points clés
Assurance QualitéPlan type du Plan Qualité
6) Documentation Liste des documents produits dans chaque phase Références aux plans types de chaque document Son statut: livrable, consultable, privée Documents classés en:
documents de gestion de projet documents techniques de réalisation manuels d’utilisation et d’exploitation
Assurance QualitéPlan type du Plan Qualité
7) Gestion des configurationsÉléments de configuration y compris les moyens de
développement et de tests
Conventions d’identification (nomenclatures)
8) Gestion des modifications le responsable de leur mise en œuvre les règles d’évolution de l’identification des
éléments modifiés et de la nomenclature
Assurance QualitéPlan type du Plan Qualité
9) Méthodes, outils et règles10) Contrôle des fournisseurs11) Reproduction, protection, livraison 12) Suivi de l’application du plan qualité (plan de
contrôle): Dispositions prises pour maîtriser la qualité Interventions du responsable qualité sur la démarche de
développement Interventions du responsable qualité dans les procédures
de gestion des configurations, de gestion des modifications, la vérification des exigences de qualité envers les fournisseurs
modalités de recette et qualification
Processus de développement: les autres activités
Activités de production Cycle de développement du logiciel: élaboration des
documents et des programmes Liens avec le cycle de développement d’un systèmes
Activités de contrôle technique: Contrôle sur le fond et sur la forme des documents et
des programmes à faire au cours du processus de développement
Processus de développement: les autres activités
Activités de contrôle qualité portent sur les résultats et les processus ayant
permis de les obtenir
Activités de gestion But: Assurer la cohérence, le suivi des
processus mis en jeu Gestion de projet Gestion des modifications Gestion des configurations
Activités du processus de développement: Gestion des configurations
Ensemble des activités-manuelles ou automatisées- permettant d’identifier et de définir les éléments de configuration et toutes leurs relations.
Elle permet de contrôler les évolutions durant le cycle de vie
du logiciel, d’archiver chacun des états successifs et de vérifier que chacun de ces états est
complet et cohérent
Normes générales de qualité
Normes ISO et IEEEEvaluation de maturité des processus: CMM,
SPICE, TRILLIUM ne prescrivent pas des méthodes précises proposent un ensemble d‘activités requises pour
produire des biens de qualité l’organisation détermine comment implanter
l’activité
Normes ISO 9000
ISO 9000: Ensemble de normes des gestion de la qualité
Applicable à plusieurs domaines (manufacturier, service,...)
satisfaire la norme ISO 9000 démontre la capacité d’une organisation à produire des biens et services
certification par un organisme indépendant (ex: Underwriter Lab.)
Les Normes ISO 9000
« Dîtes ce que vous faîtes,faîtes ce que vous dites,
et montrez que vous l’avez fait »
Normes ISO 9000 Norme ISO 9000 constitue un document décrivant les
lignes directrices pour la sélection et l’utilisations des normes
Norme ISO 9001 fournit un modèle pour l’assurance qualité dans le cadre de la conception, de la réalisation, de l’installation et du service après vente.
Norme ISO 9002 fournit un modèle pour l’assurance qualité dans le cadre de la production et de l’installation.
Norme ISO 9003 constitue un modèle pour l’AQ dans le cadre des contrôles et essais finaux.
Norme ISO 9004 complète à l’aide de directives communes à toutes les entreprises, les trois normes précédentes qui concernent l’assurance externe de la
qualité dans des situations contractuelles.
ISO 9000 et le logiciel
ISO 9001 est la plus pertinente pour le logiciel
ISO 9000-3: guide d’interprétation de ISO 9001 pour le logiciel
20 articles dans la norme
Article 1: Responsabilité de la direction
la direction doit définir et consigner par écrit sa politique de gestion de la qualité
la direction doit assurer la compréhension, la mise en œuvre et la pérennité de la politique à tous les niveaux de l’organisme
Article 2:Système qualité
Manuel qualité
Plans de qualité objectifs de la qualité (en termes mesurables) critères d’entrée et de sorties de chaque phase identification des activités planification des activités responsabilité (qui fait quoi)
18 autres articles de ISO 9001
3) Revues de contrat4) Maîtrise de la conception5) Maîtrise des documents6) Achats7) Produit fourni par l’acheteur8) Identification et traçabilité du produit9) Maîtrise des processus10) Contrôles et essais (C&E)
11) Maîtrise des équipements de C&E
18 autres articles de ISO 9001
12) États des contrôles et essais13) Maîtrise du produit non conforme14) Actions correctives15) Manutention, Stockage, Conditionnement et
Livraison16) Enregistrements relatifs à la qualité17) Audits internes de la qualité18) Formation19) Soutien après vente20) Techniques statistiques
Le Software Engineering Institute:Le modèle de maturité: CMM
financé par le DoD, associé à l’Université Carnegie Mellon
sa mission est de promouvoir le transfert de technologie en matière de logiciel, particulièrement pour les entreprises travaillant pour le DoD
le modèle de maturité proposé fin des années 1980, raffiné en 1993
grande influence dans l’amélioration des processus
Le Modèle de Maturité (CMM) du SEI Initial Reproductible Défini Maîtrisé Optimisé
~75% des projets au niveau 1
~25% des projets au niveau 2 ou 3
Dans une étude menée en 1995:
seulement 2 projets ont atteint le niveau 5: projet de Motorola projet Loral (le vol habité de
la navette spatiale)
Niveaux de maturité -1Initial
Chaotique: plans et contrôles inefficaces Processus essentiellement non contrôlé,
non défini le succès dépend des individus Domaine du problème:
Gestion de projet Gestion de la configuration Assurance qualité du logiciel
Niveaux de maturité -2Reproductible- Répétable
Intuitif: dépend encore des individus Procédures de gestion utilisées, gestion des
configurations et assurance qualité Pas de modèle formel de processus Domaine du problème:
Perfectionnement Pratiques techniques Vise la définition formelle du processus
Niveaux de maturité -3 Défini
Qualitatif: institutionnalisé Définition formelle du processus Procédures formelles pour vérifier que
le processus est utilisé Domaine du problème:
Procédures de mesure Processus d’analyse Plans de qualité quantitatif
Niveaux de maturité -4Maîtrisé
Quantitatif: Processus de mesures Gestion quantitative de la qualité Domaine du problème:
Technologie changeante Analyse des problèmes Prévention des problèmes
Niveaux de maturité -5Optimisé
Améliorations retournées dans le processus Stratégies d’amélioration du processus Domaine du problème
Automatisation
Secteurs clés
Niveau 1: Aucun Niveau 2: Répétable
Gestion de la spécification et des changements Planification, suivi et contrôle de projet Gestion de la sous-traitance Assurance de la qualité Gestion des configurations
Secteurs clés
Niveau 3- Défini focalisation organisationnelle sur le processus définition du processus programme de formation gestion logicielle intégrée ingénierie de produits logiciels coordination inter-groupes: autres groupes
d’ingénierie (électrique, mécanique,...) revues par les pairs
Secteurs clés
Niveau 4: Maîtrisé Gestion quantitative du processus Gestion de la qualité logicielle
Niveau 5 - Optimisé Prévention des défauts Gestion des changements technologiques Gestion des changements du processus
Problèmes reliés au CMM
Met l’emphase sur la gestion de projet, et non sur les technologies/méthodes de développement prototypage, méthodes formelles, outils
Ne mentionne pas l’analyse de risques Ne traite pas du processus de réutilisation Ne défini pas à quel domaine il s’applique
applicable aux petites organisations?
Niveaux d’évaluation
évaluation du processus logiciel identifier les aspects du processus à améliorer emphase sur les entrevues
évaluation de la capacité logicielle identifier les maîtres d’œuvre et les sous-
traitants qualifiés pour exécuter un travail logiciel
emphase sur les enregistrements semblable à un audit
ISO 9000 et CMM
partagent le même objectif: améliorer la qualité des logiciels
ISO 9000: identifie les éléments de base d’un système de gestion de la qualité
CMM: axé sur l’amélioration des processus