SlideShare a Scribd company logo
Refactorings of Design Defects using
    Relational Concept Analysis

Naouel Moha, Amine Mohamed Rouane Hacene,
  Petko Valtchev, and Yann-Gaël Guéhéneuc

                         LORIA, France
            DIRO, University of Montréal, Canada
   LATECE, Université du Québec à Montréal, Montréal, Canada



                       ICFCA’08
    Montréal (Qc), Canada, February 25-28, 2008
Context




Moha ©    Refactorings of Design Defects using RCA   2
Context




Moha ©    Refactorings of Design Defects using RCA   3
Context




Moha ©    Refactorings of Design Defects using RCA   4
Context: Overall Process
             Textual descriptions
              of design defects


                 1       S                        3
                         P
                                            S
                         E
                                            U
                         C
                                            G
                         I
                                            G
                         F
                                            E
                         I
                                            S
                         C
                                            T
                         A
                                            I
                         T
                                            O
                         I
                                            N
                         O
                         N


                      Rules          Refactorings

                  2      D
                                            C     4
                                            O
                         E
                                            R
                         T
                                            R
                         E
                                            E
                         C
                                            C
                         T
                                            T
                         I
                                            I
                         O
                                            O
                         N
                                            N




                Classes having          Better
                design defects          Design
Moha ©       Refactorings of Design Defects using RCA   5
Context: Overall Process
             Textual descriptions
              of design defects


                 1       S                        3
                         P
                                            S
                         E
                                            U
                         C
                                            G
                         I
                                            G
                         F
                                            E
                         I
                                            S
                         C
                                            T
                         A
                                            I
                         T
                                            O
                         I
                                            N
                         O
                         N


                      Rules          Refactorings

                  2      D
                                            C     4
                                            O
                         E
                                            R
                         T
                                            R
                         E
                                            E
                         C
                                            C
                         T
                                            T
                         I
                                            I
                         O
                                            O
                         N
                                            N




                Classes having          Better
                design defects          Design
Moha ©       Refactorings of Design Defects using RCA   6
Context: Overall Process
  1-2. Specification and Detection of DDs
         More and more tools and techniques
            Actively researched area
            Method DECOR (Defect dEtection for CORrection) [Moha 06]

  3. Suggestion
  3 S      ti
         Manual identification of the modifications
            Time-, resource-consuming, error-prone activity
                 ,                  g,       p            y

  4. Correction
         Refactorings
                   g
         Technique used to change “the internal structure of software to make it
         easier to understand and cheaper to modify without changing its
         observable behavior”


Moha ©                         Refactorings of Design Defects using RCA     7
What Kind of Defects ?
   Design Patterns are “good” solutions to recurring design problems

   Design Defects (DDs)
         are “bad” solutions to recurring problems, Antipatterns [Brown 98]

         hinder d
         hi d development and maintenance by making programs h d t
                  l       t d     i t     b    ki            harder to
         comprehend and/or evolve

   DDs of interest: infected by low cohesion and high coupling
         Cohesion: how closely the methods are related to the variables in
         the class

         Coupling: the degree of its reliance on services provided by other
         classes



Moha ©                         Refactorings of Design Defects using RCA       8
What Kind of Defects ?
  An example of DDs [Brown 98]

                    Blob (God Class)
                    “ Procedural-style design leads to one object with a
                    lion’s share of the responsibilities while most other
                    objects only hold data or execute simple processes ”


                       Large controller class

                       Many fields and methods with a low cohesion

                       High coupled with the data stored in
                       associated data classes




Moha ©                Refactorings of Design Defects using RCA          9
An Example
         Blob




         Before




Moha ©            Refactorings of Design Defects using RCA   10
An Example
                     How t correct th d f t ?
                     H   to      t the defect




                      Before                                 After
         Large and complex class               Large class becomes less complex
         Small data classes                    Data classes gain more behaviour
         Not object-oriented                   More object-oriented style
