SlideShare a Scribd company logo
1 of 20
Download to read 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

More Related Content

Similar to ICMS08b.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 NamesDongsun Kim
 
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 Ivano Malavolta
 
Robust Information Exchanges For BIM
Robust Information Exchanges For BIMRobust Information Exchanges For BIM
Robust Information Exchanges For BIMManu Venugopal
 
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...IRJET Journal
 
Me6501 cad rejinpaul_iq_nov.dec2015
Me6501 cad rejinpaul_iq_nov.dec2015Me6501 cad rejinpaul_iq_nov.dec2015
Me6501 cad rejinpaul_iq_nov.dec2015vsksuresh2003
 
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
 
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 BuildingIRJET Journal
 
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 ViewpointsHenry Muccini
 
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...IRJET Journal
 
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 Journal
 
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 StatusIRJET Journal
 
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 FeaturesUniversitat Politècnica de Catalunya
 
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 BenchmarksMarkus Scheidgen
 
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 2011Kim Herzig
 
Software project management
Software project managementSoftware project management
Software project managementvamsi krishna
 
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_aheadEdward John Crain
 

Similar to 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
 

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

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 

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