Ssame (Ssame)
Janvier 2013
1 / 57
Objectifs
Quest ce la Qualite Logicielle ? Pourquoi la Qualite Logicielle est importante ? Quest ce lAssurance de Qualite Logicielle ? Facteurs de Qualite Logicielle Elements de lAssurance de Qualite Logicielle Plans de Developpement et de qualite Modeles de maturite de processus
Ssame (Ssame)
Janvier 2013
2 / 57
Qualit Logicielle
Le degr avec lequel un systme, un composant ou un processus satisfait ses exigences spcies. Le degr avec lequel un systme, un composant ou un processus satisfait aux besoins ou attentes de ses clients/usagers.
Ssame (Ssame)
Janvier 2013
3 / 57
Qualit Logicielle
conformit avec la dnition, cette notion est contrlable en cours de fabrication, rponse lattente de lutilisateur, cette notion est contrlable la livraison du produit.
Ssame (Ssame)
Janvier 2013
4 / 57
Vrication et Validation
La validation a pour base les besoins que le produit doit satisfaire, et pour fonction la mise en vidence de dfauts. - Valider cest rpondre la question : Faisons nous le bon produit? La vrication a pour base des dnitions prcises et non ambigus consignes antrieurement, elle a pour fonction la mise en vidence derreurs. - Vrier cest rpondre la question : Faisons nous le produit correctement?
Ssame (Ssame)
Janvier 2013
5 / 57
On prcise la terminologie en accord avec la norme IEEE: Erreur: Commise par le dveloppeur, conduit un dfaut, Dfaut: Imperfection dans le logiciel conduisant ou non une panne, Panne: Comportement anormal dun programme.
Ssame (Ssame)
Janvier 2013
6 / 57
1 2 3 4 5 6
Mauvaise dnition des exigences Problmes de communication entre clients et developpeurs Dviations dlibres des exigences du logiciel Erreur de conception (logique) Erreurs de programmation Non conformit la documentation ainsi quaux instructions de programmation Insusances du processus de tests Erreurs de linterface usagers ainsi que de la procdure Erreurs de documentation
7 8 9
Ssame (Ssame)
Janvier 2013
7 / 57
Plus une faute est dtecte tard, plus elle cote cher. Moralit : Mieux vaut prvenir que gurir. Un Logiciel de qualit est caractris par: Absence de bugs Bas ratio de dfauts ( de dfauts/unit de taille) Haute abilit (nombre de pannes par n heures dopration) - Temps Moyen entre Pannes (Mean Time To Failure MTTF) probabilite doperation sans panne dans un temps spci
Ssame (Ssame)
Janvier 2013
8 / 57
QUALIT EXTERNE
QUALIT INTERNE
51
Ssame (Ssame)
Janvier 2013
9 / 57
Mac Call dnit une approche de la qualit partir de la dnition de : Caractristiques externes : facteurs de qualit Caractristiques internes : critres de qualit Caractristiques mesurables: mtriques de qualit
Ssame (Ssame)
Janvier 2013
10 / 57
Un facteur est une caractristique du logiciel, du processus ou du service contribuant sa qualit telle quelle est ressentie par lutilisateur. Un critre est un attribut du logiciel par lintermdiaire duquel un facteur peut tre obtenu. Cest galement une caractristique du logiciel sur laquelle le dveloppeur peut agir. (par exemple, sa simplicit) Une mtrique est la mesure dune proprit dun critre. (par exemple, la taille dun module pour le critre Simplicit).
Ssame (Ssame)
Janvier 2013
11 / 57
Les 11 facteurs de qualit peuvent tre classs en 3 catgories: Les caractristiques oprationnelles (product operation) La capacit dvolution (product revision) Ladaptabilit (product transition)
Ssame (Ssame)
Janvier 2013
12 / 57
conformit aux besoins: le produit fait-il ce que je souhaite? abilit: le fait-il correctement dans tous les cas? ecacit: utilise-t-il au mieux le matriel? intgrit: est-il protg contre les intrusions? a-t-il un niveau de scurit susant? facilit demploi: au niveau de lapprentissage, de la mise en oeuvre, de la prparation des donnes, de linterprtation des rsultats
Ssame (Ssame)
Janvier 2013
13 / 57
maintenabilit: facilit avec laquelle on peut localiser et corriger les erreurs, souplesse: facilit de modication et dvolution (adaptation de nouveaux besoins), testabilit: eort requis pour le tester.
Ssame (Ssame)
Janvier 2013
14 / 57
portabilit: peut-on utiliser le logiciel sur une autre machine? rutilisabilit: peut-on rutiliser des parties du logiciel dans dautres applications, interoprabilit: facilit dinterfaage avec un autre systme.
Ssame (Ssame)
Janvier 2013
15 / 57
Ex. facteurs qui diminuent lecacit - intgrit (ncessit dintroduire des vrications) - maintenabilit (sacrice de lecacit pour la lisibilit) - portabilit (moindre ecacit des structures portables) - testabilit, exibilit, rutilisabilit, interoprabilit, ... Ex. facteurs qui diminuent lintgrit - exibilit, rutilisabilit, interoprabilit Existe-t-il une liaison de cause eet entre ergonomie et abilit ?
Ssame (Ssame)
Janvier 2013
16 / 57
Ex. facteurs qui diminuent lecacit - intgrit (ncessit dintroduire des vrications) - maintenabilit (sacrice de lecacit pour la lisibilit) - portabilit (moindre ecacit des structures portables) - testabilit, exibilit, rutilisabilit, interoprabilit, ... Ex. facteurs qui diminuent lintgrit - exibilit, rutilisabilit, interoprabilit Existe-t-il une liaison de cause eet entre ergonomie et abilit ? Un logiciel non able ne peut tre rellement convivial : il causera des problmes dutilisation ses utilisateurs. Un logiciel ergonomique vitera les erreurs opratoires de lutilisateur et donc les dfauts de fonctionnement.
Ssame (Ssame)
Janvier 2013
17 / 57
Oprabilit Communicabilit Apprentissage Volume et taux dE/S Contrle daccs Consommation mmoire Vitesse dexcution Traabilit Compltude Prcision Cohrence Tolrance aux fautes Simplicit Modularit Concision Auto-description Instrumentation Gnralit Evolutivit Indpendance machine Indpendance systme Communications banalises Donnes banalises
Ssame (Ssame) Assurance Qualit Logicielle Janvier 2013 18 / 57
Oprabilit Communicabilit Apprentissage Volume et taux dE/S Contrle daccs Consommation mmoire Vitesse dexcution Traabilit Compltude Prcision Cohrence Tolrance aux fautes Simplicit Modularit Concision Auto-description Instrumentation Gnralit Evolutivit Indpendance machine Indpendance systme Communications banalises Donnes banalises
Ssame (Ssame) Assurance Qualit Logicielle
Fiabilit
Maintenabilit Testabilit Flexibilit Portabilit Rutilisabilit Interoprabilit
Janvier 2013
Oprabilit Communicabilit Apprentissage Volume et taux dE/S Contrle daccs Consommation mmoire Vitesse dexcution Traabilit Compltude Prcision Cohrence Tolrance aux fautes Simplicit Modularit Concision Auto-description Instrumentation Gnralit Evolutivit Indpendance machine Indpendance systme Communications banalises Donnes banalises
Ssame (Ssame) Assurance Qualit Logicielle
Fiabilit
Maintenabilit Testabilit Flexibilit Portabilit Rutilisabilit Interoprabilit
Janvier 2013
Oprabilit Communicabilit Apprentissage Volume et taux dE/S Contrle daccs Consommation mmoire Vitesse dexcution Traabilit Compltude Prcision Cohrence Tolrance aux fautes Simplicit Modularit Concision Auto-description Instrumentation Gnralit Evolutivit Indpendance machine Indpendance systme Communications banalises Donnes banalises
Ssame (Ssame) Assurance Qualit Logicielle
Fiabilit
Maintenabilit Testabilit Flexibilit Portabilit Rutilisabilit Interoprabilit
Janvier 2013
Mesure des caractristiques internes - mesures objectives: taille, complexite du t de controle, cohsion modulaire / couplage entre modules, ... Mesure des caractristiques externes - evaluations stochastiques (statistiques): dlai moyen de rponse une requte, nombre de requtes simultanes sans crouler un serveur, ... Ce sont des mesures a posteriori - arrivent parfois trop tard
Ssame (Ssame)
Janvier 2013
22 / 57
Portabilit :
mesure objective : - nb dinstructions dpendant de la plate-forme cible
Facilit dutilisation :
mesures objectives : - nbr de paramtres ayant une valeur par dfaut (pertinente) - nbr dcrans daide mesures stochastiques : - nb de fausses manipulations par jour - nb de jours dapprentissage - temps de lecture / interprtation des rsultats achs
Ssame (Ssame) Assurance Qualit Logicielle Janvier 2013 23 / 57
Assurance Qualit
Un grand nombre de mtriques dicile de les connatre toutes, et souvent discutables (vision partielle/articielle du problme) Limportant, cest la dmarche : dnir un plan qualit adapt au contexte dtailler une mesure des dirents critres sinterroger sur la validit des mtriques (pertinence) Problme des mesures a posteriori trop tard, mais forge lexprience
Ssame (Ssame)
Janvier 2013
24 / 57
Assurance Qualit
Daprs IEEE Un modle plani et systmatique de toutes les actions ncessaires pour fournir une conance adquate quun article ou un produit est conforme ses exigences techniques tablies. Un ensemble dactivits conu pour valuer le processus par lequel les produits sont dvelopps ou fabriqus. A contraster avec: le contrle de qualit.
Ssame (Ssame)
Janvier 2013
25 / 57
Assurance Qualit
Daprs IEEE Un modle plani et systmatique de toutes les actions ncessaires pour fournir une conance adquate quun article ou un produit est conforme ses exigences techniques tablies. Un ensemble dactivits conu pour valuer le processus par lequel les produits sont dvelopps ou fabriqus. A contraster avec: le contrle de qualit.
Ssame (Ssame)
Janvier 2013
26 / 57
Assurance Qualit: Mise en oeuvre dune approche prventive de la qualit. LAQ consiste en un ensemble dactions de prvention des dfauts qui accompagnent le process de dveloppement des artefacts logiciels. Contrle Qualit: Mise en oeuvre dune approche curative de la qualit. Le CQ suppose que bien que le process de production est satisfaisant, il prsente des dysfonctionnements dont les eets doivent tre limins.
Ssame (Ssame)
Janvier 2013
27 / 57
La planication de la qualit doit commencer trs tt dand le processus de dveloppement. Le Plan Qualit doit dtermnier les qualits du produit auxquelles on attache de limportance, - Savoir ce que vous faites Le Plan Qualit doit dterminer les standards appropris au produit et au processus de dveloppement de ce produit. - Savoir ce que vous devriez faire Le Plan doit aussi dnir le processus destimation de la qualit, - Savoir mesurer la dirence
Ssame (Ssame)
Janvier 2013
28 / 57
Plan Assurance qualit Plan Assurance Qualit (PAQ) : Dispositions spciques un projet, un service, un contrat ayant pour objectifs : Le PAQ, dans sa version valide par les deux parties, constitue un engagement mutuel entre matrise douvrage et matrise doeuvre. Il dcrit le niveau de service requis. Il dcrit lensemble des dispositions spciques dassurance, de contrle et de suivi qualit prises par la matrise doeuvre pour obtenir et garantir la qualit de ses prestations. Il tend notamment tre le plus exhaustif possible sur les principes, les dispositions et les moyens pris pour obtenir la qualit des prestations objet du contrat, ainsi que sur les produits fournis et les engagements. Il permet galement de bien dnir le rle de chacun des intervenants des deux parties, matrise douvrage et matrise doeuvre ? Il sert de document de rfrence.
Ssame (Ssame) Assurance Qualit Logicielle Janvier 2013 29 / 57
Mthodes statiques a priori (sans executer le logiciel) - examen critique de documents et de code - analyse automatique (ou assiste) de code / spcication . analyse statique de programme . vrication de modle (model checking) . outils de preuves formelles Mthodes dynamiques a posteriori (en executant le logiciel) - tests - instrumentation de code
Ssame (Ssame)
Janvier 2013
30 / 57
Avoir un point de vue dirent de lauteur - quelquun dautre Avoir dirents points de vue - comptences multiples Avoir des points de vue objectifs - participants hors de lquipe de dveloppement Critiquer les aspects techniques, pas lauteur (!) Juger la forme : format, structure, satisfaction des normes du plan qualit... Juger le fond :
prcision, non-ambiguit, compltude, cohrence (pas de reference imprecise ou inexistante) conformit par rapport aux documents amont, au plan projet
Ssame (Ssame)
Janvier 2013
31 / 57
Cahier des charges 5-10 pages/h Spcications fonctionnelles 10 pages/h Conception globale 5-15 pages/h Conception dtaille 10 pages/h Code 20-50 lignes/h
Ssame (Ssame)
Janvier 2013
32 / 57
Ssame (Ssame)
Janvier 2013
33 / 57
Ssame (Ssame)
Janvier 2013
34 / 57
Ssame (Ssame)
Janvier 2013
35 / 57
Ssame (Ssame)
Janvier 2013
36 / 57
Ssame (Ssame)
Janvier 2013
37 / 57
Ssame (Ssame)
Janvier 2013
38 / 57
Ssame (Ssame)
Janvier 2013
39 / 57
Ssame (Ssame)
Janvier 2013
40 / 57
Ssame (Ssame)
Janvier 2013
41 / 57
Ssame (Ssame)
Janvier 2013
42 / 57
Ssame (Ssame)
Janvier 2013
43 / 57
Ssame (Ssame)
Janvier 2013
44 / 57
Ssame (Ssame)
Janvier 2013
45 / 57
Ssame (Ssame)
Janvier 2013
46 / 57
Ssame (Ssame)
Janvier 2013
47 / 57
Ssame (Ssame)
Janvier 2013
48 / 57
Ssame (Ssame)
Janvier 2013
49 / 57
Ssame (Ssame)
Janvier 2013
50 / 57
Rfrence aux donnes : variables non initialises - savoir si le langage initialise par dfaut et quand - dans les cas douteux, initialiser explicitement indices de tableaux hors bornes - principale source des failles de scurit (!) accs des structures/records champs variables ou des unions
Ssame (Ssame)
Janvier 2013
51 / 57
Rfrence aux donnes : confusion entre donne et pointeur vers la donne drfrence de pointeurs nuls pointeurs sur des donnes dsalloues ou pas encore alloues pointeurs sur des donnes devenues inutiles mais non libres
Ssame (Ssame)
Janvier 2013
52 / 57
Calculs : conversions de type (implicites et explicites) underow/overow (dpassement de capacit du type) division par zro prcdence des oprateurs - dans le doute (pour la lisibilit), toujours parenthser
Ssame (Ssame)
Janvier 2013
53 / 57
Comparaisons : incohrence des types - mlanges dentiers et de booleens inclusion ou non des bornes incorrecte - < au lieu de <=, >= au lieu de >, ... inversion du test - == au lieu de !=, > au lieu de <, ... confusion en egalite (==) et aectation (=) - if (x = y) ... au lieu de if (x == y) ...
Ssame (Ssame)
Janvier 2013
54 / 57
Comparaisons : confusion entre operateurs binaires (bits) et logiques - et (&, &&, and), ou (|, ||, or) negation incorrecte dune condition logique !(x ==1 && (y < 2 || !z)) equiv. x !=1 || (y >= 2 && z) prcdence des oprateurs booleens x || y && z equiv. x || (y && z)
Ssame (Ssame)
Janvier 2013
55 / 57
Contrle : ensemble de case incomplet cas default manquant break oubli rattachement du else au if ( dandling else) 1. if (a) if (b) x=0; else x=1; 2. if (a) {if (b) x=0;} else x=1; /* diff. de 1. */ 3. if (a) {if (b) x=0; else x=1;} /* idem 1. */
Ssame (Ssame)
Janvier 2013
56 / 57
Contrle : terminaison du programme - boucles et rcursions sans n boucles - conditions initiales (indices, ...) incorrectes - itrations en plus ou en moins - incohrences aprs une sortie de boucle anticipe - incohrences aprs une sortie de boucles emboites procdures et fonctions - incohrences aprs une sortie anticipe exceptions non rattrapes
Ssame (Ssame)
Janvier 2013
57 / 57