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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend