Automated Software Analysis Group

Static Program Checking

  • type: Vorlesung (V)
  • semester: SS 2014
  • place:

    50.34 Room 236

  • time:

    Thursday 11:30-13:00

  • start: 24.04.2014
  • lecturer: Prof.Dr. Mana Taghdiri
  • sws: 2
  • ects: 3
  • lv-no.: 2400055

Overview

The goal of this course is to introduce students to some modern approaches that can simplify the software development process. We will describe a number of program checking techniques, explain their pros and cons, and discuss what else needs to be done in order to make them fully applicable to real-life software systems.

In this lecture, we cover a number of recently-developed techniques for checking functionality of programs. That is, they are alternatives to software testing. We will particularly focus on lightweight techniques that work at a push-of-a-button: those that are fully automatic and expect very little input from users.

The lecture will cover the following topics:

•    Finding bugs in object-oriented programs,
•    Summarizing programs’ behaviors,
•    Detecting invariants about programs,
•    Feedback loops

 

Schedule and Slides

24.04         Introduction [slides]

01.05         Holiday

08.05         Alloy [slides] [exercise] -- bring your laptops

15.05         Alloy engine [slides]

22.05         Dynamic systems in Alloy [slides] [exercise] -- bring your laptops

29.05         Holiday

05.06         Bounded Verification by Jalloy [slides]

12.06         Bounded Verification by JForge [slides] -- bring your laptops

19.06         Holiday

26.06         Bounded Verification by Incremental analysis, ESC/Java, Houdini [slides]

03.07         Invariant Generation by Daikon [slides] [exercises] -- bring your laptops

10.07         Specification Inference [slides]

17.07         CEGAR-based specification extraction [slides]