What are the benefits of static analysis?
Much higher coverage
- Able to reason about many possible runs of the program
- Able to reason about incomplete programs
What are the drawbacks of static analysis?
What impact does static analysis have on the software development process?
Able to thoroughly check limited but useful properties
- Eliminate categories of errors
- Developers can concentrate on deeper reason as common mistakes will be flagged
Encourages better development practices
- Develop programming models that avoid mistakes in the first place
- Encourages programmers to think about and manifest their assumptions, and use annotations that improve tool precision