ICSE2011_SRC
Upcoming SlideShare
Loading in...5
×
 

ICSE2011_SRC

on

  • 196 views

My ACM Student Research Competition slides

My ACM Student Research Competition slides

Statistics

Views

Total Views
196
Views on SlideShare
196
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • Infrastructure that translates source code into deliverables\n
  • Infrastructure that translates source code into deliverables\n
  • Infrastructure that translates source code into deliverables\n
  • Infrastructure that translates source code into deliverables\n
  • Infrastructure that translates source code into deliverables\n
  • Infrastructure that translates source code into deliverables\n
  • Infrastructure that translates source code into deliverables\n
  • Infrastructure that translates source code into deliverables\n
  • Infrastructure that translates source code into deliverables\n
  • Infrastructure that translates source code into deliverables\n
  • Infrastructure that translates source code into deliverables\n
  • Infrastructure that translates source code into deliverables\n
  • Infrastructure that translates source code into deliverables\n
  • \n
  • devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  • devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  • devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  • devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  • devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  • devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  • devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  • devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  • devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  • devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  • devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  • devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  • devs: constantly have to rebuilt artifacts to test changes... bld sys incrementally updates builds\n\n\n
  • Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
  • Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
  • Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
  • Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
  • Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
  • Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
  • Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
  • Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
  • Firefox 3.0 was built and delivered incorrectly\nusers in a networked environment address/search bar broken\ndue to an incorrect version of the SQLite library being linked in build process\nFix was delivered 4 months late in a service pack (3.0.1)\n
  • Based on survey results...\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Build maintenance is a nuisance for developers!\nneed tools to help them to cope!\n
  • \n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - devs may not commit all changes in one revision\n
  • - Jazz src devs are often responsible for build dev\n- Git and Linux are less so\n
  • - Jazz distributes build work...\n
  • - Jazz distributes build work...\n
  • - Jazz distributes build work...\n
  • - Jazz distributes build work...\n
  • - Jazz distributes build work...\n
  • \n
  • Build maintenance is a nuisance for developers!\nneed tools to help them to cope!\n

ICSE2011_SRC ICSE2011_SRC Presentation Transcript

  • Build System Maintenance Shane McIntosh
  • What is the build system?.c.c 2
  • What is the build system? .c .c .o .o .exe 2
  • Build code is complex... 3
  • Build Maintenance is aNuisance for Developers 4
  • Build Maintenance is aNuisance for Developers 4
  • Build Maintenance is a Nuisance for Developers MakeAutotools 4
  • Build Maintenance is a Nuisance for Developers Make Migration to newer build technologyAutotools 4
  • Build Bugs Even Affect the End User! 5
  • Build Bugs Even Affect the End User!Address Bar 5
  • Build Bugs Even Affect the End User!Address Bar Search Bar 5
  • Build Bugs Even Affect the End User!Address Bar Search Bar 5
  • Build Bugs Even Affect the End User!Address Bar Search Bar 5
  • Build Systems Require 12% of a Developer’s Time (on average) Kumfert, G., and Epperly, T. Software in the DOE: The Hidden Overhead of the “Build”6
  • Build Systems Require 12% of a Developer’s Time (on average) Build maintenanceslows development! Kumfert, G., and Epperly, T. Software in the DOE: The Hidden Overhead of the “Build” 6
  • Four Dimensional Study of Build Maintenance Size Evolution Coupling People .c ? .mk 7
  • 8
  • PLplot8
  • Size Evolution Coupling People .c ? .mk 9% of Build churn Tightly Dispersed orall files >> src churn coupled concentrated PLplot 9
  • Size Evolution Coupling People .c ? .mk 9% of Build churn Tightly Dispersed orall files >> src churn coupled concentrated PLplot 10
  • Identifying build maintainers Source Build.c .c .c .c .ac .c .c
  • Identifying build maintainers Source Build.c .c .c .c .ac .c .cChange Change Change Changelist #1 list #2 list #3 list #4
  • Identifying build maintainers Source Build.c .c .c .c .ac .c .cChange Change Change Change 25% buildlist #1 list #2 list #3 list #4
  • Identifying build maintainers Source Build.c .c .c .c .ac .c .cChange Change Change Change 25% buildlist #1 list #2 list #3 list #4
  • Identifying build maintainers Source Build.c .c .c .c .ac .c .cChange Change Change Change 25% buildlist #1 list #2 list #3 list #4 0% build
  • Identifying build maintainers Source Build.c .c .c .c .ac .c .cChange Change Change Change 25% buildlist #1 list #2 list #3 list #4 0% build
  • Identifying build maintainers Source Build.c .c .c .c .ac .c .cChange Change Change Change 25% buildlist #1 list #2 list #3 list #4 0% build 50% build
  • Identifying build maintainers Source Build.c .c .c .c .ac .c .cChange Change Change Changelist #1 list #2 list #3 list #4 ≥ 0% build 50% build
  • Identifying build maintainers Source Build.c .c .c .c .ac .c .cChange Change Change Changelist #1 list #2 list #3 list #4 ≥ 0% build 50% build
  • If you maintain source code,do you maintain build code? % of developers 79% 22% 25% 12
  • If you maintain source code,do you maintain build code? % of developers 79% 22% 25% 12
  • Dispersed Ownership:Build maintenance isdistributed amongstmost team members 13
  • Dispersed Ownership: Build maintenance is distributed amongst most team members Concentrated Ownership: A small team is responsible for mostof the build maintenance 13
  • Dispersed Ownership: Build maintenance is distributed amongst most team members Which build ownership style performs best? Concentrated Ownership: A small team is responsible for mostof the build maintenance 13
  • Tool Support Needed for Build Maintenance! Build maintenance required Build churn >>for 27% of source code tasks source churn 14
  • Size Evolution Coupling People .c ? .mk 9% of Build churn Tightly Dispersed orall files >> src churn coupled concentrated PLplot 15
  • Size Evolution Coupling People .c ? .mk 9% of Build churn Tightly Dispersed orall files >> src churn coupled concentrated Questions? PLplot 15