Semaine 7 Flashcards

Étude performance logicielle

1
Q

Qu’est ce que l’efficacité de performance?

A

Le critère qui représente la performance relative à la quantité de ressources utilisées sous certains conditions. Le critère contient 3 sous critères.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

EFFICACITÉ ET PERFORMANCE:

Qu’est-ce que le comportement par rapport au temps?

A

Le degré de conformité des temps de réponse ou de traitement et du taux de traitement (throughput) du système aux exigences.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

EFFICACITÉ ET PERFORMANCE:

Qu’est-ce que l’utilisation des ressources?

A

Le degré de conformité de la quantité et

des types des ressources utilisées par le système aux exigences.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

EFFICACITÉ ET PERFORMANCE:

Qu’est-ce que la capacité?

A

Le degré de conformité des limites maximales de

certains paramètres du système aux exigences.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quels sont les indices pour capturer et évaluer la performance?

A
  • Temps de réponse : Le temps de bout en bout qu’une tâche prend pour traverser une partie du système.
  • Taux de traitement : Le nombre de requêtes ou de tâches complétées par unité de temps par une partie du système.
  • Utilisation : C’est le pourcentage de temps qu’une partie du système est occupée en travaillant.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Qu’est-ce que l’ingénierie de la qualité logicielle (SPE)?

A
  • L’ensemble des techniques, des outils et des méthodologies pour assurer la conformité aux exigences non-fonctionnelles de la performance selon les indices spécifiées pendant la vie entière du logiciel.
  • Une approche systématique et quantitative pour le développement efficace du logiciel afin de conformer aux exigences nonfonctionnelles.
  • L’ensemble des tâches et des activités qui doivent être performées pendant le cycle de vie du logiciel pour conformer aux exigences nonfonctionnelles.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quels sont les objectifs du SPE?

A

• Augmenter le revenu en assurant que le système traite toutes les transactions en temps opportun.
• Éliminer les défaillances qui requissent la réingénierie complète du système à cause des défaillances des
objectifs de performance.
• Éliminer le déploiement retardé à cause des problèmes de la performance.
• Éliminer l’effort de la réingénierie évitable à cause des problèmes de la performance.
• Éliminer l’effort évitable des optimisations à cause des problèmes de la performance.
• Éviter les coûts additionnels et inutiles d’achat du matériel.
• Réduire les coûts augmentés de la maintenance à cause des problèmes de la performance pendant la
production.
• Réduire les coûts augmentés de la maintenance à cause des corrections ad hoc de la performance.
• Réduire la surcharge opérationnel pour adresser les problèmes du système à cause des problèmes de la
performance.
• Identifier les goulots d’étranglement en simulant un prototype.
• Augmenter la capacité des serveurs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Quelles sont les étapes pour la SPE phase des exigences?

A

• Réviser les exigences des affaires et la documentation (Comprendre les objectifs entrepreneuriaux et les moyens utilisés pour les atteindre.)
• Réviser les métriques de performance de la production de la version
actuelle si disponible.
• Déterminer les exigences non-fonctionnelles (les cibles de la performance du système et les métriques pour leur évaluation sont aussi définis)
• Déterminer les outils, les ressources et l’infrastructure.
(l’identification précoce permet l’allocation du budget et du temps pour l’installation et la formation du personnel.)
• Confirmer la cohérence des exigences entre eux et par rapport aux exigences fonctionnelles (résoudre les conflits entre les exigences.)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quelles sont les étapes pour la SPE architecture et conception?

A
  • Évaluer les alternatifs
  • Déterminer la capacité de l’infrastructure requise.
  • Définir les cibles de la performance pour les développeurs.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quelles sont les étapes pour la SPE Implémentation?

A
  • Poursuivre le développement et monitorer les tests unitaires de la performance.
  • Développer des modèles de charge de travail (workload).
  • Installer et configurer les outils de monitorage pour le logiciel et l’infrastructure.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Quels sont les avantages de la SPE?

