SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
IMPACT OF CODE OWNERSHIP
ON ATIPATTERNS
Stéphane BUNOD
Engineering school student at Polytech’Montpellier
3 month internship

Supervisor : Foutse KHOMH
OUTLINE
 Context
 Goal
 Implementation
 Results
 Conclusion
 Personal experience
CONTEXT
 Foutse’s research interests
 Developping techniques and tools to assess the quality of systems
 Design patterns, design defects : their impact on the quality of systems and their
evolution in systems
 Foutse “Antipatterns are more fault prone” . 2012
 Christian Bird. Don’t Touch My Code! Examining the Effects of Ownership on
Software Quality. 2011
GOAL
IMPLEMENTATION – EXISTING WORK
 Previous work from Francis NAHM:
 List of AntiPatterns for each version of the Argouml project
(APs example : ComplexClass, LongMethod, LongParameterList)
IMPLEMENTATION – COLLECT
 Collect information about the Argouml project:
 SVN log
IMPLEMENTATION – WHAT IS INTERESTING IN « SVN LOG »
IMPLEMENTATION – KEEP INTERESTING INFORMATION
 Get the list of contributors
 Get the date of commits
 Get the files/classes that had been modified
IMPLEMENTATION – EVALUATE MAJOR CONTRIBUTOR RATE
Major contributor: A developer who has made changes to a component and whose
ownership is at or above X% is a major contributor to the component and a commit
from such a developer is a major contribution.

3rd quartile of all contributors statistics on each classes : 71%
IMPLEMENTATION – ADD INFORMATION OF MC ON EACH VERSION
 Know the kind of contributor for each version on each class.
 Add it beside the number of AntiPatterns on each version of each class.
IMPLEMENTATION – WHAT THE CSV LOOKS LIKE
IMPLEMENTATION – METHOD TO ESTIMATE THE EVOLUTION OF A CLASS
List of the occurrence of AntiPatterns for each class.
Example: [5, 3, 4, 4, 1, 2, 5]
[0]: A-A-A-A-A-S
[1]: D-D-A-A-D
[2]: S-A-A-D
[3]: A-A-D
[4]: D-D
[5]: D
A = 11 ; D = 8 ; S = 2
 A > D > S  This class is considered to have a global amelioration tendency
IMPLEMENTATION – DIFFERENT CATEGORIES OF LIST
 Classes with only Major Contributor (MC) on each version of the project.
 Classes without any MC.
 Classes with a MC, only on the first version.
 Classes with a developer who becomes MC after few versions without any.
 Classes where there is no longer MC after few versions with a MC.
RESULTS
Only MC

No MC

Only MC on
the 1st
version

Stable

58%

73,63%

74,40%

87,13%

79,18%

Amelioration

24%

11,55%

7,76%

1,98%

14,46%

Degradation

18%

14,82%

20,84%

10,89%

6,36%

Become MC

No longer MC
CONCLUSION
Linus Law. “Given a large enough developers, almost every problem will be
characterized quickly and the fix will be obvious to someone“
 AntiPatterns have the same characteristics of Bugs correlate with

ownership.
 Of course, this work should be reproduced on other projects.
PERSONAL EXPERIENCE
 Lab experience
 Met new people
 Learnt Python language (enjoyed coding for once)
 Not sure I would be a good researcher ^^

Weitere ähnliche Inhalte

Was ist angesagt?

Testing throughout the software life cycle 2
Testing throughout the software life cycle 2Testing throughout the software life cycle 2
Testing throughout the software life cycle 2
Risun Hidayat
 
Presentasi testing throughout the software life cycle 2
Presentasi testing throughout the software life cycle 2Presentasi testing throughout the software life cycle 2
Presentasi testing throughout the software life cycle 2
Egi Ilham Elnusa
 
Testing throughout the software life cycle 2
Testing throughout the software life cycle 2Testing throughout the software life cycle 2
Testing throughout the software life cycle 2
Evi Yandri
 
Testing throughout the software life cycle 2
Testing throughout the software life cycle 2Testing throughout the software life cycle 2
Testing throughout the software life cycle 2
As Fazli
 
Testing throughout the software life cycle 2
Testing throughout the software life cycle 2Testing throughout the software life cycle 2
Testing throughout the software life cycle 2
Afridol Afridol
 
Testing Types and Paradigms - 2015-07-13 - V11
Testing Types and Paradigms - 2015-07-13 - V11Testing Types and Paradigms - 2015-07-13 - V11
Testing Types and Paradigms - 2015-07-13 - V11
Donald Firesmith
 
Aldi testing throughout the software life cycle 2
Aldi testing throughout the software life cycle 2Aldi testing throughout the software life cycle 2
Aldi testing throughout the software life cycle 2
aldi aulia
 

