Outline for ASE lecture series

Moderator: Automated Software Engineering

Benutzeravatar
ericbodden
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 243
Registriert: 5. Apr 2010 19:06

Outline for ASE lecture series

Beitrag von ericbodden »

I have just put the following outline for the upcoming ASE lecture series online:

We will start off using an introductory lecture during which we will cover version control systems, in particular Subversion, which you will be required to use for submitting your course work. On October 24th, we will have a special Guest Lecture by Martin Robillard, Associate Professor at McGill University and an awardee of the prestigious von Humboldt Fellowship.

The regular lectures will start off by first covering the initial phase of the software design process: requirements engineering and elicitation. We will discuss how tools like Alloy help you define requirements and test these definitions for completeness or the absence of contradictions. Korat is a tool that lets you automatically generate complex test inputs based on an Alloy specification. EvoSuite from Saarland University goes beyond the simple generation of test inputs: it generates whole test cases, along with post-conditions (assertions) that the test case is guaranteed to fulfill.

Test-case generation can only succeed, however, if it has a means to tell apart faulty from “good” test runs. This is easy if a fault causes the program to throw an exception. In many cases, however, faults may lead to unintended behavior without exceptions. A so-called “oracle” can detect such unintended behavior by monitoring the program under test, and signal a faulty test run. Often, oracles are implemented through program instrumentation, also called a “runtime monitor”. We will discuss MOPBox, a novel open-source framework developed at TU Darmstadt that allows programmers to define such oracles quite easily. Tracematches are a way to generate oracles (or runtime monitors) automatically from declarative specifications based on regular expressions. JavaMOP is an open framework for generating such monitors from different kinds of specification languages. We will discuss how JavaMOP achieves this genericity while at the same time allowing for highly efficient monitoring code. The term Runtime Monitor is very common in the research field of software engineering. In security research, one will more often speak of so-called Inline Reference Monitors. We will discuss how those monitors differ from general runtime monitors, and how they can be used to secure software by design. Defining runtime monitors can often be cumbersome. We hence discuss Stateful Breakpoints, an integration of runtime monitoring into the Eclipse Debugger. Stateful Breakpoints allow programmers to express complex condition that, in combination, allow the debugger to run up to an error situation within a single run.

Monitoring programs can slow down their execution. This is particularly problematic when monitoring during testing, where many test runs may need to be monitored. We will hence discuss the Clara framework (developed at TU Darmstadt) as a tool to partially evaluate runtime monitors ahead of time: Clara uses static program analysis, inspecting the program’s code, to determine where a runtime monitor could signal a violation at all. Program locations at which violations are impossible do not need to be monitored/instrumented. This can speed up the testing process significantly. In the limit, Clara can even be so effective that it proves statically that the given program can never violate the property expressed by the monitor. Static analysis is hard, however, and often unsound/incorrect when the program under test uses reflection. Reflection allows Java programs to load classes and access their fields and methods by referring to them using a simple (possible runtime-generated string value). TamiFlex is a tool (developed at TU Darmstadt) that for the first time allows for an easy way to capture information about reflective calles at runtime, to then provide this information to a static analysis. Due to this information, the static analysis becomes “sounder”, it becomes sound with respect to the recorded runs. One example application of TamiFlex is the brand new tool RefaFlex (a joint development between TU Darmstadt and Fernuni Hagen), an Eclipse extension for supporting reflection-safe refactorings. Last but not least we will look at an analysis tool for even more dynamic code, i.e., code written in JavaScipt: Google Caja is an open-source tool for sanitizing JavaScript code such that it is more resilient towards code-injection attacks.
-- Eric

Benutzeravatar
oren78
BSc Spammer
BSc Spammer
Beiträge: 1373
Registriert: 17. Nov 2006 17:47
Wohnort: Darmstadt

Re: Outline for ASE lecture series

Beitrag von oren78 »

ericbodden hat geschrieben:...which you will be required to use for submitting your course work.
Hi Eric,

I have a question, due to the fact that this course worths 3 CP, why there is any "course work"?
Typically courses which include additional course work / excercises worth 6 CP - so whats going on here? ;-)
"Unter allen menschlichen Entdeckungen sollte die Entdeckung der Fehler die wichtigste sein.", Stanisław Jerzy Lec

