SlideShare a Scribd company logo
1 of 31
Download to read offline
Mendel:
       A Model, Metrics, and Rules
     to Understand Class Hierarchies


            Simon Denier & Yann-Gaël Guéhéneuc
               Ptidej Team – Université de Montréal




ICPC 2008                                             12/06/2008
Outline
   Motivation and Problem
   Mendel Model
   Interesting Classes
   Subclassing Behaviors
   Conclusion




                                    2 / 28
Motivation
   Context: maintenance of program without documentation
       Task: identify and understand the role of multiple classes

   Problem 1: where to start?
       Find entry points (main(...))
       Read large classes (by LOC or Number of Methods)

   Problem 2: what about inheritance?




                                                                     3 / 28
Problem: Class Hierarchies
   Classes defined incrementally by inheritance
       Class “interesting” in its own hierarchy
       Class profiting from its hierarchy




                                                   4 / 28
Class Hierarchies

JHotDraw
5.2




                               5 / 28
Class Hierarchies (2)

Azureus
2.4.0.2




                                  6 / 28
Outline
   Motivation and Problem
   Mendel Model
   Interesting Classes
   Subclassing Behaviors
   Conclusion




                                    7 / 28
Mendel Approach
   Goal: insights on class hierarchies
       Interesting classes in their own hierarchy
       Subclassing behaviors: extending (adding) vs overriding

   Characteristics (requirements) of our approach
       Early stage in maintenance
       Intuitive
       Fast




                                                                  8 / 28
Mendel: Generic Model

    A                               B
 foo()
 bar()              Inherited   foo()
                                           Super

                  Overridden    bar()              Total
    B
                        New     zorg()   Local
 bar()
 zorg()


Simple UML                      Mendel




                                                   9 / 28
Mendel: Metrics and Rules
   Simple metrics:
       Based on interfaces = sets of method signatures
       Computed on a single class or a hierarchy

   Rules for:
       Selection (threshold)
       Classification
       Comprehension (rule of thumb)




                                                          10 / 28
Outline
   Motivation and Problem
   Mendel Model
   Interesting Classes
   Subclassing Behaviors
   Conclusion




                                    11 / 28
Interesting Classes
   Classes defining a lot of new behaviors
   Large class: overall system




   Budding class: with respect to its hierarchy




   Blooming class: large and budding
                                                   12 / 28
Large Class
   Class with a large interface
   Large Class: |Local| > threshold( |Local| )

   JHotDraw
    1. StandardDrawingView (inherits from JPanel), 55 methods
    2. DrawApplication (inherits from JFrame), 53 methods
    3. AbstractFigure (inherits from Object), 34 methods




                                                                13 / 28
Budding Class
   Class with a large interface with respect to its hierarchy
   Metrics:
       Branch Mean Size – bms = |Total| / (DIT + 1)
       Novelty Index – nvi = |Local| / bms(superclass)
   Budding class: nvi > threshold(nvi)

   JHotDraw
    1. AbstractFigure, 3.09
    2. TextFigure, 1.84
    3. PolygonFigure, 1.59


                                                           14 / 28
Blooming Class
   Synthesis: combining large and budding
   Novelty Score – nvs = |Local| × nvi
   Blooming Class: nvs > threshold(nvs)

   JHotDraw
    1. AbstractFigure, 105.09
    2. TextFigure, 55.1
    3. LineConnection, 49.55




                                             15 / 28
JHotDraw Overview with Mendel
   JHotDraw 5.2: 148 classes
       13 large (9%)
       18 budding (12%)
       11 blooming (7%)

   Among 11 blooming classes
       8 in AbstractFigure hierarchy
       + DrawApplication, StandardDrawingView, ConnectionTool




                                                                 16 / 28
JHotDraw Base Classes
   Given documentation: 6 base classes




                                          17 / 28
Comparison with Documentation
   5 out of 6 in at least one set
       AbstractFigure in all 3 sets




                                       Large



          Budding                      Blooming




                                               18 / 28
What about StandardDrawing?
   Max rank: 16th by |Local| order
   Reason: overrider of CompositeFigure (4th blooming class)
   Conclusion: StandardDrawing to be understood in relation
    with CompositeFigure




                                                       19 / 28