A
  • La définition d’un ensemble clair d’exigences non-fonctionnelles garantit le développement réussi.
  • La concentration constante et précoce sur la performance du système pendant toutes les phases de développement prévient les modifications tardives et couteuses au futur.
  • Le monitorage de la performance en production maintient la performance et la fiabilité du système, et il permet l’expansion de la capacité avant elle est dépassée.
  • L’approche proactive permet d’éviter les problèmes et de se concentrer sur le développement et pas sur la résolution constante des problèmes.
  • En réussissant à livrer un système fonctionnel et performant selon les exigences, le client va recevoir la valeur totale.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Quels sont les défis de la SPE?

A

• En favorisant le temps au marché et les contraints budgétaires, l’importance de SPE dans le cycle de vie du logiciel est diminuée.
• Le défi principal pour un SPE inefficace est un écart de connaissance entre les
développeurs et les experts de qualité.
• La performance est perçue par les utilisateurs.
• Une solution recommandée pour combler le fossé est l’automatisation (éliminer la besoin des personnes qualifiées pour la construction manuelle des méthodes et des modèles pour la performance et réduire le temps et l’effort pour la validation de la performance.)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Quels sont les concepts de base des mesures?

A
  • Fournir des données d’entrée pour les modèles SPE, pour vérifier et valider les modèles.
  • Évaluer la conformité aux cibles de la performance.
  • Monitorer la performance pendant le cycle de vie du logiciel.
  • Mesures statiques (pas besoin d’exécuter le système) et dynamiques (le système doit être s’exécuter pendant la mesure.)
  • Mesures internes (du code pour détecter des évènements et enregistrer les données de la performance doit être insérer au code du système) et externes (le logiciel qui mesure est indépendant du logiciel qui est mesuré.)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quels sont les objectifs des mesures?

A
  • Compréhension du système
  • Spécification des modèles.
  • Mise à jour des modèles.
  • Vérification et validation des modèles.
  • Évaluation de la performance logicielle.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Quel est le processus des mesures?

A
  1. Comprendre l’objectif de la mesure (questions et hypothèse).
  2. Identifier les données nécessaires pour répondre à ces questions, les outils de collection et les techniques de mesure.
  3. Identifier les variables expérimentales et les contrôles.
  4. Définir les cas de test : workload, composante du logiciel et l’environnement de chaque test.
  5. Exécuter les tests et collecter les données.
  6. Analyser, interpréter, présenter les résultats.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Quels sont les facteurs qui empêchent les mesures?

A
  • Perturbation du système (lorsque le système des mesures affecte la performance du système mesuré.)
  • Taux de capture (le taux de temps du monitorage pendant la perturbation.)
  • Surcharge du système (le temps absolu pendant la perturbation.)
  • Timing des mesures (considérer l’horloge du système d’exploitation, intervalle d’échantillonnage).
  • Résultats reproductibles (le système n’est pas isolé et d’autres opérations affectent le monitorage et la performance.)
  • Périodes du temps représentatives
  • Moyennes de comportement typique
  • Génération de workload
17
Q

Qu’est-ce que le testing de la performance?

A

• L’ensemble des tests et des méthodologies pour mesurer, vérifier et valider la performance du système.
• Il fait partie de SPE.
• Ses objectifs incluent :
- Démontrer la conformité du système aux critères de performance.
- Comparer deux systèmes pour trouver le plus performant.
- Mesurer et identifier les composantes qui cause le système de ne pas performer bien.

18
Q

Quels sont les types de tests?

A

• Load testing : Tester la performance du système sous la charge attendue. Un nombre d’utilisateurs qui performent un nombre de requêtes spécifié pendant
une durée donnée.
• Stress testing : Tester les limites de la capacité du système.
• Endurance testing : Tester le système sous la charge attendue pour longtemps.
• Spike testing : Tester la réaction du système en augmentant ou en diminuant subitement la charge générée par un très grand nombre d’utilisateurs
• Capacity testing : Tester le système pour trouver la capacité maximale.
• Configuration testing : Tester l’effet de divers configuration ou des changements de configuration au système.

19
Q

Quel est le processus de testing?

A
  1. Décider si on va utiliser des ressources internes ou externes pour performer les tests.
  2. Éliciter les exigences de performance par les utilisateurs.
  3. Développer le plan SPE.
  4. Développer un plan détaillé pour le testing de la performance.
  5. Choisir les outils du testing.
  6. Spécifier les données de test et l’effort nécessaires.
  7. Préparer les scénarios de validation.
  8. Configurer l’environnement des tests.
  9. Exécuter les tests
  10. Analyser les résultats.