Benutzeravatar
ericbodden
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 243
Registriert: 5. Apr 2010 19:06

Re: Outline for ASE lecture series

Beitrag von ericbodden »

oren78 hat geschrieben:I have a question, due to the fact that this course worths 3 CP, why there is any "course work"?
Typically courses which include additional course work / excercises worth 6 CP - so whats going on here? ;-)
Hello and thanks for asking.

Lectures with 6CP typically comprise four hours per week, e.g. with a dedicated block for just discussing exercises. This lecture, however, will only be two hours a week (in a single block on Monday), with discussion of the exercises integrated. To the best of my knowledge, such a format does not warrant for more than 3CP.

Moreover, completion of the course work will be voluntary: you can earn a bonus towards the final-exam grade by participating, but you are not required to do so.

I hope this clarifies things. Let me know in case I can be of further help.

Eric
-- Eric

Benutzeravatar
oren78
BSc Spammer
BSc Spammer
Beiträge: 1373
Registriert: 17. Nov 2006 17:47
Wohnort: Darmstadt

Re: Outline for ASE lecture series

Beitrag von oren78 »

ericbodden hat geschrieben:I hope this clarifies things. Let me know in case I can be of further help.
Well to my best knowledge a 3CP lecture PLUS exercises are very uncommon, even if they're optional...

I've never experienced such an option before and I have done a bunch of 3 CP lectures in the past ---> none of them include exercises !
However, has the Prüfungssekräteriat approved this option?

...don't want to bother you, but I just want to have anything formally correct ;-)
"Unter allen menschlichen Entdeckungen sollte die Entdeckung der Fehler die wichtigste sein.", Stanisław Jerzy Lec

Benutzeravatar
ericbodden
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 243
Registriert: 5. Apr 2010 19:06

Re: Outline for ASE lecture series

Beitrag von ericbodden »

Hi again.
oren78 hat geschrieben:However, has the Prüfungssekräteriat approved this option?
Yes, they have approved it. In fact, I have given almost the same lecture 3 semesters ago.

Eric
-- Eric

Benutzeravatar
oren78
BSc Spammer
BSc Spammer
Beiträge: 1373
Registriert: 17. Nov 2006 17:47
Wohnort: Darmstadt

Re: Outline for ASE lecture series

Beitrag von oren78 »

ericbodden hat geschrieben:Yes, they have approved it. In fact, I have given almost the same lecture 3 semesters ago.

Eric
OK...thanks for the feedback ;-)
"Unter allen menschlichen Entdeckungen sollte die Entdeckung der Fehler die wichtigste sein.", Stanisław Jerzy Lec

Toobee
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 225
Registriert: 7. Apr 2011 12:58

Re: Outline for ASE lecture series

Beitrag von Toobee »

Is the lecture focusing on the general concepts/idea and what is needed for ASE (or improving it) that offers practical exercises with tools that implement the concepts? Or is the focus more on the tools and how to use them to archive certain simplifications/improvement, thus focusing more on the actual daily SE-work? Your outline reads a bit like a TU-tools promotion seminar 8)

Benutzeravatar
ericbodden
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 243
Registriert: 5. Apr 2010 19:06

Re: Outline for ASE lecture series

Beitrag von ericbodden »

Hello Toobee.

The lecture itself is more focused on the former, i.e., we wish to convey the general concepts and ideas behind those tools:
* What goal are the tools trying to achieve?
* How do they fit into the software-development process?
* How do they achieve their goal?
* To what extent do they work on real programs and why?

The (optional) exercises, however, focus more on the actual usage: We have carefully chosen a set of tools that actually work quite painless in practice. During the exercises you will be able to assess for yourself how well they work and how they solve (or don't solve) certain scenarios. The goal is to reinforce the general concepts learned in class with concrete applications. For some exercises I will also ask you to extend the tool (usually by writing Java code) with additional functionality, but only if the tool is meant to be extended, i.e., provides dedicated APIs for that purpose.

Does that answer your question?
-- Eric

Toobee
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 225
Registriert: 7. Apr 2011 12:58

Re: Outline for ASE lecture series

Beitrag von Toobee »

Yap it does, thanks :)

Antworten

Zurück zu „Automated Software Engineering“