Was ist angesagt? (20)

Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
 
Testing tests
Testing testsTesting tests
Testing tests
 
Testing throughout the software life cycle 2
Testing throughout the software life cycle 2Testing throughout the software life cycle 2
Testing throughout the software life cycle 2
 
Fundamentals of testing jef (3)
Fundamentals of testing jef (3)Fundamentals of testing jef (3)
Fundamentals of testing jef (3)
 
Presentasi testing throughout the software life cycle 2
Presentasi testing throughout the software life cycle 2Presentasi testing throughout the software life cycle 2
Presentasi testing throughout the software life cycle 2
 
Testing throughout the software life cycle 2
Testing throughout the software life cycle 2Testing throughout the software life cycle 2
Testing throughout the software life cycle 2
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
 
Partitioned Based Regression Verification
Partitioned Based Regression VerificationPartitioned Based Regression Verification
Partitioned Based Regression Verification
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
 
Testing throughout the software life cycle 2
Testing throughout the software life cycle 2Testing throughout the software life cycle 2
Testing throughout the software life cycle 2
 
Testing throughout the software life cycle 2
Testing throughout the software life cycle 2Testing throughout the software life cycle 2
Testing throughout the software life cycle 2
 
6 Weeks Industrial Training in Testing
6 Weeks Industrial Training in Testing 6 Weeks Industrial Training in Testing
6 Weeks Industrial Training in Testing
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
 
Icsm19.ppt
Icsm19.pptIcsm19.ppt
Icsm19.ppt
 
INGI2252 Software Measures & Maintenance
INGI2252 Software Measures & MaintenanceINGI2252 Software Measures & Maintenance
INGI2252 Software Measures & Maintenance
 
Beyond Static Analysis: Integrating .NET Static Analysis with Unit Testing a...
Beyond Static Analysis: Integrating .NET  Static Analysis with Unit Testing a...Beyond Static Analysis: Integrating .NET  Static Analysis with Unit Testing a...
Beyond Static Analysis: Integrating .NET Static Analysis with Unit Testing a...
 
Testing Types and Paradigms - 2015-07-13 - V11
Testing Types and Paradigms - 2015-07-13 - V11Testing Types and Paradigms - 2015-07-13 - V11
Testing Types and Paradigms - 2015-07-13 - V11
 
Jean Paul Varwijk - Discussing the Future of Software Testing - EuroSTAR 2013
Jean Paul Varwijk - Discussing the Future of Software Testing - EuroSTAR 2013Jean Paul Varwijk - Discussing the Future of Software Testing - EuroSTAR 2013
Jean Paul Varwijk - Discussing the Future of Software Testing - EuroSTAR 2013
 
Aldi testing throughout the software life cycle 2
Aldi testing throughout the software life cycle 2Aldi testing throughout the software life cycle 2
Aldi testing throughout the software life cycle 2
 

Ähnlich wie 130830 stephane bunod - impact of code ownership on antipatterns

Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
smumbahelp
 
Mi0033 software engineering...
Mi0033  software engineering...Mi0033  software engineering...
Mi0033 software engineering...
smumbahelp
 
Track g semiconductor test program - testinsight
Track g  semiconductor test program - testinsightTrack g  semiconductor test program - testinsight
Track g semiconductor test program - testinsight
chiportal
 
SDLC model Lecture 03.ppt
SDLC model Lecture 03.pptSDLC model Lecture 03.ppt
SDLC model Lecture 03.ppt
PriyanshTan
 

Ähnlich wie 130830 stephane bunod - impact of code ownership on antipatterns (20)

130531 francis nahm - on the evolution of antipatterns genealogies
130531   francis nahm - on the evolution of antipatterns genealogies130531   francis nahm - on the evolution of antipatterns genealogies
130531 francis nahm - on the evolution of antipatterns genealogies
 
reaserch ppt.pptx
reaserch ppt.pptxreaserch ppt.pptx
reaserch ppt.pptx
 
Effective Software Release Management
Effective Software Release ManagementEffective Software Release Management
Effective Software Release Management
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.
 
Cnpm bkdn
Cnpm bkdnCnpm bkdn
Cnpm bkdn
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
 
UNIT V TESTING.pptx
UNIT V TESTING.pptxUNIT V TESTING.pptx
UNIT V TESTING.pptx
 
Mi0033 summer-2016
Mi0033 summer-2016Mi0033 summer-2016
Mi0033 summer-2016
 
Mi0033 software engineering...
Mi0033  software engineering...Mi0033  software engineering...
Mi0033 software engineering...
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
System Development
System  DevelopmentSystem  Development
System Development
 
[2015/2016] Software development process
[2015/2016] Software development process[2015/2016] Software development process
[2015/2016] Software development process
 
