SEG 3501 Module 3 Exigences nonfonctionnelles et mesures

  • Slides: 29
Download presentation
SEG 3501 - Module 3 Exigences non-fonctionnelles et mesures de qualité pour logiciels Basées

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.

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. ―

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

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:

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 ―

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

«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.

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

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

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

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

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

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

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

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 à

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,

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.

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

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,

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%

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

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

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 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

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

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

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”

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

Dilbert et la qualité «SEG 3 501» D. Am u. Otta yot wa Module 3 : Exigences NF et Qualité 29