After successful completion of the course, students are able to apply RV techniques for testing, verification, and debugging purposes and for ensuring safety and security properties during the system's execution.
The course will start with an introduction on the areas where the verification should be preferable addressed at runtime. We will then explore different specification languages to specify the properties to be monitored and the related available monitoring techniques. We will then consider various instrumentation approaches can be used to extract the information necessary for monitoring from a running system. We will discuss some techniques of software system instrumentation. Real case studies will expose students to the potential applications of these technologies. A final project will give them the possibility to make a concrete experience of the concepts taught. This is the list of the main topics of the course:
In the first month of the course we will present the basic knowledge that is required to do the assignment. In the second part of the course, we will present advance topics that will be useful to further improve their project. We will ask the students to setup a git hub repository where we will monitor the progress and the actual work of the single students in the group. The students will ask to make two presentations. One presentation where the students must to elaborate, before starting the project, a contingency plan where they can still safely achieve some goals and the risk is taken into consideration. The students must write a document explaining the solution adopted for their assignment. At end of the course, the students are asked to make a public final presentation of their results.
A project will be assigned to each student. At the end of the semester the students will defend their solution in a public presentation.