Cours 3: Qualite de conception Flashcards

1
Q

Qu’est-ce que la qualite de la conception?

A
• En fait, la qualité inclut plusieurs
notions et concepts, qui sont
utilisés ensemble pour déterminer
et confirmer que le logiciel
fonctionne comme il faut et
comme désiré.
• On va se concentrer sur la qualité
interne structurelle.
• La qualité est un critère
fondamental pour la sélection
d’une architecture et pour la
conception du logiciel.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quelles sont les diverses perspectives de la qualite.

A

• La qualité pour l’utilisateur : Le logiciel est utile et il fonctionne
comme prévu dans le contexte d’utilisation ?
• La qualité selon la valeur : Le logiciel est évalué basé sur la valeur qu’il
produit.
• La qualité du produit : La qualité est mesurée selon les
caractéristiques du produit.
• La qualité pour le fabricant : Le logiciel est évalué selon sa conformité
aux exigences.

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

Que fait-on avant de comparer/evaluer la qualite?

A

• On a besoin de :
• Un modèle
• Quels sont les critères selon lesquels on va évaluer le logiciel?
• Quelles sont nos priorités pour la conception, l’implémentation et l’utilisation du
logiciel?
• Des métriques
• Internes, pendant le développement (mesurées de façon statique)
• Externes, pendant l’exécution (mesurées de façon dynamique)
• À l’usage, pendant l’utilisation (mesurées par des humains)
• Une procédure
• Concevoir, planifier, exécuter l’évaluation.
• Définir le cadre de l’interprétation des résultats.

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

Est-ce qu’on peut mesure les criteres?

A
  • Taille : Lignes du code (LOC)
  • Complexité de : Nombre d’attributs et de méthodes (SIZE2), Nombre de méthodes locales (NOM)
  • Complexité structurelle: Complexité cyclomatique de McCabe (CC), Nombre pondéré de méthodes (WMC), Réponse pour une classe (RFC)
  • Héritage : Profondeur de l’arbre d’héritage (DIT), Nombre d’enfants (NOC)\
  • Couplage : Couplage afférent (Ca), Couplage entre les objets (CBO), Autres…
  • Cohésion : Manque de cohésion entre les méthodes (LCOM), Cohésion de classe serrée (TCC), Autres…
  • Documentation: Manque de documentation (LOD)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quels sont les differents metriques pour la taille?

A

• LOC : Elle compte le nombre des caractères de saut de ligne dans une méthode, une classe, une unité de compilation. Il y a plusieurs variantes : lignes du code source (SLOC), lignes du code sauf la documentation et les lignes blanches.
• SIZE2 : Elle compte le nombre d’attributs et de méthodes d’une classe.
• NOM : Elle compte le nombre de méthodes déclarées dans une classe, pas
les méthodes dérivées.
• Des valeurs absolues.
REVOIR CA
•Quand la LOC, la SIZE2 et la NOM augmentent : Compréhensibilité, Attraction, Analysabilité, Possibilité de modification, Testabilité,
Adaptabilité, Facilité d’apprentissage, Stabilité, Remplaçabilité, Interopérabilité,
Sécurité, Tolérance aux pannes, Récupérabilité

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

Quels sont les metriques de la complexite?

A

• CC : Elle compte le nombre de chemins indépendants dans un morceau de code.
• Définition1 : CC = E – V + 2*P, E=arêtes, V=nœuds, P=composantes connectés
• Définition2 : compte le nombre d’instructions de branchement (if, while, for, do, switch), les
opérandes logiques (II, &&) plus 1 (définition d’Eclipse Metrics et STAN).
• WMC : Elle compte la somme d’une métrique pour toutes les méthodes d’une
classe. La métrique peut être la complexité, la LOC ou aucune (unweighted).
• Définition :𝑊𝑀𝐶 = σ𝑖=1
𝑛 𝐶𝐶𝑖
• RFC : Elle compte le nombre de méthodes publiques d’une classes et toutes les
méthodes accédées directement par ces méthodes publiques.
• Des valeurs absolues.
• Quand la CC, la WMC et la RFC augmentent :
REVOIR CA
• Compréhensibilité, Opérabilité, Attraction, Analysabilité, Possibilité de modification,
Testabilité, Adaptabilité, Facilité d’apprentissage, Stabilité, Remplaçabilité, Interopérabilité,
Sécurité, Tolérance aux pannes, Récupérabilité

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

Quelles sont les metriques de l’heritage?

A

• DIT : Elle calcule la longueur maximale d’une classe dérivée à une classe de
base dans la structure d’héritage du système.
• NOC : Elle compte le nombre de classes immédiatement dérivées d’une
classe de base.
• Des valeurs absolues.
• Quand la DIT augment :
• Compréhensibilité, Opérabilité, Attraction, Analysabilité, Possibilité de modification,
Testabilité, Adaptabilité, Facilité d’apprentissage, Stabilité, Remplaçabilité,
Interopérabilité, Sécurité, Tolérance aux pannes, Récupérabilité
• Quand la NOC augment :
• Compréhensibilité, Opérabilité, Attraction, Analysabilité, Possibilité de modification,
Testabilité, Adaptabilité, Facilité d’apprentissage, Stabilité, Remplaçabilité,

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

Quels sont les metriques de couplage?

A

• CBO : Elle compte le nombre de classes qui sont « couplées » avec une classe.
Deux classes A et B sont couplées, si la classe B utilise des méthodes de la classe
A.
• Ca : Elle compte le nombre de classes externes qui sont couplées (par la
définition de la CBO) avec des classes d’un paquet par rapport au couplage
d’entrée (c.-à-d. les classes externes utilisent des méthodes des classes internes).
• Des valeurs absolues.
• Quand la CBO augment :
• Compréhensibilité, Opérabilité, Attraction, Analysabilité, Possibilité de modification,
Testabilité, Adaptabilité, Facilité d’apprentissage, Interopérabilité, Sécurité, Tolérance aux
pannes, Récupérabilité
• Quand la Ca augment :
• Opérabilité, Attraction, Facilité d’apprentissage, Stabilité, Remplaçabilité, Interopérabilité,
Sécurité, Tolérance aux pannes

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

Quels sont les metriques de la cohesion?

A

• LCOM : Plus de 6 définitions!
• On va utiliser celle de Henderson-Sellers :
• α est le nombre d’attributs d’une classe, m est le nombre de méthodes, μ(Αj) est le nombre
de méthodes qui accèdent à l’attribut Aj.
• Mais pourquoi est-ce si difficile de calculer LCOM?
• Il y a des classes sans attributs, ou avec une seule méthode, ou avec un seul attribut.
• L’héritage complique la situation au niveau des attributs et des méthodes hérités.
• Il y a les méthodes d’accès et de modification.
• TCC = NDP/NP, NDP = nombre de paires de méthodes qui accèdent aux attributs
directement, NP = nombre de paires de méthodes (n(n-1)/2)
• Des pourcentages (valeurs normalisées) LCOM=0 ➔ Cohésion maximale, TTC=1
➔ Cohésion maximale
• Deux des métriques les plus fiables.
• Quand la LCOM diminue ou la TCC augment :
• Maturité, Compréhensibilité, Attraction, Analysabilité, Possibilité de modification, Testabilité,
Adaptabilité, Facilité d’apprentissage, Stabilité, Remplaçabilité

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