IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université...

43
Yann-Gaël Guéhéneuc © Yann-Gaël Guéhéneuc 2004 Département d’informatique et de recherche opérationnelle Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels Professeur adjoint [email protected], local 2345 (Cours inspiré du cours du Pr. François Lustman)

Transcript of IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université...

Page 1: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

Yann-Gaël Guéhéneuc

© Yann-Gaël Guéhéneuc 2004

Département d’informatique et de recherche opérationnelle

Université de Montréal

IFT3902 :(Gestion de projet pour le)

développement, (et la)maintenance des logiciels

Professeur [email protected], local 2345

(Cours inspiré du cours du Pr. François Lustman)

Page 2: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

2/43

Les métriques

1. Introduction2. Métriques de produit3. Métriques de processus4. Métrique de qualité5. Conclusion

Page 3: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

3/43

1. Introduction (1/5)

n Une application définit une métrique (ou une distance) sur X, ssi–––

+ℜ→2: Xd

),(),( , xydyxdXyx =∈∀yxyxdXyx =⇔=∈∀ 0),( ,

),(),(),( ,, zydyxdzxdXzyx +≤∈∀

Page 4: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

4/43

1. Introduction (2/5)

nMétriques en génie logiciel« Lorsque vous pouvez mesurer ce dont vous parlez et l’exprimer en nombres, vous savez quelque chose à son sujet ; mais lorsque vous ne pouvez l’exprimer en nombres, votre connaissance est maigre et peu satisfaisante : c’est peut-être le début de la connaissance mais dans vos pensées, vous avez à peine progressé jusqu’au stade de la science. »

Lord Kelvin (traduction approximative)

Page 5: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

5/43

1. Introduction (3/5)

nMétriques en génie logiciel– Formulation– Collection– Analyse

« C’est une erreur de proposer une mesure sans consensus sur la caractéristique mesurée »

Norman Fenton (traduction approximative)

Page 6: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

6/43

1. Introduction (4/5)

nMétriques en génie logiciel– Privées– Publiques

n Éthique !

Page 7: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

7/43

1. Introduction (5/5)

nMétriques en génie logiciel– Métriques directes / métriques indirectes

• Métrique directe – Résultat direct de l’observation– Exemple : KLOC

• Métrique indirecte– Résultat d’une transformation des résultats de l’observation– Exemple : complexité cyclomatique

Page 8: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

8/43

Les métriques

1. Introduction2. Métriques de produit3. Métriques de processus4. Métrique de qualité5. Conclusion

Page 9: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

9/43

2. Métriques de produit (1/4)

n Exemples– Nombre de lignes de code

final Entity targetEntity = relationship.getTargetActor();final String targetEntityName = targetEntity.getName();

if (!(targetEntity instanceof Ghost)|| (this.visibleElements & VisibilityElement.GHOST_ENTITIES_DISPLAY)== VisibilityElement.GHOST_ENTITIES_DISPLAY) {

final StringBuffer relationshipNames;if (relationships.containsKey(targetEntityName)) {

relationshipNames =(StringBuffer) relationships.get(targetEntityName);

}else {

relationshipNames = newStringBuffer();relationships.put(targetEntityName, relationshipNames);

Page 10: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

10/43

2. Métriques de produit (2/4)

n Exemples– Complexité cyclomatique (McCabe)

• Mesure du nombre de chemins indépendants dans un algorithme. Mesure de la complexité de l’algorithme par rapport au nombre de chemin pour traverser cet algorithme

Page 11: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

11/43

2. Métriques de produit (3/4)

n Exemples– Complexité cyclomatique

• V(G) = (# Liens) - (# Nœuds) + 1

Page 12: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

12/43

2. Métriques de produit (4/4)

n Plus au chapitre 5.5. Contrôle du produit : métriques

n Plus dans le cours IFT3903…

Page 13: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

13/43

Les métriques

1. Introduction2. Métriques de produit3. Métriques de processus4. Métrique de qualité5. Conclusion

Page 14: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

14/43

3. Métriques de processus (1/17)

nMétriques de maturité– Structure interne

• Caractéristiques des équipes• Caractéristiques de la hiérarchie• Niveau de coopération

– Questionnaires– Voir par exemple les entreprises Decision Point, Inc.,

Workforce Metrics…

Page 15: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

15/43

3. Métriques de processus (2/17)

nMétriques de maturité– Gestion

• Niveau du projet• Qualité et configuration de la gestion

– Questionnaires– Voir par exemple S. J. Leadabrand and W.E. Burns ;

Assessment Metrics for Use with the Capability MaturityModel: Are We Improving? ; CrossTalk, February 1994

Page 16: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

16/43

3. Métriques de processus (3/17)

nMétriques de maturité– Personnels

• Expérience– Certification

• Efficacité– Questionnaires

• Flexibilité– Questionnaires

• Mises à niveau– Nombre de cours– Augmentation de la qualité

Page 17: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

17/43

3. Métriques de processus (4/17)

nMétriques de maturité– Technologie

• Disposition des ressources informatiques• Niveau de technologie• Niveau de remplacement des technologies

– Questionnaires

Page 18: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

18/43

3. Métriques de processus (5/17)

nMétriques de maturité– Documentation

• Application des standards• Nombre de standards utilisés

– Questionnaires

Page 19: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

19/43

3. Métriques de processus (6/17)

nMétriques de maturité– Processus

• Productivité• Efficacité• Qualité• Traçabilité

– Mean time to defect : moyenne du temps entre la découverte d’un problème et du suivant pendant le développement

– Métriques actuelles / planifiées

Page 20: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

20/43

3. Métriques de processus (7/17)

nMétriques de gestion– Projet

• Jalons– Nombre de jalons– Nombre de besoins remplis par jalons– Niveau de contrôle des métriques

• Risques– « Photos » avant / après– Modèles

Page 21: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

21/43

3. Métriques de processus (8/17)

nMétriques de gestion– Qualité

• Satisfaction des clients– Caractéristiques de taille– Caractéristiques de structure– Évaluation empirique

Page 22: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

22/43

3. Métriques de processus (9/17)

nMétriques de gestion– Qualité

• Revue– Nombre de revues– Dépendances entre revues– Niveau de revues

Page 23: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

23/43

3. Métriques de processus (10/17)

nMétriques de gestion– Qualité

• Productivité– Performance– Productivité / qualité

• Efficacité– Temps– Ressources

Page 24: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

24/43

3. Métriques de processus (11/17)

nMétriques de gestion– Qualité

• Assurance de la qualité– Évaluation de la qualité– Prévention des erreurs– Niveau de mesure– Analyse des données

– Normes ISO 9000-3

Page 25: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

25/43

3. Métriques de processus (12/17)

nMétriques de gestion– Configuration

• Changements– Tailles– Dépendances– Intervalles– Révision

• Versions– Nombre de versions– Nombre de versions par clients– Différences entre versions

Page 26: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

26/43

3. Métriques de processus (13/17)

nMétriques du cycle de vie– Définitions des problèmes

• Types des problèmes• Standards pour la définition• Niveau d’utilisation d’outils• Stabilité

Page 27: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

27/43

3. Métriques de processus (14/17)

nMétriques du cycle de vie– Besoins et spécifications

• Niveau du flot depuis la définition des problèmes• Moyenne de la participation• Méthode de développement• Niveau des estimations• Intégration• Cas d’utilisation

Page 28: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

28/43

3. Métriques de processus (15/17)

nMétriques du cycle de vie– Conception

• Niveau d’automatisation• Utilisation de bibliothèques• Niveau de réutilisation

Page 29: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

29/43

3. Métriques de processus (16/17)

nMétriques du cycle de vie– Implantation

• Niveau d’automatisation• Moyenne de la qualité du code• Niveau de couverture de tests• Performances• Distribution

Page 30: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

30/43

3. Métriques de processus (17/17)

nMétriques du cycle de vie– Maintenance

• Gestion des erreurs• Changeabilité• Extensibilité• Modifications légères• Fiabilité• Contrôle des configurations

Page 31: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

31/43

Les métriques

1. Introduction2. Métriques de produit3. Métriques de processus4. Métrique de qualité5. Conclusion

Page 32: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

32/43

4. Métriques de qualité (1/10)

n Conformité– Mesure des erreurs

• Date de détection• Date de correction• Criticité• Nombre de tests• Origine• Code affecté par la correction

Page 33: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

33/43

4. Métriques de qualité (2/10)

n Efficacité– Questionnaires

• Voir par exemple Kevin McIsaac ; Metrics, Assessment Process ; ZDnet on-line, October 2002

– Analyses / évaluation comparatives (benchmarking)

Page 34: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

34/43

4. Métriques de qualité (3/10)

n Fiabilité– Probabilité qu’un programme s’exécute sans

défaillances dans un environnement donnépour une période de temps donnée (Fenton)

– Temps moyen pour un défaut (MTTF), de réparation (MTTR), entre défauts (MTBF = MTTF + MTTR)• Disponibilité : MTTF / MTBF × 100

Page 35: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

35/43

4. Métriques de qualité (4/10)

nMaintenabilité– Modèle de Coleman-Oman

• MI < 65 : maintenabilité faible• 65 ≤ MI < 85 : maintenabilité bonne• 85 ≤ MI : maintenabilité excellente

aveV : volume de Halstead moyenaveV(g’) : complexité cyclomatique moyenneaveLOC : nombre moyen de lignes de codeperCM : pourcentage de lignes de commentaires

perCMaveLOC

gaveVaveVMI

××+×−

×−×−=

46.2sin50)ln(2.16

)'(23.0)ln(2.5171

Page 36: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

36/43

4. Métriques de qualité (5/10)

n Intégrité– Vérification par le BIOS de l’authentification de

l’utilisateur– Nombre d’attaques– Accès à la(aux) base(s) de données

• Nombre de clés étrangères• Profondeur de l’arbre de références• Nombre d’algorithmes de prévention de la corruption

Page 37: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

37/43

4. Métriques de qualité (6/10)

n Testabilité– Unitaire

• Pourcentage de classes avec des dépendances codées explicitement

• Pourcentage de classes avec des dépendances implicites (utilisation de Class.forName())

– Intégration• T. B. Nguyen, M. Delaunay, C. Robach ; Testability

Analysis For Software Components ; ICSM, October 2002

Page 38: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

38/43

4. Métriques de qualité (7/10)

n Utilisabilité– Questionnaires

• Pourcentage de la tâche complétée• Ratio succès / échecs• Charge de travail• Nombre de commandes utilisées• Temps d’apprentissage• Nombre de fois que l’usage exprime sa frustration ou

sa colère

Page 39: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

39/43

4. Métriques de qualité (8/10)

n Inter-opérabilité– Échangeabilité des données

• Nombre d’interfaces de conversion des données implantées / nombre d’interfaces de conversion spécifiées (nécessaires)

– Cohérence des interfaces• Nombre de protocoles implémentant des formats

cohérents / nombre de protocoles spécifiés (nécessaires)

Page 40: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

40/43

4. Métriques de qualité (9/10)

n Portabilité– Nombre de composants liés à la portabilité

implantés / nombre de composants liés à la portabilité identifiés (nécessaires)

Page 41: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

41/43

4. Métriques de qualité (10/10)

n Réutilisabilité– Moins d’appels par lignes de code– Moins de paramètres d’entrées/sorties– Plus de commentaire par lignes de code– Plus d’appels à des fonctions « utilitaires » par

ligne de code

Page 42: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

42/43

Les métriques

1. Introduction2. Métriques de produit3. Métrique de qualité4. Métriques de processus5. Conclusion

Page 43: IFT3902 : (Gestion de projet pour le) développement, …pift3902/Automne%202004/... · Université de Montréal IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance

43/43

4. Conclusion

n Une science à part entière

n Un sujet de recherche prometteur

n Attention aux aspects humains