Outline
   Motivation and Problem
   Mendel Model
   Interesting Classes
   Subclassing Behaviors
   Conclusion




                                    20 / 28
Subclassing Behaviors

Pure Overrider    Overrider     Extender     Pure Extender

     INH             INH           INH            INH


     OVR             OVR          OVR


                     NEW          NEW            NEW


   |NEW|=0       |OVR|≥|NEW|   |NEW|>|OVR|     |OVR|=0




                                                         21 / 28
Extender vs Overrider
   Rules of thumb
   Pure extender
       Adding new methods: no access through superclass
       Used for itself
       Implementation inheritance

   Pure overrider
       Overriding methods
       Used through substitution to superclass
       Interface inheritance


                                                           22 / 28
JHotDraw in Verso




                    23 / 28
Azureus in Verso




                   24 / 28
Implementation in Java
   Tailored for Java
       BCEL as class files parser

   Performance for Azureus (1681 classes)
       Standard desktop machine (2Ghz processor, 1Go memory)
       9 seconds




                                                            25 / 28
Outline
   Motivation and Problem
   Mendel Model
   Interesting Classes
   Subclassing Behaviors
   Conclusion




                                    26 / 28
Conclusion
   Mendel
       Generic model
       Simple metrics
       Rules

   Results
       Quick insights on interesting classes and concerns
            Large, budding, blooming: different views of interesting classes
            Concerns: keywords in classnames
       Different usage of inheritance in programs
            Some leaned to extending (Log4J, Azureus)
            Others to overriding (JHotDraw, ArgoUML)

                                                                                27 / 28
Future Work
   Family analysis
       Family = class + children
       Common behavior and interface

   Visualisation
       Hierarchy representation
       Visual patterns




                                        28 / 28
ArgoUML in Verso




                   29 / 28
Blooming Classes Selectivity
   Log4J: 2 of 206 (1%)
       LogBrokerMonitor (104 methods), Category
       Budding set: Appender hierarchy
   ArgoUML: 18 of 1431 (1%)
       2 very big classes: NSUMLModelFacade, FacadeMDRImpl
       Design choice: Facade design pattern
       Keywords in class names: two products, normal and MDR
   Azureus: 54 of 1681 (3%)
       Keywords in class names: three concerns, download, peer, DHT



                                                                30 / 28
Behaviors Discrimination
   Two categories
       JHotDraw and ArgoUML: overriding behaviors
            Large proportions of Pure Overriders
       Azureus and Log4J: extending behaviors
            Azureus: 58% of classes are Pure Extenders




                                                          31 / 28

More Related Content

What's hot

Kernel methods in machine learning
Kernel methods in machine learningKernel methods in machine learning
Kernel methods in machine learningbutest
 
MachineLearning.ppt
MachineLearning.pptMachineLearning.ppt
MachineLearning.pptbutest
 
IMPROVING SUPERVISED CLASSIFICATION OF DAILY ACTIVITIES LIVING USING NEW COST...
IMPROVING SUPERVISED CLASSIFICATION OF DAILY ACTIVITIES LIVING USING NEW COST...IMPROVING SUPERVISED CLASSIFICATION OF DAILY ACTIVITIES LIVING USING NEW COST...
IMPROVING SUPERVISED CLASSIFICATION OF DAILY ACTIVITIES LIVING USING NEW COST...csandit
 
Figure 1
Figure 1Figure 1
Figure 1butest
 
Decision Tree - C4.5&CART
Decision Tree - C4.5&CARTDecision Tree - C4.5&CART
Decision Tree - C4.5&CARTXueping Peng
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)IJERD Editor
 
Pres Tesi LM-2016+transcript_eng
Pres Tesi LM-2016+transcript_engPres Tesi LM-2016+transcript_eng
Pres Tesi LM-2016+transcript_engDaniele Ciriello
 
SVM Tutorial
SVM TutorialSVM Tutorial
SVM Tutorialbutest
 
Decision tree lecture 3
Decision tree lecture 3Decision tree lecture 3
Decision tree lecture 3Laila Fatehy
 
