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

the case for software evolution
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

The Case for Software Evolution

Claire Le Goues*, Stephanie Forrest+, Wes Weimer*

*University of Virginia +University of New Mexico

11/7/10 Claire Le Goues, UVA

1

slide-2
SLIDE 2

The current software development paradigm is broken.

11/7/10 Claire Le Goues, UVA

2

  • Software has become too

complicated for humans to understand.

  • Maintenance = up to 90% of a

project’s cost, up to $60 billion in the US annually.

slide-3
SLIDE 3

We should treat software like a complex, evolving system.

  • Most aspects of a software system

change over its lifetime.

11/7/10 Claire Le Goues, UVA

3

  • Human modifications resemble

evolutionary mechanisms.

slide-4
SLIDE 4

This perspective challenges several current research assumptions.

11/7/10 Claire Le Goues, UVA

4

slide-5
SLIDE 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.

11/7/10 Claire Le Goues, UVA

5

slide-6
SLIDE 6
  • Without soundness, we need new program

analysis metrics and benchmarks.

  • 2. Definition of acceptability

11/7/10 Claire Le Goues, UVA

6

  • Future directions: test

suites (evolving), continued execution, heuristics.

  • Test case generation that

produces full test cases, with expected output.

slide-7
SLIDE 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.

11/7/10 Claire Le Goues, UVA

7

slide-8
SLIDE 8
  • 4. Homogeneity
  • Biological diversity is an important source
  • f robustness.
  • Protects against the spread of disease.
  • Provides alternative pathways to

maintain functionality.

  • Future directions: research techniques

that account for and leverage diversity.

11/7/10 Claire Le Goues, UVA

8

slide-9
SLIDE 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.

11/7/10 Claire Le Goues, UVA

9

slide-10
SLIDE 10

Questions!

11/7/10 Claire Le Goues, UVA

10

slide-11
SLIDE 11

Automatic error repair using genetic programming (GP)

11/7/10 Claire Le Goues, UVA

11

slide-12
SLIDE 12

11/7/10 Claire Le Goues, UVA

12

Delete or insert statements (from elsewhere in the program). More likely to change fault-localized regions.

slide-13
SLIDE 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.

11/7/10 Claire Le Goues, UVA

13