840 likes | 1.58k Views
Assurance et Contrôle Qualité du Logiciel. Mustapha EL FEDDI mustapha.elfeddi@sofrecom.com. 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
E N D
Assurance et Contrôle Qualité du Logiciel Mustapha EL FEDDI mustapha.elfeddi@sofrecom.com
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 Logiciel La 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) Vérificabilité Intégrité Facilité d’emploi Economie Documentation Compréhensibilité Flexibilité Interopérabilité Modularité Modifiabilité Généralité Testabilité Adaptabilité Utilisabilité Clarté Maintenabilité ... Validité Extensibilité Réutilisabilité Compatibilité Efficacité Portabilité Caractéristiques jouant un rôle dans la qualité du logiciel
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éveloppement de SI Planification et Suivi Assurance & Contrôle Qualité Gestion de la configuration Gestion de la documentation
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. Assurance & Contrôle Qualité
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 Assurance Qualité Normes, Procédures, Métrologie Production logiciel Produit fini Technologies Production Gestion Maintenance Contrôle Qualité Vérifie, Mesure, Corrige
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 duPlan 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 duPlan 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 duPlan 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 duPlan 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 duPlan Qualité 9) Méthodes, outils et règles 10) Contrôle des fournisseurs 11) 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 IEEE Evaluation 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 contrat 4) Maîtrise de la conception 5) Maîtrise des documents 6) Achats 7) Produit fourni par l’acheteur 8) Identification et traçabilité du produit 9) Maîtrise des processus 10) 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 essais 13) Maîtrise du produit non conforme 14) Actions correctives 15) Manutention, Stockage, Conditionnement et Livraison 16) Enregistrements relatifs à la qualité 17) Audits internes de la qualité 18) Formation 19) Soutien après vente 20) 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
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) Le Modèle de Maturité (CMM) du SEI
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