LE03.doc
LE03.docLE03.doc
LE03.docbutest
 
Polikar10missing
Polikar10missingPolikar10missing
Polikar10missingkagupta
 
08 linear classification_2
08 linear classification_208 linear classification_2
08 linear classification_2nep_test_account
 

What's hot (15)

Conv xg
Conv xgConv xg
Conv xg
 
ICSM09.ppt
ICSM09.pptICSM09.ppt
ICSM09.ppt
 
Kernel methods in machine learning
Kernel methods in machine learningKernel methods in machine learning
Kernel methods in machine learning
 
MachineLearning.ppt
MachineLearning.pptMachineLearning.ppt
MachineLearning.ppt
 
IMPROVING SUPERVISED CLASSIFICATION OF DAILY ACTIVITIES LIVING USING NEW COST...
IMPROVING SUPERVISED CLASSIFICATION OF DAILY ACTIVITIES LIVING USING NEW COST...IMPROVING SUPERVISED CLASSIFICATION OF DAILY ACTIVITIES LIVING USING NEW COST...
IMPROVING SUPERVISED CLASSIFICATION OF DAILY ACTIVITIES LIVING USING NEW COST...
 
Figure 1
Figure 1Figure 1
Figure 1
 
Decision Tree - C4.5&CART
Decision Tree - C4.5&CARTDecision Tree - C4.5&CART
Decision Tree - C4.5&CART
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
 
Pres Tesi LM-2016+transcript_eng
Pres Tesi LM-2016+transcript_engPres Tesi LM-2016+transcript_eng
Pres Tesi LM-2016+transcript_eng
 
Lecture8 - From CBR to IBk
Lecture8 - From CBR to IBkLecture8 - From CBR to IBk
Lecture8 - From CBR to IBk
 
SVM Tutorial
SVM TutorialSVM Tutorial
SVM Tutorial
 
Decision tree lecture 3
Decision tree lecture 3Decision tree lecture 3
Decision tree lecture 3
 
LE03.doc
LE03.docLE03.doc
LE03.doc
 
Polikar10missing
Polikar10missingPolikar10missing
Polikar10missing
 
08 linear classification_2
08 linear classification_208 linear classification_2
08 linear classification_2
 

Viewers also liked (20)

ejercicios propuesto n°3
ejercicios propuesto n°3ejercicios propuesto n°3
ejercicios propuesto n°3
 
Elgeniosevillano
ElgeniosevillanoElgeniosevillano
Elgeniosevillano
 
Certificate
CertificateCertificate
Certificate
 
ICPC06.ppt
ICPC06.pptICPC06.ppt
ICPC06.ppt
 
Plan de estudios 2012. Lic. en Preescolar
Plan de estudios 2012. Lic. en PreescolarPlan de estudios 2012. Lic. en Preescolar
Plan de estudios 2012. Lic. en Preescolar
 
Как провести эффективную акцию
Как провести эффективную акциюКак провести эффективную акцию
Как провести эффективную акцию
 
Personajes
PersonajesPersonajes
Personajes
 
El significado de los nombres de europa oriental
El significado de los nombres de europa orientalEl significado de los nombres de europa oriental
El significado de los nombres de europa oriental
 
Areas que me llamron la atencion
Areas que me llamron la atencionAreas que me llamron la atencion
Areas que me llamron la atencion
 
Rmb ppt
Rmb pptRmb ppt
Rmb ppt
 
Resumen de-niif-2012
Resumen de-niif-2012Resumen de-niif-2012
Resumen de-niif-2012
 
Presentación1
Presentación1Presentación1
Presentación1
 
ICPC08b.ppt
ICPC08b.pptICPC08b.ppt
ICPC08b.ppt
 
Face of mankind mmo
Face of mankind mmoFace of mankind mmo
Face of mankind mmo
 
Лучшие mmo игрф
Лучшие mmo игрфЛучшие mmo игрф
Лучшие mmo игрф
 
Meningitis f.s.
Meningitis f.s.Meningitis f.s.
Meningitis f.s.
 
