Download presentation
Presentation is loading. Please wait.
Published byTobias Simmons Modified over 8 years ago
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.