SlideShare a Scribd company logo
A Large-Scale Empirical Study of
 the Relationship between Build
Technology and Build Maintenance




 Shane     Meiyappan Ahmed E.   Bram    Audris
McIntosh   Nagappan   Hassan    Adams   Mockus
What is a build system?
Source
 code




             2
What is a build system?
Source               Deliverable
 code




             2
Build systems describe how sources
        are translated into deliverables
 .c           .o           .a

.cc           .o                .exe        .deb

.tex         .dvi               .pdf
                       3
1) Listen for                   2) Build
  changes                       changes


                Continuous
                Integration:
                 Enabled by
                  the build
                   system


 4) Publish                    3) Execute
  results                         tests
                     4
The Build “Tax”
              “...nothing can be said
              to be certain, except
              death and taxes”
                            - Benjamin Franklin



                  Up to 27% of source
                  changes require build
                      changes, too!
                     An Empirical Study of
                   Build Maintenance Effort
                    S. McIntosh, B. Adams, T. H. D.
                    Nguyen,Y. Kamei, A. E. Hassan
                            [ICSE 2011]

                                                      5
Teams even migrate to different build technologies




                        6
...But does build technology
          really influence build
        maintenance activity?




7
Low-             Abstraction-        Framework-
     Level               Based               Driven
     File-level       Low-level scripts   Assumes standard
dependencies are       generated from     project layout and
explicitly declared   project metadata      dependencies
         Make
Rake

                           Autotools

Dependency Management
    Automatically manages 3rd-
     party API dependencies
                                                           8
Low-             Abstraction-        Framework-
     Level               Based               Driven
     File-level       Low-level scripts   Assumes standard
dependencies are       generated from     project layout and
explicitly declared   project metadata      dependencies
         Make
Rake

                           Autotools

Dependency Management
    Automatically manages 3rd-
     party API dependencies
                                                           9
Low-             Abstraction-        Framework-
     Level               Based               Driven
     File-level       Low-level scripts   Assumes standard
dependencies are       generated from     project layout and
explicitly declared   project metadata      dependencies
         Make
Rake

                           Autotools

Dependency Management
    Automatically manages 3rd-
     party API dependencies
                                                           10
Low-             Abstraction-        Framework-
     Level               Based               Driven
     File-level       Low-level scripts   Assumes standard
dependencies are       generated from     project layout and
explicitly declared   project metadata      dependencies
         Make
Rake

                           Autotools

Dependency Management
    Automatically manages 3rd-
     party API dependencies
                                                           11
Low-             Abstraction-        Framework-
     Level               Based               Driven
     File-level       Low-level scripts   Assumes standard
dependencies are       generated from     project layout and
explicitly declared   project metadata      dependencies
         Make
Rake

                           Autotools

Dependency Management
    Automatically manages 3rd-
     party API dependencies
                                                           12
Mining a Large-
 Scale Corpus

Amassing and indexing a
large sample of version
    control systems
 Towards the census of public
      source code history
   A. Mockus [MSR 2009]




 843,976 source
code repositories!


             13
Software Forges
Mining a Large-
 Scale Corpus
                                        repo.or.cz
Amassing and indexing a
large sample of version
    control systems
 Towards the census of public
      source code history
   A. Mockus [MSR 2009]




 843,976 source
code repositories!


             13
Software Forges
Mining a Large-
 Scale Corpus
                                        repo.or.cz
Amassing and indexing a
large sample of version
    control systems
 Towards the census of public   Software Ecosystems
      source code history
   A. Mockus [MSR 2009]




 843,976 source
code repositories!


             13
Software Forges
Mining a Large-
 Scale Corpus
                                        repo.or.cz
Amassing and indexing a
large sample of version
    control systems
 Towards the census of public   Software Ecosystems
      source code history
   A. Mockus [MSR 2009]




 843,976 source
                                Large Projects
code repositories!


             13
Software Forges
   Framework builds
   tend to churn most                                                                        repo.or.cz




                                     Low−level                      Abstraction      Frame      Dependency




                   200
Build churn rate




                   100




                     0

                         Ant   Jam   Makefile    Rake   SCons    Autotools CMake     Maven    Bundler     Ivy


                                                            14
Source code coupling is                                 Software Ecosystems


tightest with framework
     and abstraction
1.2
1.0
0.8
0.6
0.4
0.2
−0.2




       Low-level Framework       Low-level Abstraction        Low-level Abstraction
       Apache − Ant vs. Maven   Debian − Make vs. Autotools   GNU − Make vs. Autotools




                                         15