20
Q

Quels sont les erreurs communes en testing?

A

• Testing de la performance est la dernière étape du développement.
• Plus de matériel fixe tous les problèmes de performance.
• Ce qui marche maintenant, il va marcher toujours.
• Un scenario du testing est suffisant.
• Tester chaque parti du système égale tester le système entier.
• Les développeurs sont trop expérimentés pour avoir besoin du
testing.
• Load testing est suffisant.

21
Q

Qu’est-ce que le profiling?

A

• Une forme d’analyse de programme dynamique qui mesure la complexité du programme en terme d’espace (mémoire) ou de temps, ou la fréquence
et la durée des appels des fonctionnes.
• Son objectif est l’optimisation du programme et de la gestion des ressources.
• Il est un processus qui aide à comprendre le comportement d’un programme.
• Il aide aussi à évaluer et comparer la performance aux différentes architectures.
• Profiling a deux composantes importantes : instrumentation et échantillonnage (sampling).

22
Q

Qu’est-ce que l’instrumentation?

A

C’est une technique selon laquelle on ajoute de code (probes) dans le programme monitoré pour
collecter des données de performance.
Il est possible d’ajouter les probes à plusieurs niveaux du système.
- Code source (en façon manuelle ou automatique)
- Assisté par le compilateur
- Code binaire

23
Q

Quelle est la motivation pour le profiling?

A
  • Collecter exactement les données nécessaires et inférer la localité des données.
  • Contrôler la granularité des données.
  • Contrôler le processus de mesure en activant et désactivant les probes.
24
Q

Quelles sont les étapes de conception de l’instrumentation?

A
  • Identifier les évènements à mesure.
  • Choisir le niveau de granularité
  • Sélectionner dynamiquement les données étant enregistrées
25
Q

Quels sont les pièges de l’instrumentation?

A

• L’instrumentation ajoute des instructions au début et à la fin d’une opération pour compter le temps d’exécution de l’opération. Ces instructions ajoute de la surcharge.
• L’instrumentation calcule la surcharge et elle la soustrait du temps d’exécution pour rendre la mesure plus précise.
• Si l’opération est trop courte, la surcharge devient considérable et le profiler ne
peut pas comparer précisément les temps entre les opérations courtes et les opérations lentes. Alors on peut avoir un faux positif : le profiler peut identifier un goulot d’étranglement qui n’existe pas.
• Car l’instrumentation est un processus intrusif, il est possible d’identifier des « heisenbugs ».
• Des bogues dont la présence se dépende au processus de la mesure.
• Un phénomène connu comme « l’effet de l’observateur ».

26
Q

Décrire le sampling.

A
  • Sampling n’affecte pas l’exécution du programme. Aucune instruction est insérée dans le coude source ni dans le code compilé.
  • Le système d’exploitation interrompe le CPU aux intervalles réguliers et le profiler enregistre l’instruction qui s’exécute présentement.
  • Le profiler corrèle l’instruction avec le point correspondant dans le code.
  • Le profiler retourne la fréquence d’exécution des points du code.
  • On doit répéter le profiling avec le sampling plusieurs fois pour obtenir une signification statistique.
27
Q

Quelles sont les différences entre le sampling et l’instrumentation?

A
  • Le sampling est moins précis mais beaucoup plus efficace que l’instrumentation. Le sampling se base sur des approximations, alors il requit plusieurs exécution du profiling pour converger ses résultats. Le sampling est un processus externe de l’application alors il n’empêche pas la performation du logiciel et il n’ajoute aucune surcharge.
  • Car le sampling capture juste un instantané du CPU, il perd des informations. On sais quelle est l’instruction qui s’exécute, mais on ne sait pas qui a appelé l’instruction.
  • Si l’opération profilée est trop courte (plus courte que l’intervalle du sampling), le sampling ne va pas la capturer.
  • Si l’opération ou le système profilés sont assez lents, on préfère l’instrumentation. Parce que la surcharge ajoutée est insignifiante par rapport au temps d’exécution des opérations.