Sanjeevi's SDLC Guest Lecture in Anna University campus at AU-PERS Centre (Ye...
Sanjeevi's SDLC Guest Lecture in Anna University campus at AU-PERS Centre (Ye...Sanjeevi's SDLC Guest Lecture in Anna University campus at AU-PERS Centre (Ye...
Sanjeevi's SDLC Guest Lecture in Anna University campus at AU-PERS Centre (Ye...
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
Track g semiconductor test program - testinsight
Track g  semiconductor test program - testinsightTrack g  semiconductor test program - testinsight
Track g semiconductor test program - testinsight
 
Test planning.ppt
Test planning.pptTest planning.ppt
Test planning.ppt
 
Software evolution and maintenance
Software evolution and maintenanceSoftware evolution and maintenance
Software evolution and maintenance
 
SDLC model Lecture 03.ppt
SDLC model Lecture 03.pptSDLC model Lecture 03.ppt
SDLC model Lecture 03.ppt
 
SDLC model Lecture 03.ppt
SDLC model Lecture 03.pptSDLC model Lecture 03.ppt
SDLC model Lecture 03.ppt
 

Mehr von Ptidej Team

Mehr von 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
 

Kürzlich hochgeladen

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
Victor Rentea
 

Kürzlich hochgeladen (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
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
 
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...
 
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
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.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
 
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...
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

130830 stephane bunod - impact of code ownership on antipatterns

  • 1. IMPACT OF CODE OWNERSHIP ON ATIPATTERNS Stéphane BUNOD Engineering school student at Polytech’Montpellier 3 month internship Supervisor : Foutse KHOMH
  • 2. OUTLINE  Context  Goal  Implementation  Results  Conclusion  Personal experience
  • 3. CONTEXT  Foutse’s research interests  Developping techniques and tools to assess the quality of systems  Design patterns, design defects : their impact on the quality of systems and their evolution in systems  Foutse “Antipatterns are more fault prone” . 2012  Christian Bird. Don’t Touch My Code! Examining the Effects of Ownership on Software Quality. 2011
  • 5. IMPLEMENTATION – EXISTING WORK  Previous work from Francis NAHM:  List of AntiPatterns for each version of the Argouml project (APs example : ComplexClass, LongMethod, LongParameterList)
  • 6. IMPLEMENTATION – COLLECT  Collect information about the Argouml project:  SVN log
  • 7. IMPLEMENTATION – WHAT IS INTERESTING IN « SVN LOG »
  • 8. IMPLEMENTATION – KEEP INTERESTING INFORMATION  Get the list of contributors  Get the date of commits  Get the files/classes that had been modified
  • 9. IMPLEMENTATION – EVALUATE MAJOR CONTRIBUTOR RATE Major contributor: A developer who has made changes to a component and whose ownership is at or above X% is a major contributor to the component and a commit from such a developer is a major contribution. 3rd quartile of all contributors statistics on each classes : 71%
  • 10. IMPLEMENTATION – ADD INFORMATION OF MC ON EACH VERSION  Know the kind of contributor for each version on each class.  Add it beside the number of AntiPatterns on each version of each class.
  • 11. IMPLEMENTATION – WHAT THE CSV LOOKS LIKE
  • 12. IMPLEMENTATION – METHOD TO ESTIMATE THE EVOLUTION OF A CLASS List of the occurrence of AntiPatterns for each class. Example: [5, 3, 4, 4, 1, 2, 5] [0]: A-A-A-A-A-S [1]: D-D-A-A-D [2]: S-A-A-D [3]: A-A-D [4]: D-D [5]: D A = 11 ; D = 8 ; S = 2  A > D > S  This class is considered to have a global amelioration tendency
  • 13. IMPLEMENTATION – DIFFERENT CATEGORIES OF LIST  Classes with only Major Contributor (MC) on each version of the project.  Classes without any MC.  Classes with a MC, only on the first version.  Classes with a developer who becomes MC after few versions without any.  Classes where there is no longer MC after few versions with a MC.
  • 14. RESULTS Only MC No MC Only MC on the 1st version Stable 58% 73,63% 74,40% 87,13% 79,18% Amelioration 24% 11,55% 7,76% 1,98% 14,46% Degradation 18% 14,82% 20,84% 10,89% 6,36% Become MC No longer MC
  • 15. CONCLUSION Linus Law. “Given a large enough developers, almost every problem will be characterized quickly and the fix will be obvious to someone“  AntiPatterns have the same characteristics of Bugs correlate with ownership.  Of course, this work should be reproduced on other projects.
  • 16. PERSONAL EXPERIENCE  Lab experience  Met new people  Learnt Python language (enjoyed coding for once)  Not sure I would be a good researcher ^^