Mesures orientées objet GEF492A 2014 Référence: [HvV §12.1.6] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie informatique.

Slides:



Advertisements
Présentations similaires
Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
Advertisements

Chapitre 6 La conception du produit.
Calculs de complexité d'algorithmes
Algorithmique et évaluation
Story-board version 1.6 Statut : à valider Rédacteur : Nicole Djuissi
Critère d’ordonnancement en temps réel Partie II
Critère d’ordonnancement en temps réel Partie III
Systèmes en temps réel Modélisation du comportement en temps réel avec UML.
Patterns & Anti Patterns
Systèmes en temps réel Héritage avec les capsules.
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §
A abstraction b assembleur c nombre binaire d bit e cache f UC g puce h compilateur i famille dordinateurs j contrôle k chemin de données l défaut m dé
Mesures de tensions électriques Loi des tensions dans un circuit série
Les Ateliers de Génie Logiciel
Introduction à la POO: Les classes vs les objets
GEF 447B Aperçue du cours ROBOTIQUE.
Principes de la technologie orientée objets
LA RÉSISTANCE ÉLECTRIQUE
Chaque use-case génère un ou des scénarios, traduits par des diagrammes objets, qui permettent d’introduire et/ou de compléter les diagrammes des catégories.
TRANSMISSION DES DONNEES.
Programmation et plagiat
Méthode des k plus proches voisins
IFT1025, Programmation 2 Jian-Yun Nie
Classes abstraites et Interfaces
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 7 : Classes et fonctions paramétrables Département.
IGL301 - Spécification et vérification des exgiences 1 Chapitre 2 Le processus dingénierie des exigences (ref : Bray chapitre 2)
Éléments d’usinage et métrologie dimensionnelle TCH040
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
Alain Noël M.B.A., Ph.D., F.Adm.A. bureau 3.278a, , A. Noël Ph.D.MBA HEC, simulation Netstrat, séance 3 1 Gérer une entreprise.
Forces et moments Chapitre 2.
SEG2505 – Introduction au Génie Logiciel Plan de cours – Automne 2012.
Hiver 2011SEG Chapître 11 Chapître 1 (partie 1) Revision de cours précédants Sujet 1: Le processus de développement de logiciel.
Portée, arrimages et intervenants Évolution des méthodes
Résoudre une équation du 1er degré à une inconnue
Méthodes de prévision (STT-3220)
Structures de données IFT-2000 Abder Alikacem L’héritage en C++ Département d’informatique et de génie logiciel Édition Septembre 2009.
Présentation de la méthode des Eléments Finis
Gestion de Fichiers GF-3: Structures d’Enregistrements, Acces Sequentiel et Direct, Manipulation de classes en C++ (Base sur des segments des Chapitres.
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
Cycle de vie: « Waterfall » GEF492A Automne 2014 [HvV § 3.1]
GEF492 - PPL09 Estimation de projets logiciels
GEF COCOMO pour maintenance et réutilisation
La gestion des risques GEF492A 2014 Référence: [HvV] §8.3
Séances de liaison auprès des brevetés 2014 Montréal – le 11 juin 2014 Toronto – le 12 juin 2014 Conseil d’examen du prix des médicaments brevetés.
Le développement d'une théorie de changement
Prise de Décision en Fonction des Risques - Introduction
La planification en génie logiciel GEF492A Automne 2014 [HvV ch. 2]
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Les principes de la modélisation de systèmes
8.1 Les carrés, les racines carrées et Pythagore
GEF Techniques de plannification et de contrôle
Objectifs de vérification logiciels GEF492A 2014 Référence: [HvV §14.1] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie.
Présentation du démonstrateur ATLAS Projet ANR 07 TLOG
Une introduction au eXtreme Programming (XP) GEF492A 2014 Référence: [Jefferies et al ch. 1,2, 7, 9-14] Capt Vincent Roberge Collège Militaire Royal du.
Développement d'application rapide GEF492A Automne 2014 [HvV § 3.2.3]
Mesure de la structure du système GEF492A 2014 Référence: [HvV §12.1.5] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie.
Gestion des configurations et contrôle de changements GEF Référence: [HvV ch. 4] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique.
Vérification dans le cycle de vie GEF492A 2014 Référence: [HvV §14.2, 14.9] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et.
Estimer la distribution en personnel GEF492A 2014 Référence: [HvV §7.3] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie.
2003 (revisé 2008)SEG Chapitre 11 Chapitre 1 “The Systems Engineering Context” Le contexte du génie de systèmes.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Le Rational Unified Process GEF492A 2014 Référence: [Roy ch ] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie informatique.
Arbres binaires et tables de hachage
Introduction au Génie Logiciel
COCOMO II GEF492A 2013 Référence: [HvV §7.1.2, & Boehm]
GEF Mesures de qualité Automne 2013 Mesures de qualités - attributs et perspectives GEF492A 2014 Référence: [HvV §6.1-3] Capt Vincent Roberge.
Programmation Collège militaire royal du Canada Génie électrique et génie informatique.
Transcription de la présentation:

Mesures orientées objet GEF492A 2014 Référence: [HvV §12.1.6] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie informatique roberge.segfaults.net PPL23-MesureOrientéeObjet

2 Automne 2014GEF492 Aperçu Mesures types utilisées avec code orienté objet La suite de mesure CK Méthodes pondérées par classe Profondeur de la classe dans l’arbre d’héritage Nombre d’enfants Couplage entre classes objet Réponse d’une classe Manque de cohésion d’une méthode

3 Automne 2014GEF492 L’habilité à maintenir et la réutilisation sont fonctions de la qualité du produit Les aspects de la qualité de la conception incluent: complexité basée sur la grandeur et la structure structure du système dépendances entre modules (dernière séance) abstraction procédurale – de données – de contrôle modularité cohésion et couplage masquage d’information Qualité de conception  Qualité du produit (cette séance)

4 Automne 2014GEF492 Mesures types utilisées avec code orienté objet Au niveau de méthodes, on peut utiliser les mesures intramodules typiques (comme la complexité cyclomatique) donne une évaluation des caractéristiques de qualité du design du code inclut dans les méthodes par contre, ne fournit pas d’évaluation des caractéristiques de qualité au niveau de l’objet (ou de la classe) Au niveau objet, on pourrait utiliser les mesures intermodules typiques (comme l’impureté de l’arbre) ont des bénéfices limités ne mesure pas plusieurs des caractéristiques de qualités orientées objet désirables.

5 Automne 2014GEF492 Caractéristiques d’un bon design OO Grandeur on veut des classes qui sont petites et simples, et qui sont facilement maintenues et réutilisées Hiérarchie en plus d’une bonne hiérarchie architecturale (comme un arbre), on désire des hiérarchies d’héritage très claires Abstraction on veut des classes qui représentent bien l’essence du domaine du problème, mais qui cache la solution Cohésion on veut forte cohésion fonctionnelle et de données Couplage on veut un couplage interclasses très faible

6 Automne 2014GEF492 La suite de mesures CK Méthodes pondérées par classe (MPC) Profondeur de la classe dans l’arbre d’héritage (PAH) Nombre d’enfants (NDE) Couplage entre classes objet (CEO) Réponse pour une classe (RPC) Manque de cohésion d’une méthode (MCDM) * CK - Chidamber and Kemerer [1994]

Example 7 Class Class2 Class11 Class1 Class21Class22 Class23 Class211 Class21 Constructor1( ) Constructor2( ) SetSomeAttribute( ) GetSomeAttribute( ) Sort(Array a) Sort() Automne 2014GEF492

8 Automne 2014GEF492 Exemple

9 Automne 2014GEF492 Méthodes pondérées par classe (MPC) Une mesure de grandeur les classes plus grandes sont plus complexes, prenant plus de temps à développer / maintenir, et sont moins réutilisables On calcule la complexité de chaque méthode (eg. en utilisant la complexité cyclomatique de McCabe) On additionne les mesures de complexité pondérées MPC =  c i * w i où w i = 1/nombre de méthodes {poids égal} Exemple: (Class21) MPC = ( )/5 = 1.6 Exemple

10 Automne 2014GEF492 Profondeur de la classe dans l’arbre d’héritage (PAH) La longueur maximale d’un nœud à la racine Comme la PAH grandit, les classes de bas niveau héritent de plusieurs méthodes les rendant plus difficiles à comprendre La complexité de design augmente Par contre … une grande mesure de PAH implique bonne réutilisation Les valeurs de PAH doivent être équilibrées Exemple: (Class21) PAH = 2 Exemple

11 Automne 2014GEF492 Nombre d’enfants (NDE) Les sous-classes qui sont immédiatement subordonnées à une classe dans la hiérarchie Un grand NDE implique haute réutilisation Par contre … comme le NDE augmente l’abstraction du parent peut être diluée maintenance / réutilisation devient plus difficile le nombre de cas spéciaux augmente Exemple: (Class21) NDE = 1 Exemple

12 Automne 2014GEF492 Couplage entre classes objet (CEO) un compte du nombre de classes qui: accède une méthode ou variable dans la classe titre, ou contiennent une méthode ou une variable accédée par la classe titre On désire garder cette valeur très basse un grand couplage est une indication d’interdépendances fortes, ce qui veut dire que la maintenance et la réutilisation seront difficiles Exemple: (Class21) CEO = 2 {dépendances tri( )} Exemple

13 Automne 2014GEF492 Réponse pour une classe (RPC) Également une mesure de couplage (profondeur du couplage vs. nombre de couples) Mesures du nombre de méthodes dans une classe qui peuvent être exécutées en réponse à un message reçu par un objet de cette classe (incluant méthodes dans les classes de base) On veut également que cette mesure soit basse

14 Automne 2014GEF492 Manque de cohésion d’une méthode (MCDM) Il s’agit de la mesure inverse de la cohésion d’une classe Compte du nombre de méthodes qui n’ont pas un attribut en commun avec au moins une autre méthode Une grande mesure indique que les méthodes et attributs sont reliés à plusieurs classes ou fonctions On veut une basse mesure Plusieurs autres versions de MCDM ont été définies

15 Automne 2014GEF492 Références supplémentaires Roger S. Pressman. Software Engineering - A Practitioner’s Approach 5th Edition, Sections 24-3,4. McGraw-Hill, ISBN S.R. Chidamber and C.F. Kemerer. ”A Metrics Suite for Object-Oriented Design.” IEEE Transactions on Software Engineering, 20(6): ,1994.

OBJECTIFS DE VÉRIFICATION ET VALIDATION Prochaine séance: Automne 2014GEF492 16