Migration
                                                          Large Projects




         helps!                          KDE
                     1.00
                                                             Authorship
                            Autotools
                     0.75                                    decreases
Build author ratio




                                                              ●●
                                                         ●● ●●
                                                         ●●● ●●●
                                                          ●●
                     0.50                              ●● ● ●
                                                        ● ●
                                                        ●
                                                     ●       ● ●
                                                             ●
                                                     ●●          ●●           ●
                                                    ●
                                                    ● ●
                                                      ●           ●            ●
                                                                 ●●●● ●
                                                                    ●●
                                                                    ●● ●     ●
                                                   ●               ●●●●●●● ●
                                                                       ●
                                                                      ●● ●●●●●
                     0.25                                                ●●●
                                                   ●                       ●

                                                    ●
                                                   ●
                                              ●●●●●
                                                 ●●
                                             ●●● ●●
                                             ●●●
                     0.00
                            2000        2004             2008                2012



                                        16
Migration
                                                                                      Large Projects




                             helps!
                                          KDE
                     1.00
                                                           Authorship
                              Autotools
                     0.75                                  decreases
Build author ratio




                                                           ●
                                                         ● ●●
                                                        ●● ●
                                                       ●● ● ●●
                                                      ●●●● ●●
                                                       ●
                                                      ● ●
                     0.50                                 ● ●
                                                           ●
                                                    ●         ●●
                                                    ●●
                                                   ●●                      ●
                                                   ●●          ●
                                                              ●●●● ●
                                                                 ●●         ●
                                                  ●              ●● ●     ●
                                                                ●●●●●●● ●
                                                                    ● ● ●
                                                                    ●     ●
                                                                   ● ●● ●
                     0.25                         ●
                                                                       ●●
                                                                        ●

                                                   ●
                                                  ●
                     0.00                    ●●●●●
                                             ●●●●●
                                              ●●●●●

                             2000         2004          2008              2012




                        Teams dedicate build
                         experts to help cope
                           with the build tax                                    16
Buildtechs
Buildtechs
Buildtechs
Buildtechs
Buildtechs

More Related Content

KEY
ICSE2011_SRC
PDF
Tracing Software Build Processes to Uncover License Compliance Inconsistencies
PDF
Mining Co-Change Information to Understand when Build Changes are Necessary
PDF
Identifying Hotspots in Software Build Processes
PDF
Identifying Hotspots in the PostgreSQL Build Process
PDF
Tracing Software Build Processes to Uncover License Compliance Inconsistencie...
PDF
Cross-Project Build Co-change Prediction
PDF
The Impact of Code Review Coverage and Participation on Software Quality
ICSE2011_SRC
Tracing Software Build Processes to Uncover License Compliance Inconsistencies
Mining Co-Change Information to Understand when Build Changes are Necessary
Identifying Hotspots in Software Build Processes
Identifying Hotspots in the PostgreSQL Build Process
Tracing Software Build Processes to Uncover License Compliance Inconsistencie...
Cross-Project Build Co-change Prediction
The Impact of Code Review Coverage and Participation on Software Quality

What's hot (20)

PDF
Collecting and Leveraging a Benchmark of Build System Clones to Aid in Qualit...
PDF
The Bash Dashboard (Or: How to Use Bash for Data Analysis)
PDF
Becoming A Plumber: Building Deployment Pipelines - LISA17
PDF
Migrating from Subversion to Git and GitHub
PDF
.Net Hijacking to Defend PowerShell BSidesSF2017
PDF
Becoming a Plumber: Building Deployment Pipelines - All Day DevOps
PDF
Git Graphs, Hashes, and Compression, Oh My
PPTX
CI from scratch with Jenkins (EN)
PDF
Git and GitHub at the San Francisco JUG
PDF
An Empirical Study of Unspecified Dependencies in Make-Based Build Systems
PDF
Gearman work queue in php
PDF
BenchFlow: A Platform for End-to-end Automation of Performance Testing and An...
PPTX
CI/CD on Android project via Jenkins Pipeline
KEY
groovy & grails - lecture 10
PDF
Docker In the Bank
KEY
groovy & grails - lecture 9
PDF
Automate Your Automation | DrupalCon Vienna
KEY
Improving code quality with continuous integration (PHPBenelux Conference 2011)
PDF
Docker In Bank Unrated
PPTX
Madrid JAM limitaciones - dificultades
Collecting and Leveraging a Benchmark of Build System Clones to Aid in Qualit...
The Bash Dashboard (Or: How to Use Bash for Data Analysis)
Becoming A Plumber: Building Deployment Pipelines - LISA17
Migrating from Subversion to Git and GitHub
.Net Hijacking to Defend PowerShell BSidesSF2017
Becoming a Plumber: Building Deployment Pipelines - All Day DevOps
Git Graphs, Hashes, and Compression, Oh My
CI from scratch with Jenkins (EN)
Git and GitHub at the San Francisco JUG
An Empirical Study of Unspecified Dependencies in Make-Based Build Systems
Gearman work queue in php
BenchFlow: A Platform for End-to-end Automation of Performance Testing and An...
CI/CD on Android project via Jenkins Pipeline
groovy & grails - lecture 10
Docker In the Bank
groovy & grails - lecture 9
Automate Your Automation | DrupalCon Vienna
Improving code quality with continuous integration (PHPBenelux Conference 2011)
Docker In Bank Unrated
Madrid JAM limitaciones - dificultades
Ad

