1 / 16

Mesures orientées objet GEF492A 2014 Référence: [ HvV §12.1.6]

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 Vincent.roberge@rmc.ca roberge.segfaults.net PPL23-MesureOrientéeObjet. Aperçu.

Download Presentation

Mesures orientées objet GEF492A 2014 Référence: [ HvV §12.1.6]

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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 GEF492

  3. Qualité de conception  Qualité du produit • 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 (cette séance) GEF492

  4. 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. GEF492

  5. 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 GEF492

  6. 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] GEF492

  7. Class21 Class22 Class21 Class1 Class23 Class2 Class Class211 Class11 Example Constructor1( ) Constructor2( ) SetSomeAttribute( ) GetSomeAttribute( ) Sort(Array a) Sort() Sort() GEF492

  8. Exemple GEF492

  9. 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 =  ci * wi où wi = 1/nombre de méthodes {poids égal} Exemple: (Class21) MPC = (1+1+1+1+4)/5 = 1.6 GEF492 Exemple

  10. 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 GEF492 Exemple

  11. 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 GEF492 Exemple

  12. 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( )} GEF492 Exemple

  13. 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 GEF492

  14. 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 GEF492

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

  16. Prochaine séance: Objectifs de vérification et validation GEF492

More Related