ICSE2011_SRC

296 views
236 views

Published on

My ACM Student Research Competition slides

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
296
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \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

    1. 1. Build System Maintenance Shane McIntosh
    2. 2. What is the build system?.c.c 2
    3. 3. What is the build system? .c .c .o .o .exe 2
    4. 4. Build code is complex... 3
    5. 5. Build Maintenance is aNuisance for Developers 4
    6. 6. Build Maintenance is aNuisance for Developers 4
    7. 7. Build Maintenance is a Nuisance for Developers MakeAutotools 4
    8. 8. Build Maintenance is a Nuisance for Developers Make Migration to newer build technologyAutotools 4
    9. 9. Build Bugs Even Affect the End User! 5
    10. 10. Build Bugs Even Affect the End User!Address Bar 5
    11. 11. Build Bugs Even Affect the End User!Address Bar Search Bar 5
    12. 12. Build Bugs Even Affect the End User!Address Bar Search Bar 5
    13. 13. Build Bugs Even Affect the End User!Address Bar Search Bar 5
    14. 14. 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
    15. 15. 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
    16. 16. Four Dimensional Study of Build Maintenance Size Evolution Coupling People .c ? .mk 7
    17. 17. 8
    18. 18. PLplot8
    19. 19. Size Evolution Coupling People .c ? .mk 9% of Build churn Tightly Dispersed orall files >> src churn coupled concentrated PLplot 9
    20. 20. Size Evolution Coupling People .c ? .mk 9% of Build churn Tightly Dispersed orall files >> src churn coupled concentrated PLplot 10
    21. 21. Identifying build maintainers Source Build.c .c .c .c .ac .c .c
    22. 22. Identifying build maintainers Source Build.c .c .c .c .ac .c .cChange Change Change Changelist #1 list #2 list #3 list #4
    23. 23. Identifying build maintainers Source Build.c .c .c .c .ac .c .cChange Change Change Change 25% buildlist #1 list #2 list #3 list #4
    24. 24. Identifying build maintainers Source Build.c .c .c .c .ac .c .cChange Change Change Change 25% buildlist #1 list #2 list #3 list #4
    25. 25. 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
    26. 26. 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
    27. 27. 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
    28. 28. 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
    29. 29. 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
    30. 30. If you maintain source code,do you maintain build code? % of developers 79% 22% 25% 12
    31. 31. If you maintain source code,do you maintain build code? % of developers 79% 22% 25% 12
    32. 32. Dispersed Ownership:Build maintenance isdistributed amongstmost team members 13
    33. 33. Dispersed Ownership: Build maintenance is distributed amongst most team members Concentrated Ownership: A small team is responsible for mostof the build maintenance 13
    34. 34. 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
    35. 35. Tool Support Needed for Build Maintenance! Build maintenance required Build churn >>for 27% of source code tasks source churn 14
    36. 36. Size Evolution Coupling People .c ? .mk 9% of Build churn Tightly Dispersed orall files >> src churn coupled concentrated PLplot 15
    37. 37. Size Evolution Coupling People .c ? .mk 9% of Build churn Tightly Dispersed orall files >> src churn coupled concentrated Questions? PLplot 15

    ×