SEG 3501 Module 3 Exigences nonfonctionnelles et mesures





























- Slides: 29
SEG 3501 - Module 3 Exigences non-fonctionnelles et mesures de qualité pour logiciels Basées sur du matériel de J. Atlee, D. Berry, R. Pressman, S. Somé, G. Mussbacher et D. Damian «SEG 3 501» D. Am u. Otta yot wa
To measure is to know. If you cannot measure it, you cannot improve it. [Lord Kelvin (1824 - 1907)] «SEG 3 501» D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 2
Qualité du logiciel • La plupart des définitions impliquent le respect des exigences. ― “Conformance to explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software. ” [Pressman, 1997] «SEG 3 501» D. Am u. Otta yot wa • Implication: nous devons être capables de quantifier explicitement les exigences et de vérifier, via des mesures, qu’elles sont satisfaites par les solutions. Module 3 : Exigences NF et Qualité 3
Observation sur les mesures • Il existe un phénomène intéressant: Les objectifs mesurables sont habituellement atteints! «SEG 3 501» D. Am u. Otta yot wa • Ainsi, à moins d’avoir des quantités irréalistes, les exigences sont habituellement satisfaites. • Important de savoir quelles mesures existes!!! • Les quantités choisies vont cependant avoir un impact sur la quantité de travail à accomplir lors du développement de même que le nombre d’alternatives architecturales et de conceptions parmi lesquelles développeurs auront le loisir de choisir afin de satisfaire les exigences. Module 3 : Exigences NF et Qualité 4
Types d’exigences non-fonctionnelles (ENF) «SEG 3 501» D. Am u. Otta yot wa Source: Gerald Kotonya and Ian Sommerville, Requirements Engineering – Processes and Techniques, Wiley, 1998 Module 3 : Exigences NF et Qualité 5
Ressources intéressantes sur les ENF • ISO/IEC 9126 Software engineering — Product quality ― http: //en. wikipedia. org/wiki/ISO/IEC_9126 • "ilities" ― http: //en. wikipedia. org/wiki/Ilities • Software Quality, (et comment la mesurer) «SEG 3 501» D. Am u. Otta yot wa ― http: //en. wikipedia. org/wiki/Software_quality Module 3 : Exigences NF et Qualité 6
«SEG 3 501» D. Am u. Otta yot wa De plus en plus remplacé par: ISO/IEC 25000: 2005 Software Engineering -- Software product Quality Requirements and Evaluation (SQua. RE) -- Guide to SQua. RE Module 3 : Exigences NF et Qualité 7
Obtenir des quantités mesurables • Les quantités ne peuvent pas être arbitraire ou devinées. Elles doivent être bien comprises. • Si une exigence demande de “réduire le temps de réponse de 25%”, ceci implique le temps de réponse actuel est connu et qu’il existe une raison pour laquelle on veut 25% et non 20% ou 30%. ― Atteinte d’un but! • Il est peu probable que ces nombres vous soient donnés directement par vos clients au début… «SEG 3 501» ― Ne ralentissez pas votre processus d’élicitation et d’analyse d’exigences pour autant. ― Prenez en note les attributs de qualité pertinents ― Vous pourrez négocier des quantités mesurables plus tard. D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 8
Métriques et mesures • Nous utiliserons mesure de façon générique dans ce document, mais il existe en fait une distinction entre mesure et métrique. • Par exemple, pour la disponibilité ― Métrique: Temps moyen entre pannes ― Mesure: 23 jours entre pannes – une observation spécifique! «SEG 3 501» D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 9
Mesures de performance (1) • Très riche en mesures ― Temps de réponse, temps d’attente, débit, capacité, nombre d’invocations de services traitées/refusées, temps/taux d’utilisation, latence, gigue (jitter), perte d’information … ― Différents nombres et ratios, avec probabilité et intervalles de confiance… • Peut être analysée, modélisée, simulée au niveau architectural (prédictions!) «SEG 3 501» D. Am u. Otta yot wa ― Exemples de modèles: – Réseaux de files d’attentes à niveaux (LQN) – Algèbre de processus – Réseaux de Pétri stochastiques ― Exemple d’analyses: – Calcul des mesures ci-haut – Sensibilité (découverte des paramètres à haut impact) – Extensibilité (et si on ajoutait…) ― Exemple de méthode: UCM vers LQN Module 3 : Exigences NF et Qualité 10
Mesures de performance (2) «SEG 3 501» • Le système doit pouvoir traiter 100 transactions de paiement par seconde en période de pointe. • Sous une charge normale, l’utilisation du processeur doit être de 50% ou moins. • Le système doit produire un rapport en moins de 20 secondes pour 95% des situations. • Dérouler d’une page vers le haut ou vers le bas dans un document de 200 pages doit prendre au maximum 250 millisecondes. D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 11
Mesures de fiabilité (1) • Le système va-t-il fonctionner de façon inattendue lors d’une requête? ― Critère très important pour les systèmes critiques et continus (où le nombre de fautes est moins important que les chances que le système ne fonctionne pas comme prévu) ou scientifiques. • Mesures ― Taux d’occurrence de fautes/erreurs (observables) ― Précision des calculs «SEG 3 501» D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 12
Mesures de fiabilité (2) • Exemples ― La précision des calculs du système doit se faire avec au moins 15 chiffres significatifs. ― Le taux d’erreurs du système doit être de moins d’une erreur par 1000 heures d’activité. «SEG 3 501» D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 13
Mesures de disponibilité (1) • Proportion du temps pendant laquelle le système fonctionne correctement ― Probabilité qu’il soit fonctionnel lorsqu’on en a besoin! • Mesurée par la durée entre les pannes et par la rapidité de reprise de service ― Temps moyen entre pannes: MTBF (Mean Time Between Failures) ― Temps moyen de réparation: MTTR (Mean Time To Repair) ― Disponibilité = MTBF/(MTBF+MTTR) • Peut mener à des exigences architecturales: ― Composantes redondantes (abaisse MTBF). ― Modificabilité des composantes (abaisse MTTR). ― Types de composantes spéciales (p. ex. auto-diagnostiques) • MTTF et MTTR peuvent-être estimés «SEG 3 501» ― Exemple: par modélisation Markov. D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 14
Mesures de disponibilité (2) • Exemples ― Le système doit être disponible au minimum 99. 99% du temps. ― Le système ne doit pas être indisponible plus d’une heure par 1000 heures d’activité. ― Le système doit être redémarré en moins de 20 secondes après une défaillance, dans plus de 95% des situations (MTTR…) • Disponibilité «SEG 3 501» D. Am u. Otta yot wa ― ― ― 90% 99. 9% 99. 999% 99. 9999% Temps d’arrêt 36. 5 jours/année 3. 65 jours/année 8. 76 heures/année 52 minutes/année 5 minutes/année 31 secondes/année Module 3 : Exigences NF et Qualité 15
Mesures de sécurité (1) • Mesure de la capacité du système à résister à des tentatives d'usage non-autorisées et refus de services (Do. S) • Mesures: «SEG 3 501» ― Taux de succès en authentification ― Résistance à des types d’attaques connues ― Temps/efforts/ressources nécessaires pour trouver une clé de chiffrage (probabilité de trouver la clé) ― Probabilité/temps/ressources pour détecter une attaque ― Pourcentage de services encore disponibles pendant une attaque ― Pourcentage d’attaques réussies ― Durée de vie d’un mot de passe, d’une session ― Niveau de chiffrement ― Nombre de copies de sûreté D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 16
Mesures de sécurité (2) • Peuvent mener à des exigences architecturales ― Authentification, autorisation, audit ― Mécanismes de détection ― Coupe-feu, canaux de communication chiffrés • Peut aussi être modélisée (logique…) • Exemples d’exigences: «SEG 3 501» ― L’application doit identifier toutes ses applications clientes avant de leur permettre d’accéder à ses services. ― Le système doit détecter au moins 99% des tentatives d’intrusion en moins de 10 secondes. D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 17
Mesures d’utilisabilité (1) • Comprend plusieurs facettes et mesures, incluant: «SEG 3 501» D. Am u. Otta yot wa ― Facilité d'apprentissage (learnability) – Taux de fonctionnalités ou de tâches maîtrisées après une période de formation ― Efficacité de l’interface – Rapidité acceptable des réponses aux requêtes – Nombre de tâches exécutés ou problèmes résolus par unité de temps – Nombre de “clics” requis pour atteindre une certaine information ou fonctionnalité ― Facilité de mémorisation (memorability) – Nombre/taux de façons de faire retenues après une période de temps ― Prévention des erreurs l'usager – Nombre d’erreurs par période de temps par types d’utilisateurs – Quantité d’appels au support aux usagers Module 3 : Exigences NF et Qualité 18
Mesures d’utilisabilité (2) • Et aussi: ― Reprise d'erreur – Temps pour récupérer/refaire un travail après erreur ― Accessibilité – Respects de normes pour personnes handicapées ― Satisfaction de l'usager – Taux de satisfaction par types d’utilisateurs, taux d’utilisation • Exemples: «SEG 3 501» D. Am u. Otta yot wa ― Après une introduction de deux heures au système, le système devrait permettre à au moins 80% des utilisateurs d’être capables d’enregistrer un nouveau client en moins de 5 minutes. ― Le système doit permettre aux utilisateurs novices de pouvoir faire les tâches X et Y en moins de 15 minutes. ― Le système doit permettre aux utilisateurs experts de pouvoir faire les tâches X et Y en moins de 2 minutes. ― Le niveau de satisfaction envers le système doit être « très bon » ou meilleur pour au moins 80% des clients ayant utilisé le système pendant 3 mois. Module 3 : Exigences NF et Qualité 19
Mesures de maintenabilité (1) • Habilité à effectuer des changements rapidement et efficacement (extensions, corrections, adaptation, restructurations…) • Mesures ― Couplage, dépendances, quantité d’anti-patterns, complexité cyclomatique ― Temps moyen pour corriger un problème, temps moyen pour ajouter une nouvelle fonctionnalité (par experts, par nouveaux développeurs) ― Présence, accessibilité, utilité de la documentation (design, code, guides de mise à jour) • Quelques outils permettent de mesurer la maintenabilité du code. Regardez les métriques qu’ils offrent pour les utiliser dans vos exigences! «SEG 3 501» D. Am u. Otta yot wa ― Exemple: Structural Analysis for Java d’IBM http: //www. alphaworks. ibm. com/tech/sa 4 j ― Utilisation dans j. UCMNav http: //jucmnav. softwareengineering. ca/twiki/bin/view/Projet. S EG/Milestone. Four Module 3 : Exigences NF et Qualité 20
Mesures de maintenabilité (2) • Exemples d’exigences «SEG 3 501» ― Au moins 70% des modules du programme évalués selon la procédure X doivent avoir la cote « hautement maintenable » ― 0% des modules du programme évalués selon la procédure X doivent avoir la cote « nonmaintenable » ― La complexité cyclomatique du code ne doit pas excéder 7. ― Aucune méthode d’une classe ne peut avoir plus de 200 lignes de code. ― L’installation d’une nouvelle version du logiciel doit laisser les préférences des utilisateurs inchangées. D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 21
Mesures de testabilité (1) • Facilité avec laquelle peuvent être détectées, isolées, et corrigées les fautes • Mesures ― Temps pour exécuter les tests ― Temps pour mettre en place un environnement de test (développement et exécution) ― Probabilité d’échec visible si une faute existe ― Couverture des tests (exigences, code) «SEG 3 501» D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 22
Mesures de testabilité (2) • Peut mener à des exigences architecturales: ― Mécanismes de monitorage ― Points d’accès et de contrôle supplémentaires • Exemples ― Les modules prioritaires doivent avoir été testés avec une couverture de branchement d’au moins 80% ― Les tests de régression du système doivent pouvoir être exécutés en moins de 12 heures. «SEG 3 501» D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 23
Mesures de portabilité • Capacité d'exécution sur différents plateformes ― Matériel, OS, langages, versions… • Mesures: ― Nombre/énumération de plateformes ― Pourcentage du code ou des fonctionnalités indépendantes de la plateforme ― Temps moyen pour porter un produit vers une nouvelle plateforme • Exemple «SEG 3 501» D. Am u. Otta yot wa ― Moins de 5% du code de l’implémentation doit être spécifique au système d’exploitation Module 3 : Exigences NF et Qualité 24
Mesures de robustesse • Capacité à répondre à l’inattendu ― Pourcentage d’échecs sur entrées invalides ― Spécification de dégradation de service – Performance minimales sous charges extrêmes – Services actifs en présence de fautes – Durée pendant laquelle le produit doit gérer des conditions de stress • Exemple ― La perte de données lors d’un bris de disque dur doit être de moins de 0, 01% «SEG 3 501» D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 25
Mesures d’intégrabilité et de réutilisabilité • Intégrabilité ― Capacité à faire fonctionner ensemble des composantes développées séparément ― Temps moyen pour intégrer avec un nouveau système adjacent • Réutilisabilité «SEG 3 501» ― Capacité à réutiliser la structure du système ou des composantes ― Utilisation de cadres de développement standards ― Couplage de composantes ― Réutilisation: pourcentage d’exigences, d’éléments de design, de tests, de code, de structures de données réutilisées D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 26
Mesures de qualité et domaines • Les mesures de qualité les plus appropriées vont varier d’un domaine d’application à l’autre • Performance ― Système Web: – Nombre de requêtes traitées / secondes ― Jeux vidéo – Nombre d’images 3 D / secondes • Accessibilité ― Système Web: – Respect de normes pour les personnes aveugles ― Jeux vidéo: – Manipulation par enfants de moins de 12 ans «SEG 3 501» - Aussi: pas de violence… D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 27
Autres exigences non-fonctionnelles «SEG 3 501» • Que dire de ENF tels que “amusant” ou “cool” ou “beau” ? Comment les mesurer? • Les listes d’attributs de qualité préexistantes sont intéressantes mais elles n’incluent pas ce genre de qualificatifs. • Il est parfois préférable de laisser les clients faire leur remue-méninge avant de proposer les catégories conventionnelles. • Il faut aussi raffiner ces buts en exigences mesurables. D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 28
Dilbert et la qualité «SEG 3 501» D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 29