Como nace un paradigma
Como nace un paradigmaComo nace un paradigma
Como nace un paradigma
 
Carta Recomendacion RF PPBR
Carta Recomendacion RF PPBRCarta Recomendacion RF PPBR
Carta Recomendacion RF PPBR
 
The two koreas finished
The two koreas finishedThe two koreas finished
The two koreas finished
 
Planimetria
PlanimetriaPlanimetria
Planimetria
 

Similar to ICPC08a.ppt

Jörg Stelzer
Jörg StelzerJörg Stelzer
Jörg Stelzerbutest
 
Permission based group mutual exclusion
Permission based group mutual exclusionPermission based group mutual exclusion
Permission based group mutual exclusionijdpsjournal
 
PERMISSION BASED GROUP MUTUAL EXCLUSION ALGORITHMS FOR A CLUSTER TREE NETWORK
PERMISSION BASED GROUP MUTUAL EXCLUSION ALGORITHMS FOR A CLUSTER TREE NETWORKPERMISSION BASED GROUP MUTUAL EXCLUSION ALGORITHMS FOR A CLUSTER TREE NETWORK
PERMISSION BASED GROUP MUTUAL EXCLUSION ALGORITHMS FOR A CLUSTER TREE NETWORKijdpsjournal
 
Optimizing Market Segmentation
Optimizing Market SegmentationOptimizing Market Segmentation
Optimizing Market SegmentationRobert Colner
 
Programming learning: a hierarchical model based diagnosis approach
Programming learning: a hierarchical model based diagnosis approachProgramming learning: a hierarchical model based diagnosis approach
Programming learning: a hierarchical model based diagnosis approachWellington Pinheiro
 
Introduction to conventional machine learning techniques
Introduction to conventional machine learning techniquesIntroduction to conventional machine learning techniques
Introduction to conventional machine learning techniquesXavier Rafael Palou
 
Low rank models for recommender systems with limited preference information
Low rank models for recommender systems with limited preference informationLow rank models for recommender systems with limited preference information
Low rank models for recommender systems with limited preference informationEvgeny Frolov
 
[Women in Data Science Meetup ATX] Decision Trees
[Women in Data Science Meetup ATX] Decision Trees [Women in Data Science Meetup ATX] Decision Trees
[Women in Data Science Meetup ATX] Decision Trees Nikolaos Vergos
 
A Few Useful Things to Know about Machine Learning
A Few Useful Things to Know about Machine LearningA Few Useful Things to Know about Machine Learning
A Few Useful Things to Know about Machine Learningnep_test_account
 
On cascading small decision trees
On cascading small decision treesOn cascading small decision trees
On cascading small decision treesJulià Minguillón
 
Master Thesis presentation
Master Thesis presentationMaster Thesis presentation
Master Thesis presentationBogdan Vasilescu
 

Similar to ICPC08a.ppt (20)

Icpc08a.ppt
Icpc08a.pptIcpc08a.ppt
Icpc08a.ppt
 
QSIC09.ppt
QSIC09.pptQSIC09.ppt
QSIC09.ppt
 
ICSE10b.ppt
ICSE10b.pptICSE10b.ppt
ICSE10b.ppt
 
Jörg Stelzer
Jörg StelzerJörg Stelzer
Jörg Stelzer
 
Permission based group mutual exclusion
Permission based group mutual exclusionPermission based group mutual exclusion
Permission based group mutual exclusion
 
PERMISSION BASED GROUP MUTUAL EXCLUSION ALGORITHMS FOR A CLUSTER TREE NETWORK
PERMISSION BASED GROUP MUTUAL EXCLUSION ALGORITHMS FOR A CLUSTER TREE NETWORKPERMISSION BASED GROUP MUTUAL EXCLUSION ALGORITHMS FOR A CLUSTER TREE NETWORK
PERMISSION BASED GROUP MUTUAL EXCLUSION ALGORITHMS FOR A CLUSTER TREE NETWORK
 
Optimizing Market Segmentation
Optimizing Market SegmentationOptimizing Market Segmentation
Optimizing Market Segmentation
 
