Search for contacts, projects,
courses and publications

Dynamic Program Analysis

People

Binder W.

Course director

Rosà A.

Course director

Description

Dynamic program analysis (DPA) is important for the analysis of computer programs, consisting in analyzing the properties of an application while it is executing. DPA allows researchers and analysts to observe and study numerous attributes of software systems, such as performance, component interactions, concurrent behaviour, code coverage, memory usage, or security properties. Efficient and well-designed DPAs are often key to locate and remove critical negative aspects of software, such as performance bottlenecks, bugs, or security threats. 

This course teaches concepts of DPA and profiling techniques for identifying negative runtime properties of software. These concepts are explained in the context of the Java programming language and the Java Virtual Machine (JVM).

The course is organized in five lectures, covering the following topics: 

  • Introduction to DPA and its importance for analyzing runtime attributes of applications. 
  • Concurrent programming on the JVM, fundamental to implement an efficient and thread-safe DPA.
  • JVM architecture and classfile format (including the main JVM bytecode instructions).
  • Different strategies to implement DPA on the JVM. The course will also cover how to implement general-purpose Java and native-code agents to perform DPA. 
  • Implementation of DPA with DiSL, a domain-specific language for bytecode instrumentation that allows one to implement DPA in Java using a concise syntax. 

To receive the ECTS for this course, the students must attend at least 3 lectures (out of 5) and submit a correct solution for a given DPA project. The submission of the project will be possible up to one month after the end of the course. 

The course requires only basic knowledge of the Java programming language. All other concepts needed to implement DPA in Java will be taught in the course.  

REFERENCES

  • slides, code, documentation, and publications to be made available by the course instructors.

Education