Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE 503: Software Engineering Winter 2010 Lecturer: Michael Ernst.

Similar presentations


Presentation on theme: "CSE 503: Software Engineering Winter 2010 Lecturer: Michael Ernst."— Presentation transcript:

1 CSE 503: Software Engineering Winter 2010 Lecturer: Michael Ernst

2 503 Software Engineering Research Not: how to write good software – and get a good job at Amazon/Google/Microsoft Research methods and ideas in SE – (this may make you a more thoughtful developer) In alternating years: – broad overview – in-depth examination of one topic Examples: software evolution, program analysis

3 Type systems Checking Inference Non-standard type systems Example: view type system as a set of constraints to compute legal refactorings

4 Abstract interpretation A.k.a. dataflow analysis “Run” your program statically – Choose an abstract domain; e.g., { +, 0, - } – Assign semantics to operators – Start at beginning of program – Examine possible values of variables Used daily on aeronautics software

5 Model checking In simplest terms, exhaustive testing How to make this scale? – Choose abstractions that lose just the right amount of precision – Efficient encodings

6 Analysis back-ends Binary Decision Diagrams (BDDs) Reduction to SAT – 1979: “Problem X reduces to SAT, so it is hard.” – 2009: “Problem X reduces to SAT, so it is easy.” Datalog

7 Dynamic analysis Testing Type inference Model creation Counterexample-guided refinement Concolic execution

8 Applications Security Correctness Performance Rapid development System analysis Maintenance and evolution

9 Broader themes Precision vs. performance Power vs. transparency Static vs. dynamic Tuning analysis to the real problem

10 Format 50% of lectures: classic background 50% of lectures: current research Homework: – 1 in-class presentation – Group project to put the ideas into practice Makes you a better researcher, in any field

11 Who cares? Intellectually exciting and deep Spans both “hard” and “soft” areas of computing Connections to PL, security, systems, architecture, databases, … (many more!) Quals credit


Download ppt "CSE 503: Software Engineering Winter 2010 Lecturer: Michael Ernst."

Similar presentations


Ads by Google