Viewers also liked (10)

PDF
SOCIAL METRICS INCLUDED IN PREDICTION MODELS ON SOFTWARE ENGINEERING: A MAPPI...
PPT
Unicode - What you need to know
PDF
Module System in Standard ML
PDF
UM ESTUDO EMPÍRICO DO USO DA COMUNICAÇÃO PARA CARACTERIZAR A OCORRÊNCIA DE DE...
PDF
Orchestrating Change: An Artistic Representation of Software Evolution
PDF
Icse2011 build maintenance
PDF
USING STRUCTURAL HOLES METRICS FROM COMMUNICATION NETWORKS TO PREDICT CHANGE ...
PDF
Qt Apresentação
PDF
Sonar Metrics
PDF
O que é BIG DATA e como pode influenciar nossas vidas
SOCIAL METRICS INCLUDED IN PREDICTION MODELS ON SOFTWARE ENGINEERING: A MAPPI...
Unicode - What you need to know
Module System in Standard ML
UM ESTUDO EMPÍRICO DO USO DA COMUNICAÇÃO PARA CARACTERIZAR A OCORRÊNCIA DE DE...
Orchestrating Change: An Artistic Representation of Software Evolution
Icse2011 build maintenance
USING STRUCTURAL HOLES METRICS FROM COMMUNICATION NETWORKS TO PREDICT CHANGE ...
Qt Apresentação
Sonar Metrics
O que é BIG DATA e como pode influenciar nossas vidas
Ad

Similar to Buildtechs (20)

PDF
Passing the Joel Test in the PHP World (phpbnl10)
PDF
Software Lifecycle Management in Asemantics
PDF
Open Source Licenses and Tools
PDF
Eclipse vs Netbean vs Railo
PDF
Lean Software Production and Qualification Infrastructures
PDF
Web Developing In Search
PDF
Continuous Delivery Overview
PDF
11 tools for your PHP devops stack
PDF
How to help development team to manage foss during the whole industrial proc...
PPTX
Developing in the cloud
PDF
Open Source Jumpstart Tooling Up Intro
PDF
Fundamentals of Using Open Source Code to Build Products
PDF
Project Zero Php Quebec
PDF
Agile Seaside
PDF
Seaside — Agile Software Development
ODP
7 Tools for your Puppetized Devops stack
PDF
Kitware: Qt and Scientific Computing
PDF
1004 z2 env_positioned
PDF
7 tools for your devops stack
PDF
Of Bugs and Men
Passing the Joel Test in the PHP World (phpbnl10)
Software Lifecycle Management in Asemantics
Open Source Licenses and Tools
Eclipse vs Netbean vs Railo
Lean Software Production and Qualification Infrastructures
Web Developing In Search
Continuous Delivery Overview
11 tools for your PHP devops stack
How to help development team to manage foss during the whole industrial proc...
Developing in the cloud
Open Source Jumpstart Tooling Up Intro
Fundamentals of Using Open Source Code to Build Products
Project Zero Php Quebec
Agile Seaside
Seaside — Agile Software Development
7 Tools for your Puppetized Devops stack
Kitware: Qt and Scientific Computing
1004 z2 env_positioned
7 tools for your devops stack
Of Bugs and Men