Programming learning: a hierarchical model based diagnosis approach
Programming learning: a hierarchical model based diagnosis approachProgramming learning: a hierarchical model based diagnosis approach
Programming learning: a hierarchical model based diagnosis approach
 
Introduction to conventional machine learning techniques
Introduction to conventional machine learning techniquesIntroduction to conventional machine learning techniques
Introduction to conventional machine learning techniques
 
Low rank models for recommender systems with limited preference information
Low rank models for recommender systems with limited preference informationLow rank models for recommender systems with limited preference information
Low rank models for recommender systems with limited preference information
 
Sota
SotaSota
Sota
 
Google lme4
Google lme4Google lme4
Google lme4
 
Qsic09.ppt
Qsic09.pptQsic09.ppt
Qsic09.ppt
 
[Women in Data Science Meetup ATX] Decision Trees
[Women in Data Science Meetup ATX] Decision Trees [Women in Data Science Meetup ATX] Decision Trees
[Women in Data Science Meetup ATX] Decision Trees
 
A Few Useful Things to Know about Machine Learning
A Few Useful Things to Know about Machine LearningA Few Useful Things to Know about Machine Learning
A Few Useful Things to Know about Machine Learning
 
On cascading small decision trees
On cascading small decision treesOn cascading small decision trees
On cascading small decision trees
 
Master Thesis presentation
Master Thesis presentationMaster Thesis presentation
Master Thesis presentation
 
Clustering
ClusteringClustering
Clustering
 
deep CNN vs conventional ML
deep CNN vs conventional MLdeep CNN vs conventional ML
deep CNN vs conventional ML
 
JOSA TechTalks - Machine Learning in Practice
JOSA TechTalks - Machine Learning in PracticeJOSA TechTalks - Machine Learning in Practice
JOSA TechTalks - Machine Learning in Practice
 

More from Ptidej Team

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software MiniaturisationPtidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel BriandPtidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel AbdellatifPtidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh KermansaraviPtidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel GrichiPtidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano PolitowskiPtidej Team
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisisPtidej Team
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptPtidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptPtidej Team
 

More from Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 

Recently uploaded

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 

