the case for software evolution
play

The Case for Software Evolution Claire Le Goues * , Stephanie - PowerPoint PPT Presentation

The Case for Software Evolution Claire Le Goues * , Stephanie Forrest + , Wes Weimer * * University of Virginia + University of New Mexico 1 11/7/10 Claire Le Goues, UVA Maintenance = up to 90% of a projects cost, up to $60 billion in


  1. The Case for Software Evolution Claire Le Goues * , Stephanie Forrest + , Wes Weimer * * University of Virginia + University of New Mexico 1 11/7/10 Claire Le Goues, UVA

  2.  Maintenance = up to 90% of a project’s cost, up to $60 billion in the US annually. The current software development paradigm is broken.  Software has become too complicated for humans to understand. 2 11/7/10 Claire Le Goues, UVA

  3.  Most aspects of a software system change over its lifetime. We should treat software like a complex, evolving system.  Human modifications resemble evolutionary mechanisms. 3 11/7/10 Claire Le Goues, UVA

  4. This perspective challenges several current research assumptions. 4 11/7/10 Claire Le Goues, UVA

  5. 1. Soundness  Complexity limits the feasibility, utility of precise proofs of program properties. • Biological systems do not rely on a priori correctness.  Future directions: new definitions of utility; program analysis features that enable practical adaptation. 5 11/7/10 Claire Le Goues, UVA

  6. 2. Definition of acceptability  Without soundness, we need new program analysis metrics and benchmarks.  Future directions: test suites (evolving), continued execution, heuristics. • Test case generation that produces full test cases, with expected output. 6 11/7/10 Claire Le Goues, UVA

  7. 3. Separation of concerns  Biological boundaries enforcing modularity are much richer than their computing equivalents.  Future directions: relax hardware/ software abstraction to achieve robustness in dynamic and energy-constrained environments. 7 11/7/10 Claire Le Goues, UVA

  8. 4. Homogeneity  Biological diversity is an important source of robustness. • Protects against the spread of disease. • Provides alternative pathways to maintain functionality.  Future directions: research techniques that account for and leverage diversity. 8 11/7/10 Claire Le Goues, UVA

  9. Conclusions  We should think of computational systems as complex evolving systems.  This could dramatically change software development and maintenance. • May be able to revisit the dream of automatic programming. • May enable theoretical analyses of how software is likely to operate over long time scales. 9 11/7/10 Claire Le Goues, UVA

  10. Questions! 10 11/7/10 Claire Le Goues, UVA

  11. Automatic error repair using genetic programming (GP) 11 11/7/10 Claire Le Goues, UVA

  12. Delete or insert statements (from elsewhere in the More likely to change program). fault-localized regions. 12 11/7/10 Claire Le Goues, UVA

  13.  Results: repaired 15 legacy C programs (> two million LOC); < 5 minutes (average); error types: buffer overruns, denial of service, format string vulnerabilities, infinite loops…  Highlights analogy between software and complex evolving systems. • Assumes redundancy of functionality even in software executing in isolation. • Many bugs repaired by copying code between locations, resembling biological evolution. 13 11/7/10 Claire Le Goues, UVA

Recommend


More recommend