SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
An Empirical Study
                    of the Relationships between
                             Design Pattern Roles
                    and Class Change Proneness

Massimiliano DiPenta - University of Sannio
Luigi Cerulo - University of Sannio
Yann-Gaël Guéhéneuc - Université de Montréal
Giuliano Antoniol - École Polytechnique de Montréal   ICSM2008BEIJING
Outline

Introduction
  What is a design pattern role

Research questions
  The aim of the work

Data extraction process
  How we extract the dataset

Results
  What we observed




                                  ICSM2008BEIJING
Design Pattern Role, What Is It?

            Component
             Role a       Composite pattern
                            Design pattern

                Class A



  Class B       Class C    Class D



 Role c
 Leaf                     Role b
                            Composite
                                        ICSM2008BEIJING
Design Pattern Role, What Is It?

Subject                      Observer pattern
                                             Observer
     Class A                 Class B




     Class C                 Class D


          Concrete subject             Concrete observer
                                                    ICSM2008BEIJING
In Real Systems…
                   ArgoUML




                     ICSM2008BEIJING
DeMINA– Ptidej Tool Suite

A Multi-layered Framework for Design
  Pattern Identification
 [Y.G. Guéhéneuc and G. Antoniol, to appear in the September/October
 2008 issue of TSE]



Able to detect roles in 12 DP:
  Abstract Factories, Adapters, Commands,
  Composites, Decorators, Factory Methods, Observers,
  Prototypes, Singletons, State/Strategies, Template methods,
  Visitors

Precision = 34%, recall = 100%
                                                                ICSM2008BEIJING
What We Are Interested In




      What happens in
real software projects?




                          ICSM2008BEIJING
Research Questions

… it is known that design pattern
 classes are less change and fault
 prone…

Inside a design pattern
 RQ1 – Which roles are more likely to change?
 RQ2 – Which kind of change is more likely to
 predominate?


                                         ICSM2008BEIJING
Data We Have Extracted

   A versioned software system can be viewed as a
     sequence of snapshots generated by a sequence
     of change sets
                           Change set 2-3
                           Change set 2-3
                           commit of B1.5 G1.6
                           commit of B1.5 G1.6




   S1             S2          S3                     Sn



Change set 1-2
Change set 1-2               Heuristic:
                             Heuristic:
commit of B1.4 G1.5 F1.1
commit of B1.4 G1.5 F1.1     commits that share the same author, branch and notes
                             commits that share the same author, branch and notes
                             and their distance is < 200 s. [Zimmermann et al. ICSE 04]
                             and their distance is < 200 s. [Zimmermann et al. ICSE 04]


                                                                          ICSM2008BEIJING
Detection of Structural Changes

       S1               S2             S3                    Sn




                 Class X               Class X

                             compare

      M                A               I             H
  Method           Attribute      Class imple-   Class
  addition and     addition and   mentation      hierarchy
  removal          removal        changes        changes



                                                                  ICSM2008BEIJING
Data Set #1
                       Kind of Changes
               Snapshots
                S1     S2     S3   S4    S5    … Sn
          C1    M,A                      M,I
Classes




          C2           A,H
          C3    A,H
          C4           M      M    I,H
          …



                                                      ICSM2008BEIJING
Data Set #2
                        Design Pattern Roles
               Design pattern instances
                       #1               #2                    #3            …
               Composite (leaf)
          C1   Decorator (Component)
Classes




                                           Factory     Observer (subject)
          C2                               (creator)


               Factory(concrete creator)               Observer
          C3   Decorator(concrete                      (observer)
               component)


          …

                                                                      ICSM2008BEIJING
Back to Research Questions