Recently uploaded (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

ICPC08a.ppt

  • 1. Mendel: A Model, Metrics, and Rules to Understand Class Hierarchies Simon Denier & Yann-Gaël Guéhéneuc Ptidej Team – Université de Montréal ICPC 2008 12/06/2008
  • 2. Outline  Motivation and Problem  Mendel Model  Interesting Classes  Subclassing Behaviors  Conclusion 2 / 28
  • 3. Motivation  Context: maintenance of program without documentation  Task: identify and understand the role of multiple classes  Problem 1: where to start?  Find entry points (main(...))  Read large classes (by LOC or Number of Methods)  Problem 2: what about inheritance? 3 / 28
  • 4. Problem: Class Hierarchies  Classes defined incrementally by inheritance  Class “interesting” in its own hierarchy  Class profiting from its hierarchy 4 / 28
  • 7. Outline  Motivation and Problem  Mendel Model  Interesting Classes  Subclassing Behaviors  Conclusion 7 / 28
  • 8. Mendel Approach  Goal: insights on class hierarchies  Interesting classes in their own hierarchy  Subclassing behaviors: extending (adding) vs overriding  Characteristics (requirements) of our approach  Early stage in maintenance  Intuitive  Fast 8 / 28
  • 9. Mendel: Generic Model A B foo() bar() Inherited foo() Super Overridden bar() Total B New zorg() Local bar() zorg() Simple UML Mendel 9 / 28
  • 10. Mendel: Metrics and Rules  Simple metrics:  Based on interfaces = sets of method signatures  Computed on a single class or a hierarchy  Rules for:  Selection (threshold)  Classification  Comprehension (rule of thumb) 10 / 28
  • 11. Outline  Motivation and Problem  Mendel Model  Interesting Classes  Subclassing Behaviors  Conclusion 11 / 28
  • 12. Interesting Classes  Classes defining a lot of new behaviors  Large class: overall system  Budding class: with respect to its hierarchy  Blooming class: large and budding 12 / 28
  • 13. Large Class  Class with a large interface  Large Class: |Local| > threshold( |Local| )  JHotDraw 1. StandardDrawingView (inherits from JPanel), 55 methods 2. DrawApplication (inherits from JFrame), 53 methods 3. AbstractFigure (inherits from Object), 34 methods 13 / 28
  • 14. Budding Class  Class with a large interface with respect to its hierarchy  Metrics:  Branch Mean Size – bms = |Total| / (DIT + 1)  Novelty Index – nvi = |Local| / bms(superclass)  Budding class: nvi > threshold(nvi)  JHotDraw 1. AbstractFigure, 3.09 2. TextFigure, 1.84 3. PolygonFigure, 1.59 14 / 28
  • 15. Blooming Class  Synthesis: combining large and budding  Novelty Score – nvs = |Local| × nvi  Blooming Class: nvs > threshold(nvs)  JHotDraw 1. AbstractFigure, 105.09 2. TextFigure, 55.1 3. LineConnection, 49.55 15 / 28
  • 16. JHotDraw Overview with Mendel  JHotDraw 5.2: 148 classes  13 large (9%)  18 budding (12%)  11 blooming (7%)  Among 11 blooming classes  8 in AbstractFigure hierarchy  + DrawApplication, StandardDrawingView, ConnectionTool 16 / 28
  • 17. JHotDraw Base Classes  Given documentation: 6 base classes 17 / 28
  • 18. Comparison with Documentation  5 out of 6 in at least one set  AbstractFigure in all 3 sets Large Budding Blooming 18 / 28
  • 19. What about StandardDrawing?  Max rank: 16th by |Local| order  Reason: overrider of CompositeFigure (4th blooming class)  Conclusion: StandardDrawing to be understood in relation with CompositeFigure 19 / 28
  • 20. Outline  Motivation and Problem  Mendel Model  Interesting Classes  Subclassing Behaviors  Conclusion 20 / 28
  • 21. Subclassing Behaviors Pure Overrider Overrider Extender Pure Extender INH INH INH INH OVR OVR OVR NEW NEW NEW |NEW|=0 |OVR|≥|NEW| |NEW|>|OVR| |OVR|=0 21 / 28
  • 22. Extender vs Overrider  Rules of thumb  Pure extender  Adding new methods: no access through superclass  Used for itself  Implementation inheritance  Pure overrider  Overriding methods  Used through substitution to superclass  Interface inheritance 22 / 28
  • 23. JHotDraw in Verso 23 / 28
  • 24. Azureus in Verso 24 / 28
  • 25. Implementation in Java  Tailored for Java  BCEL as class files parser  Performance for Azureus (1681 classes)  Standard desktop machine (2Ghz processor, 1Go memory)  9 seconds 25 / 28
  • 26. Outline  Motivation and Problem  Mendel Model  Interesting Classes  Subclassing Behaviors  Conclusion 26 / 28
  • 27. Conclusion  Mendel  Generic model  Simple metrics  Rules  Results  Quick insights on interesting classes and concerns  Large, budding, blooming: different views of interesting classes  Concerns: keywords in classnames  Different usage of inheritance in programs  Some leaned to extending (Log4J, Azureus)  Others to overriding (JHotDraw, ArgoUML) 27 / 28
  • 28. Future Work  Family analysis  Family = class + children  Common behavior and interface  Visualisation  Hierarchy representation  Visual patterns 28 / 28
  • 29. ArgoUML in Verso 29 / 28
  • 30. Blooming Classes Selectivity  Log4J: 2 of 206 (1%)  LogBrokerMonitor (104 methods), Category  Budding set: Appender hierarchy  ArgoUML: 18 of 1431 (1%)  2 very big classes: NSUMLModelFacade, FacadeMDRImpl  Design choice: Facade design pattern  Keywords in class names: two products, normal and MDR  Azureus: 54 of 1681 (3%)  Keywords in class names: three concerns, download, peer, DHT 30 / 28
  • 31. Behaviors Discrimination  Two categories  JHotDraw and ArgoUML: overriding behaviors  Large proportions of Pure Overriders  Azureus and Log4J: extending behaviors  Azureus: 58% of classes are Pure Extenders 31 / 28