Buildtechs

  • 1. A Large-Scale Empirical Study of the Relationship between Build Technology and Build Maintenance Shane Meiyappan Ahmed E. Bram Audris McIntosh Nagappan Hassan Adams Mockus
  • 2. What is a build system? Source code 2
  • 3. What is a build system? Source Deliverable code 2
  • 4. Build systems describe how sources are translated into deliverables .c .o .a .cc .o .exe .deb .tex .dvi .pdf 3
  • 5. 1) Listen for 2) Build changes changes Continuous Integration: Enabled by the build system 4) Publish 3) Execute results tests 4
  • 6. The Build “Tax” “...nothing can be said to be certain, except death and taxes” - Benjamin Franklin Up to 27% of source changes require build changes, too! An Empirical Study of Build Maintenance Effort S. McIntosh, B. Adams, T. H. D. Nguyen,Y. Kamei, A. E. Hassan [ICSE 2011] 5
  • 7. Teams even migrate to different build technologies 6
  • 8. ...But does build technology really influence build maintenance activity? 7
  • 9. Low- Abstraction- Framework- Level Based Driven File-level Low-level scripts Assumes standard dependencies are generated from project layout and explicitly declared project metadata dependencies Make Rake Autotools Dependency Management Automatically manages 3rd- party API dependencies 8
  • 10. Low- Abstraction- Framework- Level Based Driven File-level Low-level scripts Assumes standard dependencies are generated from project layout and explicitly declared project metadata dependencies Make Rake Autotools Dependency Management Automatically manages 3rd- party API dependencies 9
  • 11. Low- Abstraction- Framework- Level Based Driven File-level Low-level scripts Assumes standard dependencies are generated from project layout and explicitly declared project metadata dependencies Make Rake Autotools Dependency Management Automatically manages 3rd- party API dependencies 10
  • 12. Low- Abstraction- Framework- Level Based Driven File-level Low-level scripts Assumes standard dependencies are generated from project layout and explicitly declared project metadata dependencies Make Rake Autotools Dependency Management Automatically manages 3rd- party API dependencies 11
  • 13. Low- Abstraction- Framework- Level Based Driven File-level Low-level scripts Assumes standard dependencies are generated from project layout and explicitly declared project metadata dependencies Make Rake Autotools Dependency Management Automatically manages 3rd- party API dependencies 12
  • 14. Mining a Large- Scale Corpus Amassing and indexing a large sample of version control systems Towards the census of public source code history A. Mockus [MSR 2009] 843,976 source code repositories! 13
  • 15. Software Forges Mining a Large- Scale Corpus repo.or.cz Amassing and indexing a large sample of version control systems Towards the census of public source code history A. Mockus [MSR 2009] 843,976 source code repositories! 13
  • 16. Software Forges Mining a Large- Scale Corpus repo.or.cz Amassing and indexing a large sample of version control systems Towards the census of public Software Ecosystems source code history A. Mockus [MSR 2009] 843,976 source code repositories! 13
  • 17. Software Forges Mining a Large- Scale Corpus repo.or.cz Amassing and indexing a large sample of version control systems Towards the census of public Software Ecosystems source code history A. Mockus [MSR 2009] 843,976 source Large Projects code repositories! 13
  • 18. Software Forges Framework builds tend to churn most repo.or.cz Low−level Abstraction Frame Dependency 200 Build churn rate 100 0 Ant Jam Makefile Rake SCons Autotools CMake Maven Bundler Ivy 14
  • 19. Source code coupling is Software Ecosystems tightest with framework and abstraction 1.2 1.0 0.8 0.6 0.4 0.2 −0.2 Low-level Framework Low-level Abstraction Low-level Abstraction Apache − Ant vs. Maven Debian − Make vs. Autotools GNU − Make vs. Autotools 15
  • 20. Migration Large Projects helps! KDE 1.00 Authorship Autotools 0.75 decreases Build author ratio ●● ●● ●● ●●● ●●● ●● 0.50 ●● ● ● ● ● ● ● ● ● ● ●● ●● ● ● ● ● ● ● ● ●●●● ● ●● ●● ● ● ● ●●●●●●● ● ● ●● ●●●●● 0.25 ●●● ● ● ● ● ●●●●● ●● ●●● ●● ●●● 0.00 2000 2004 2008 2012 16
  • 21. Migration Large Projects helps! KDE 1.00 Authorship Autotools 0.75 decreases Build author ratio ● ● ●● ●● ● ●● ● ●● ●●●● ●● ● ● ● 0.50 ● ● ● ● ●● ●● ●● ● ●● ● ●●●● ● ●● ● ● ●● ● ● ●●●●●●● ● ● ● ● ● ● ● ●● ● 0.25 ● ●● ● ● ● 0.00 ●●●●● ●●●●● ●●●●● 2000 2004 2008 2012 Teams dedicate build experts to help cope with the build tax 16