Which roles are more likely to change?
  Counts of class changes grouped by design pattern roles


    Classes                    S1   S2   S3   S4   S5   …   #
    C1 (Observer#1-subject)                                 2
    C2 (Observer#1-observer)                                4
    C3 (Observer#2-subject)                                 1
    C4 (Composite#1-leaf)                                   5
    …



                                                                ICSM2008BEIJING
Back to Research Questions

  Which kind of change is more likely to
    predominate?
      Counts of class changes groupsed by design pattern roles and
         change type
Classes                    S1 S2   S3    S4    S5    …     #M   #I   #H    #A
C1 (Observer#1-subject)    M                   M,H         2    -    1      -
C2 (Observer#1-observer)       A,I A,H   A,I         M,I   -    3    1      3
C3 (Observer#2-subject)    I                               -    1    -      -
C4 (Composite#1-leaf)      H   H         H,I   H,A         -    1    4      1
…



                                                                     ICSM2008BEIJING
Results, What We Have Observed

 Analyzed systems
   JHotDraw (177 change sets)
   Xerces-j (4972 change sets)
   Eclipse JDT (23424 change sets)

 Analyzed design patterns
   Abstract Factories, Adapters, Commands,
   Composites, Decorators, Factory Methods, Observers,
   Prototypes, Singletons, State/Strategies, Template methods,
   Visitors




                                                           ICSM2008BEIJING
Abstract Factory
                   JHotDraw

                RMED
          CONFI




                              ICSM2008BEIJING
Template Method
                 Eclipse-JDT

               RMED
         CONFI




                               ICSM2008BEIJING
Composite
             Eclipse-JDT

           ally
        rti RMED
      Pa FI
       CON




                           ICSM2008BEIJING
Conclusions

This study is not yet concluded
  Many other questions still to answer…

Main issues to overcome
  Design pattern detection (e.g., other languages than Java)
  Change type detection (e.g., class relationship change)




                                                               ICSM2008BEIJING
Fragen
    questions             Perguntas
                        ερωτήσεις           въпроси
 preguntas                             frågor
                问题              ‫ا‬             質問
domande
              întrebări     questions
                                          सवाल
  pitanja
                          dotazy
                                       질문
  問題         kysymyksiä
                           вопросы        vragen
spørsmål
              pytania               spørgsmål
                                                ICSM2008BEIJING

Mais conteúdo relacionado

Semelhante a ICMS08b.ppt

Robust Information Exchanges For BIM
Robust Information Exchanges For BIMRobust Information Exchanges For BIM
Robust Information Exchanges For BIM
Manu Venugopal
 
PatEvol - A Pattern Language for Evolution in Component-based Software Archit...
PatEvol - A Pattern Language for Evolution in Component-based Software Archit...PatEvol - A Pattern Language for Evolution in Component-based Software Archit...
PatEvol - A Pattern Language for Evolution in Component-based Software Archit...
Aakash Ahmad
 
Contextless Object Recognition with Shape-enriched SIFT and Bags of Features
Contextless Object Recognition with Shape-enriched SIFT and Bags of FeaturesContextless Object Recognition with Shape-enriched SIFT and Bags of Features
Contextless Object Recognition with Shape-enriched SIFT and Bags of Features
Universitat Politècnica de Catalunya
 
Software project management
Software project managementSoftware project management
Software project management
vamsi krishna
 

Semelhante a ICMS08b.ppt (20)

Icsm08b.ppt
Icsm08b.pptIcsm08b.ppt
Icsm08b.ppt
 
Learning to Spot and Refactor Inconsistent Method Names
Learning to Spot and Refactor Inconsistent Method NamesLearning to Spot and Refactor Inconsistent Method Names
Learning to Spot and Refactor Inconsistent Method Names
 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization
 
Robust Information Exchanges For BIM
Robust Information Exchanges For BIMRobust Information Exchanges For BIM
Robust Information Exchanges For BIM
 
IRJET-Analysis of RC Structure with and without Shear Wall and Optimum Locati...
IRJET-Analysis of RC Structure with and without Shear Wall and Optimum Locati...IRJET-Analysis of RC Structure with and without Shear Wall and Optimum Locati...
IRJET-Analysis of RC Structure with and without Shear Wall and Optimum Locati...
 
Me6501 cad rejinpaul_iq_nov.dec2015
Me6501 cad rejinpaul_iq_nov.dec2015Me6501 cad rejinpaul_iq_nov.dec2015
Me6501 cad rejinpaul_iq_nov.dec2015
 
Ajs 2 b
Ajs 2 bAjs 2 b
Ajs 2 b
 
PatEvol - A Pattern Language for Evolution in Component-based Software Archit...
PatEvol - A Pattern Language for Evolution in Component-based Software Archit...PatEvol - A Pattern Language for Evolution in Component-based Software Archit...
PatEvol - A Pattern Language for Evolution in Component-based Software Archit...
 
Comparative Analysis Of Different Irregular Building With Regular Building
Comparative Analysis Of Different Irregular Building With Regular BuildingComparative Analysis Of Different Irregular Building With Regular Building
Comparative Analysis Of Different Irregular Building With Regular Building
 
On the Composition and Reuse of Viewpoints
On the Composition and Reuse of ViewpointsOn the Composition and Reuse of Viewpoints
On the Composition and Reuse of Viewpoints
 
Comparative Study of Y-Shaped Columns with Conventional Rectangular Shaped Co...
Comparative Study of Y-Shaped Columns with Conventional Rectangular Shaped Co...Comparative Study of Y-Shaped Columns with Conventional Rectangular Shaped Co...
Comparative Study of Y-Shaped Columns with Conventional Rectangular Shaped Co...
 
Ajs 3 a
Ajs 3 aAjs 3 a
Ajs 3 a
 
Midas Gen catalog
Midas Gen catalogMidas Gen catalog
Midas Gen catalog
 
IRJET- Comparative Study of Staircase with Various Support Conditions using S...
IRJET- Comparative Study of Staircase with Various Support Conditions using S...IRJET- Comparative Study of Staircase with Various Support Conditions using S...
IRJET- Comparative Study of Staircase with Various Support Conditions using S...
 
IRJET- Predicting Filed H1-B Visa Petitions Status
IRJET- Predicting Filed H1-B Visa Petitions StatusIRJET- Predicting Filed H1-B Visa Petitions Status
IRJET- Predicting Filed H1-B Visa Petitions Status
 
Contextless Object Recognition with Shape-enriched SIFT and Bags of Features
Contextless Object Recognition with Shape-enriched SIFT and Bags of FeaturesContextless Object Recognition with Shape-enriched SIFT and Bags of Features
Contextless Object Recognition with Shape-enriched SIFT and Bags of Features
 
Generation of Random EMF Models for Benchmarks
Generation of Random EMF Models for BenchmarksGeneration of Random EMF Models for Benchmarks
Generation of Random EMF Models for Benchmarks
 
Mining Cause Effect Chains from Version Archives - ISSRE 2011
Mining Cause Effect Chains from Version Archives - ISSRE 2011Mining Cause Effect Chains from Version Archives - ISSRE 2011
Mining Cause Effect Chains from Version Archives - ISSRE 2011
 
Software project management
Software project managementSoftware project management
Software project management
 
Re the status_quo_and_what_lies_ahead
Re the status_quo_and_what_lies_aheadRe the status_quo_and_what_lies_ahead
Re the status_quo_and_what_lies_ahead
 

Mais de Ptidej Team

Mais de 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
 

Último

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
UK Journal
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 

Último (20)

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 

ICMS08b.ppt

  • 1. An Empirical Study of the Relationships between Design Pattern Roles and Class Change Proneness Massimiliano DiPenta - University of Sannio Luigi Cerulo - University of Sannio Yann-Gaël Guéhéneuc - Université de Montréal Giuliano Antoniol - École Polytechnique de Montréal ICSM2008BEIJING
  • 2. Outline Introduction What is a design pattern role Research questions The aim of the work Data extraction process How we extract the dataset Results What we observed ICSM2008BEIJING
  • 3. Design Pattern Role, What Is It? Component Role a Composite pattern Design pattern Class A Class B Class C Class D Role c Leaf Role b Composite ICSM2008BEIJING
  • 4. Design Pattern Role, What Is It? Subject Observer pattern Observer Class A Class B Class C Class D Concrete subject Concrete observer ICSM2008BEIJING
  • 5. In Real Systems… ArgoUML ICSM2008BEIJING
  • 6. DeMINA– Ptidej Tool Suite A Multi-layered Framework for Design Pattern Identification [Y.G. Guéhéneuc and G. Antoniol, to appear in the September/October 2008 issue of TSE] Able to detect roles in 12 DP: Abstract Factories, Adapters, Commands, Composites, Decorators, Factory Methods, Observers, Prototypes, Singletons, State/Strategies, Template methods, Visitors Precision = 34%, recall = 100% ICSM2008BEIJING
  • 7. What We Are Interested In What happens in real software projects? ICSM2008BEIJING
  • 8. Research Questions … it is known that design pattern classes are less change and fault prone… Inside a design pattern RQ1 – Which roles are more likely to change? RQ2 – Which kind of change is more likely to predominate? ICSM2008BEIJING
  • 9. Data We Have Extracted A versioned software system can be viewed as a sequence of snapshots generated by a sequence of change sets Change set 2-3 Change set 2-3 commit of B1.5 G1.6 commit of B1.5 G1.6 S1 S2 S3 Sn Change set 1-2 Change set 1-2 Heuristic: Heuristic: commit of B1.4 G1.5 F1.1 commit of B1.4 G1.5 F1.1 commits that share the same author, branch and notes commits that share the same author, branch and notes and their distance is < 200 s. [Zimmermann et al. ICSE 04] and their distance is < 200 s. [Zimmermann et al. ICSE 04] ICSM2008BEIJING
  • 10. Detection of Structural Changes S1 S2 S3 Sn Class X Class X compare M A I H Method Attribute Class imple- Class addition and addition and mentation hierarchy removal removal changes changes ICSM2008BEIJING
  • 11. Data Set #1 Kind of Changes Snapshots S1 S2 S3 S4 S5 … Sn C1 M,A M,I Classes C2 A,H C3 A,H C4 M M I,H … ICSM2008BEIJING
  • 12. Data Set #2 Design Pattern Roles Design pattern instances #1 #2 #3 … Composite (leaf) C1 Decorator (Component) Classes Factory Observer (subject) C2 (creator) Factory(concrete creator) Observer C3 Decorator(concrete (observer) component) … ICSM2008BEIJING
  • 13. Back to Research Questions Which roles are more likely to change? Counts of class changes grouped by design pattern roles Classes S1 S2 S3 S4 S5 … # C1 (Observer#1-subject) 2 C2 (Observer#1-observer) 4 C3 (Observer#2-subject) 1 C4 (Composite#1-leaf) 5 … ICSM2008BEIJING
  • 14. Back to Research Questions Which kind of change is more likely to predominate? Counts of class changes groupsed by design pattern roles and change type Classes S1 S2 S3 S4 S5 … #M #I #H #A C1 (Observer#1-subject) M M,H 2 - 1 - C2 (Observer#1-observer) A,I A,H A,I M,I - 3 1 3 C3 (Observer#2-subject) I - 1 - - C4 (Composite#1-leaf) H H H,I H,A - 1 4 1 … ICSM2008BEIJING
  • 15. Results, What We Have Observed Analyzed systems JHotDraw (177 change sets) Xerces-j (4972 change sets) Eclipse JDT (23424 change sets) Analyzed design patterns Abstract Factories, Adapters, Commands, Composites, Decorators, Factory Methods, Observers, Prototypes, Singletons, State/Strategies, Template methods, Visitors ICSM2008BEIJING
  • 16. Abstract Factory JHotDraw RMED CONFI ICSM2008BEIJING
  • 17. Template Method Eclipse-JDT RMED CONFI ICSM2008BEIJING
  • 18. Composite Eclipse-JDT ally rti RMED Pa FI CON ICSM2008BEIJING
  • 19. Conclusions This study is not yet concluded Many other questions still to answer… Main issues to overcome Design pattern detection (e.g., other languages than Java) Change type detection (e.g., class relationship change) ICSM2008BEIJING
  • 20. Fragen questions Perguntas ερωτήσεις въпроси preguntas frågor 问题 ‫ا‬ 質問 domande întrebări questions सवाल pitanja dotazy 질문 問題 kysymyksiä вопросы vragen spørsmål pytania spørgsmål ICSM2008BEIJING