Moha ©                       Refactorings of Design Defects using RCA         11
An Example
         Redistribute l
         R di t ib t class members among existing classes ( ith possibly
                                b             i ti  l      (with    ibl
         new classes) to increase cohesion and–or decrease coupling




                 Before                                              After




Moha ©                    Refactorings of Design Defects using RCA           12
Contribution
  Suggestion
         RCA [Rouane 07, Ph.D. Thesis]
           Extension of FCA to relational d
           E       i   f             l i  l data
           Models the inter-object links and infers description logics role like
           relations between concepts
           RCA provides a suitable framework for clustering individuals along
           the properties they share and their links with other individuals
           Identify methods that share common fields and methods that call
           common methods          cohesive sets low coupled




Moha ©                         Refactorings of Design Defects using RCA     13
Contribution
  Suggestion
         RCA [Rouane 07, Ph.D. Thesis]
           Extension of FCA to relational d
           E       i   f             l i  l data
           Models the inter-object links and infers description logics role like
           relations between concepts
           RCA provides a suitable framework for clustering individuals along
           the properties they share and their links with other individuals
           Identify methods that share common fields and methods that call
           common methods          cohesive sets low coupled


  «D
   Develop an automated approach f suggesting d f t
       l         t    t d         h for  ti defect-
   correcting refactorings using RCA »



Moha ©                         Refactorings of Design Defects using RCA     14
An Example
                     How t correct th d f t ?
                     H   to      t the defect




                      Before                                 After
         Large and complex class               Large class becomes less complex
         Small data classes                    Data classes gain more behaviour
         Not object-oriented                   More object-oriented style
Moha ©                       Refactorings of Design Defects using RCA         15
An Example
         How t correct th d f t ?
         H   to      t the defect




         Blob                                   Cohesive Sets




Moha ©          Refactorings of Design Defects using RCA        16
An Example
                            How t correct th d f t ?
                            H   to      t the defect




                                      I = {W-borrow_date_Book, W-return_date_book}
                                      E = {}
  I = {‘check_Availability_Book()’}
  E = {check_Availability_Book()}



                                                         I = {call:c4}
                                                         E = {}

         I = {‘borrow_Book()’}        I = {‘reserve_Book()’, W-reserved_book}
         E = {borrow_Book()}          E = {reserve_Book()}



                              Lattice                                                 Cohesive Set




Moha ©                                     Refactorings of Design Defects using RCA                  17
An Example
                 How t correct th d f t ?
                 H   to      t the defect




         Cohesive Sets                                    After Refactoring *


                                               * Move Method Mode Field, Create Class
                                                      Method,     Field


Moha ©                   Refactorings of Design Defects using RCA                18
Suggestion




Moha ©       Refactorings of Design Defects using RCA   19
Suggestion
1.       RCF Modeling




Moha ©                  Refactorings of Design Defects using RCA   20
Suggestion
2.       RCA Al
             Algorithms
                  ith




Moha ©                    Refactorings of Design Defects using RCA   21
Suggestion
2.       RCA Al
             Algorithms
                  ith




              9
                  I = {W-library opened}
                      {W library_opened}
                  E={}

                                       10
                                            I = {‘open_Library()’}
                                            E = {open Library()}
                                                {open_Library()}
                     7
                         I = {‘close_Library()’}
                         E = {close_Library()}




Moha ©                              Refactorings of Design Defects using RCA   22
Suggestion
2.       RCA Al
             Algorithms
                  ith




Moha ©                    Refactorings of Design Defects using RCA   23
Suggestion
2.       RCA Al
             Algorithms
                  ith




             4
                 I = {‘check_Availability_Book()’}
                 E = {check_Availability_Book()}




                                                                                     19
                                                                                          I = {call:c4}
                                                                                          E={}


                                   3                                12
                                       I = {‘borrow_Book()’}             I = {‘reserve_Book()’,W-reserved_book}
                                       E = {borrow_Book() }              E = {reserve_Book()}




Moha ©                                 Refactorings of Design Defects using RCA                               24
Suggestion
 3.      Interpretation




            Cohesive Sets                                       After Refactoring



                                                  * Move Method Mode Field, Create Class
                                                         Method,     Field


Moha ©                      Refactorings of Design Defects using RCA                25
Experimental Study
  Tooling
         PADL to model source code and generate contexts
         Galicia to construct and visualize the concept lattices


  Experiments
  E    i   t
         Goal: evaluate the relevance of the cohesive sets suggested
         4 different open-source programs




Moha ©                         Refactorings of Design Defects using RCA   26
System   Experimental Study
                                                                               Nb of fields/       Nb of    Nb of real
                                                            Size (fields +
                            Blob Class          LOC                             methods          cohesive   cohesive     Precision
                                                              methods)
                                                                                 moved             sets       sets
                     DHTTransportUDPImpl        2,049       (42+66) 108         (27+32) 59         10           7          70%
V2.3.0.6
Azureus




                     DHTControlImpl             1,868       (47+80) 127         (35+62) 97         19          11          58%
                     TRTrackerBTAnnouncerImpl   1,393        (36+47) 83         (24+33) 57         16           5          31%
V0.7.1 V1.4 V1.2.1




                     LogBrokerMonitor           1,142       (29+105)134        (23+85) 108         31          17          55%
         ene Log4j




                     Category                   387           (9+53) 62          (8+44) 52         18           9          50%
                     IndexReader                236           (7+52) 59          (5+30) 35          4           2          50%
Nutch Luce




                     QueryParser                829          (36+48) 84         (24+37) 61         13          10          77%
                     FSNamesystem               710          (24+35) 59         (17+25) 42         18           9          50%
                     JobTracker                 555          (
                                                             (22+31) 53
                                                                   )            (
                                                                                (17+18) 35
                                                                                      )            11           8          73%
                                                                                                  Average Precision:       57%




         Moha ©                                       Refactorings of Design Defects using RCA                             27
Conclusion
    Contribution
         an approach that uses RCA to suggest refactorings to correct
         certain DDs in particular Blob
                 DDs,

    Validation
         4 different programs
         Relevant refactorings to improve programs

    Future Work
         -   Generalise to other DDs
         -   Assess more programs via our approach
         -   Discuss the suggested refactorings with their developers and
             apply them



Moha ©                        Refactorings of Design Defects using RCA      28
Questions
         Contact: mohanaou@iro.umontreal.ca
                  http://www-etud.iro.umontreal.ca/~mohanaou




         Thanks for your attention !

Moha ©                           Refactorings of Design Defects using RCA   29

More Related Content

PPTX
Mmo racing simulator
PPTX
DOCX
Banking term Part-2 From polaris edutech Academy
PDF
FASE08.ppt
PPT
Conflicto y Equipos de Trabajo.
PDF
Wos 05-2012-pp-arkusz
PDF
Brazil Private Participation Program in Infrastructure
PPTX
Sitios turísticos
Mmo racing simulator
Banking term Part-2 From polaris edutech Academy
FASE08.ppt
Conflicto y Equipos de Trabajo.
Wos 05-2012-pp-arkusz
Brazil Private Participation Program in Infrastructure
Sitios turísticos

Viewers also liked (7)

PPTX
La bios
PDF
Temarios etapa xxii
PPTX
23. Ο «χρυσός αιώνας» της τέχνης
PDF
Planificación química 3º medio 2013
PDF
Lucia Russo Urban Coutute Internationa Press Reviews
PDF
WT Men's Basketball Game Notes (1-23-16)
PPTX
Henkilöbrändi vahvemmaksi LinkedInin avulla
La bios
Temarios etapa xxii
23. Ο «χρυσός αιώνας» της τέχνης
Planificación química 3º medio 2013
Lucia Russo Urban Coutute Internationa Press Reviews
WT Men's Basketball Game Notes (1-23-16)
Henkilöbrändi vahvemmaksi LinkedInin avulla
Ad

Similar to ICFCA08.ppt (20)

PDF
Fast37
PPT
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
PDF
Proposal for UXAUSTRALIA
PDF
Mtlstartuptalent
PDF
You Say You Want a Revolution
PPT
Implementing the Water, Climate and Development Programme in Africa by Andrew...
PPT
Analysing The Results Of A Card Sort
PDF
Datamonitor Consulting: Go-To-Market Strategy in the Pharmaceutical and Biote...
PDF
LESI GTIF 2012 Brochure
PDF
Have You Been Caped?
PPT
learning interoperability from web2.0
PDF
Idea Labs
PDF
Zararfa SummerCamp 2012 - From RHEL to RHEV to Cloud
PDF
S3OiA esiot12
PDF
T3DD06 TYPO3 5.0 Brainstorming Results
PDF
Developing an FTTx Ecosystem
PDF
Takeover panorama june issue vol. xxi - 2008-06-27
PDF
Yes systems engineering, you are a discipline
PDF
HTML5 with Play Scala, CoffeeScript and Jade - Jfokus 2012
PDF
A Classification Framework For Component Models
Fast37
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Proposal for UXAUSTRALIA
Mtlstartuptalent
You Say You Want a Revolution
Implementing the Water, Climate and Development Programme in Africa by Andrew...
Analysing The Results Of A Card Sort
Datamonitor Consulting: Go-To-Market Strategy in the Pharmaceutical and Biote...
LESI GTIF 2012 Brochure
Have You Been Caped?
learning interoperability from web2.0
Idea Labs
Zararfa SummerCamp 2012 - From RHEL to RHEV to Cloud
S3OiA esiot12
T3DD06 TYPO3 5.0 Brainstorming Results
Developing an FTTx Ecosystem
Takeover panorama june issue vol. xxi - 2008-06-27
Yes systems engineering, you are a discipline
HTML5 with Play Scala, CoffeeScript and Jade - Jfokus 2012
A Classification Framework For Component Models
Ad

More from Ptidej Team (20)

PDF
From IoT to Software Miniaturisation
PDF
Presentation
PDF
Presentation
PDF
Presentation
PDF
Presentation by Lionel Briand
PDF
Manel Abdellatif
PDF
Azadeh Kermansaravi
PDF
Mouna Abidi
PDF
CSED - Manel Grichi
PDF
Cristiano Politowski
PDF
Will io t trigger the next software crisis
PDF
PDF
Thesis+of+laleh+eshkevari.ppt
PDF
Thesis+of+nesrine+abdelkafi.ppt
PDF
Medicine15.ppt
PDF
Qrs17b.ppt
PDF
Icpc11c.ppt
PDF
Icsme16.ppt
PDF
Msr17a.ppt
PDF
Icsoc15.ppt
From IoT to Software Miniaturisation
Presentation
Presentation
Presentation
Presentation by Lionel Briand
Manel Abdellatif
Azadeh Kermansaravi
Mouna Abidi
CSED - Manel Grichi
Cristiano Politowski
Will io t trigger the next software crisis
Thesis+of+laleh+eshkevari.ppt
Thesis+of+nesrine+abdelkafi.ppt
Medicine15.ppt
Qrs17b.ppt
Icpc11c.ppt
Icsme16.ppt
Msr17a.ppt
Icsoc15.ppt

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
Spectroscopy.pptx food analysis technology
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Approach and Philosophy of On baking technology
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Unlocking AI with Model Context Protocol (MCP)
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Machine learning based COVID-19 study performance prediction
Per capita expenditure prediction using model stacking based on satellite ima...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Building Integrated photovoltaic BIPV_UPV.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Understanding_Digital_Forensics_Presentation.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
sap open course for s4hana steps from ECC to s4
Spectroscopy.pptx food analysis technology
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Approach and Philosophy of On baking technology
MIND Revenue Release Quarter 2 2025 Press Release
NewMind AI Weekly Chronicles - August'25 Week I
Dropbox Q2 2025 Financial Results & Investor Presentation
The Rise and Fall of 3GPP – Time for a Sabbatical?
Unlocking AI with Model Context Protocol (MCP)
“AI and Expert System Decision Support & Business Intelligence Systems”
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Machine learning based COVID-19 study performance prediction

ICFCA08.ppt

  • 1. Refactorings of Design Defects using Relational Concept Analysis Naouel Moha, Amine Mohamed Rouane Hacene, Petko Valtchev, and Yann-Gaël Guéhéneuc LORIA, France DIRO, University of Montréal, Canada LATECE, Université du Québec à Montréal, Montréal, Canada ICFCA’08 Montréal (Qc), Canada, February 25-28, 2008
  • 2. Context Moha © Refactorings of Design Defects using RCA 2
  • 3. Context Moha © Refactorings of Design Defects using RCA 3
  • 4. Context Moha © Refactorings of Design Defects using RCA 4
  • 5. Context: Overall Process Textual descriptions of design defects 1 S 3 P S E U C G I G F E I S C T A I T O I N O N Rules Refactorings 2 D C 4 O E R T R E E C C T T I I O O N N Classes having Better design defects Design Moha © Refactorings of Design Defects using RCA 5
  • 6. Context: Overall Process Textual descriptions of design defects 1 S 3 P S E U C G I G F E I S C T A I T O I N O N Rules Refactorings 2 D C 4 O E R T R E E C C T T I I O O N N Classes having Better design defects Design Moha © Refactorings of Design Defects using RCA 6
  • 7. Context: Overall Process 1-2. Specification and Detection of DDs More and more tools and techniques Actively researched area Method DECOR (Defect dEtection for CORrection) [Moha 06] 3. Suggestion 3 S ti Manual identification of the modifications Time-, resource-consuming, error-prone activity , g, p y 4. Correction Refactorings g Technique used to change “the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior” Moha © Refactorings of Design Defects using RCA 7
  • 8. What Kind of Defects ? Design Patterns are “good” solutions to recurring design problems Design Defects (DDs) are “bad” solutions to recurring problems, Antipatterns [Brown 98] hinder d hi d development and maintenance by making programs h d t l t d i t b ki harder to comprehend and/or evolve DDs of interest: infected by low cohesion and high coupling Cohesion: how closely the methods are related to the variables in the class Coupling: the degree of its reliance on services provided by other classes Moha © Refactorings of Design Defects using RCA 8
  • 9. What Kind of Defects ? An example of DDs [Brown 98] Blob (God Class) “ Procedural-style design leads to one object with a lion’s share of the responsibilities while most other objects only hold data or execute simple processes ” Large controller class Many fields and methods with a low cohesion High coupled with the data stored in associated data classes Moha © Refactorings of Design Defects using RCA 9
  • 10. An Example Blob Before Moha © Refactorings of Design Defects using RCA 10
  • 11. An Example How t correct th d f t ? H to t the defect Before After Large and complex class Large class becomes less complex Small data classes Data classes gain more behaviour Not object-oriented More object-oriented style Moha © Refactorings of Design Defects using RCA 11
  • 12. An Example Redistribute l R di t ib t class members among existing classes ( ith possibly b i ti l (with ibl new classes) to increase cohesion and–or decrease coupling Before After Moha © Refactorings of Design Defects using RCA 12
  • 13. Contribution Suggestion RCA [Rouane 07, Ph.D. Thesis] Extension of FCA to relational d E i f l i l data Models the inter-object links and infers description logics role like relations between concepts RCA provides a suitable framework for clustering individuals along the properties they share and their links with other individuals Identify methods that share common fields and methods that call common methods cohesive sets low coupled Moha © Refactorings of Design Defects using RCA 13
  • 14. Contribution Suggestion RCA [Rouane 07, Ph.D. Thesis] Extension of FCA to relational d E i f l i l data Models the inter-object links and infers description logics role like relations between concepts RCA provides a suitable framework for clustering individuals along the properties they share and their links with other individuals Identify methods that share common fields and methods that call common methods cohesive sets low coupled «D Develop an automated approach f suggesting d f t l t t d h for ti defect- correcting refactorings using RCA » Moha © Refactorings of Design Defects using RCA 14
  • 15. An Example How t correct th d f t ? H to t the defect Before After Large and complex class Large class becomes less complex Small data classes Data classes gain more behaviour Not object-oriented More object-oriented style Moha © Refactorings of Design Defects using RCA 15
  • 16. An Example How t correct th d f t ? H to t the defect Blob Cohesive Sets Moha © Refactorings of Design Defects using RCA 16
  • 17. An Example How t correct th d f t ? H to t the defect I = {W-borrow_date_Book, W-return_date_book} E = {} I = {‘check_Availability_Book()’} E = {check_Availability_Book()} I = {call:c4} E = {} I = {‘borrow_Book()’} I = {‘reserve_Book()’, W-reserved_book} E = {borrow_Book()} E = {reserve_Book()} Lattice Cohesive Set Moha © Refactorings of Design Defects using RCA 17
  • 18. An Example How t correct th d f t ? H to t the defect Cohesive Sets After Refactoring * * Move Method Mode Field, Create Class Method, Field Moha © Refactorings of Design Defects using RCA 18
  • 19. Suggestion Moha © Refactorings of Design Defects using RCA 19
  • 20. Suggestion 1. RCF Modeling Moha © Refactorings of Design Defects using RCA 20
  • 21. Suggestion 2. RCA Al Algorithms ith Moha © Refactorings of Design Defects using RCA 21
  • 22. Suggestion 2. RCA Al Algorithms ith 9 I = {W-library opened} {W library_opened} E={} 10 I = {‘open_Library()’} E = {open Library()} {open_Library()} 7 I = {‘close_Library()’} E = {close_Library()} Moha © Refactorings of Design Defects using RCA 22
  • 23. Suggestion 2. RCA Al Algorithms ith Moha © Refactorings of Design Defects using RCA 23
  • 24. Suggestion 2. RCA Al Algorithms ith 4 I = {‘check_Availability_Book()’} E = {check_Availability_Book()} 19 I = {call:c4} E={} 3 12 I = {‘borrow_Book()’} I = {‘reserve_Book()’,W-reserved_book} E = {borrow_Book() } E = {reserve_Book()} Moha © Refactorings of Design Defects using RCA 24
  • 25. Suggestion 3. Interpretation Cohesive Sets After Refactoring * Move Method Mode Field, Create Class Method, Field Moha © Refactorings of Design Defects using RCA 25
  • 26. Experimental Study Tooling PADL to model source code and generate contexts Galicia to construct and visualize the concept lattices Experiments E i t Goal: evaluate the relevance of the cohesive sets suggested 4 different open-source programs Moha © Refactorings of Design Defects using RCA 26
  • 27. System Experimental Study Nb of fields/ Nb of Nb of real Size (fields + Blob Class LOC methods cohesive cohesive Precision methods) moved sets sets DHTTransportUDPImpl 2,049 (42+66) 108 (27+32) 59 10 7 70% V2.3.0.6 Azureus DHTControlImpl 1,868 (47+80) 127 (35+62) 97 19 11 58% TRTrackerBTAnnouncerImpl 1,393 (36+47) 83 (24+33) 57 16 5 31% V0.7.1 V1.4 V1.2.1 LogBrokerMonitor 1,142 (29+105)134 (23+85) 108 31 17 55% ene Log4j Category 387 (9+53) 62 (8+44) 52 18 9 50% IndexReader 236 (7+52) 59 (5+30) 35 4 2 50% Nutch Luce QueryParser 829 (36+48) 84 (24+37) 61 13 10 77% FSNamesystem 710 (24+35) 59 (17+25) 42 18 9 50% JobTracker 555 ( (22+31) 53 ) ( (17+18) 35 ) 11 8 73% Average Precision: 57% Moha © Refactorings of Design Defects using RCA 27
  • 28. Conclusion Contribution an approach that uses RCA to suggest refactorings to correct certain DDs in particular Blob DDs, Validation 4 different programs Relevant refactorings to improve programs Future Work - Generalise to other DDs - Assess more programs via our approach - Discuss the suggested refactorings with their developers and apply them Moha © Refactorings of Design Defects using RCA 28
  • 29. Questions Contact: mohanaou@iro.umontreal.ca http://www-etud.iro.umontreal.ca/~mohanaou Thanks for your attention ! Moha © Refactorings of Design Defects using RCA 29