IPA Herfstdagen

Hotel Dennenhoeve, Nunspeet,
November 24-28, 2008

For the period 2007-2012, IPA has chosen five focus areas where it expects important developments in the field in the near future. Each year the Herfstdagen will be dedicated to one of these areas. This year's Herfstdagen are dedicated to Software Analysis.

Software Analysis

Quality software can be characterized in many ways. Of course, software should first and foremost satisfy its functional requirements, but there are many non-functional quality aspects as well. For instance, availability, modifiability, performance, security, testability and usability are also important qualities of software. For each of these it is desirable to have analysis and measurement instruments to determine to what extent a software system satisfies them. Analysis starts with extracting relevant facts from the source code. This is a detailed step that is largely dependent on the programming languages that have been used during the construction of the source code and of the forms of analysis that are required. It is not uncommon that several languages have been used and in those cases cross-language fact extraction and analysis are necessary. Language-parametric techniques for fact extraction are highly desirable but mostly still lacking.

After fact extraction, direct analysis of these facts can be done for certain applications such as call graph analysis, dead code removal, analysis of information flows and the like. For other applications a more abstract model has to be constructed that describes certain domain-specific properties of the system that is implemented by the source code. In this area fall, for instance, protocol analysis, dead lock analysis and determining certain security properties. It is crucial to guarantee that the abstract model faithfully represents relevant properties of the original source code. Achieving scalability and usability of the involved validation techniques is a major challenge.

A final aspect to consider is the way in which the results of software analysis are presented. It is important to develop new methods for information visualization that will increase the usability of software analysis.

Software analysis is essential for getting insight in the quality aspects of software. This is true for old software that has evolved over the years, but also for new software that has to be accepted from a third party. Software analysis will therefore become more and more important as the outsourcing of software becomes more popular as well. It is also of particular importance in the area of open source software, where there is typically not a single producer that can be held responsible, but (by the very nature of the development process) the source code itself is available, providing extensive opportunities for analysis. Software analysis may reveal certain defects in software that have to be repaired. It is therefore also a prerequisite for refactoring, transformation, renovation and other forms of software improvement. The seamless integration of software analysis with software transformation is a rich area for research.

We feel that this making progress in this area is both urgent and timely for several reasons: It is urgent because the ever increasing dependence of our society on software systems and the high-profile failures of some of those systems makes it mandatory to invest in techniques that can measure various quality attributes of software in order to prevent such failures. It is timely because progress in source-code analysis techniques enables the extraction of facts for more advanced analysis and validation than is currently done, and because improvements of validation techniques by way of algorithmic enhancements or concurrent execution enable the analysis of increasingly large problems.


This year's Herfstdagen aim to bring researchers from in and around IPA together, for an overview of current research in Software Analysis.The program for the event was composed by Arie van Deursen (TUD) and Paul Klint (UvA, CWI).

Monday November 24

11.00-12.30 Arrival

12.30-14.00 Lunch

Software analysis

14.00-15.30 Paul Klint (CWI/UvA): A relational calculus approach to software analysis Abstract Slides Paper 1 Paper 2

15.30-16.00 Coffee Break

Repository Analysis

16.00-16.45 Andy Zaidman (TUD): Mining version control systems to study the co-evolution of production and test code Abstract Slides Paper

16.45-17.30 Cathal Boogerd (TUD): Relating coding standard violations and observed faults Abstract Slides

17.30-18.15 Lucian Voinea (SolidSource): Visualizing the evolution of code Abstract Slides

18.15-19.00 Drinks

19.00-20.30 Dinner

Tuesday November 25

Invited lecture

09.30-10.30 Ralf Lämmel (Universität Koblenz-Landau): Approaching the API migration challenge Abstract Slides

10.30-11.00 Coffee Break


11.00-11.45 Anthony Cleve (FUNDP, Namur): Co-evolution of databases and programs Abstract Slides

11.45-13.30 Lunch

Analysis for refactoring

13.30-14.15 Arie van Deursen (TUD): Using cluster analysis to improve the design of component interfaces Abstract

14.15-15.00 Magiel Bruntink (SIG): Renovation of idiomatic crosscutting concerns in embedded software Abstract Slides

15.00-15.30 Coffee Break

Visual analysis

15.30-16.15 Danny Holten (TU/e): Software visualization using hierarchical edge bundles and massive sequence views Abstract

16.15-17.00 Alexander Serebrenik (TU/e): Assessing software maintainability with visual analytics: SQuAVisiT experience Abstract Slides

17.00-17.45 Kees Huizing (TU/e): Object Oriented program execution visualization Abstract Slides

18.30-20.00 Dinner

Wednesday November 26

Model extraction

09.00-09.45 Mark van den Brand (TU/e): Extraction of state machines from legacy C code with Cpp2XMI Abstract

09.45-10.30 Sander Vermolen (TUD): Reverse engineering by partial evaluation Abstract Slides

10.30-11.00 Coffee Break

Dynamic analysis

11.00-11.45 Bas Cornelissen (TUD): Program comprehension through dynamic analysis -- Visualization, evaluation, and a survey Abstract Slides

11.45-12.30 Ali Mesbah (TUD): Dynamic analysis and testing of Ajax user interfaces Abstract Slides

12.30-14.00 Lunch

Invited lecture

14.00-15.00 Rainer Koschke (Universität Bremen): Software clone research -- A state-of-the-art survey Abstract

15.00-15.30 Coffee Break

Fault diagnosis

15.30-17.00 Peter Zoeteweij (TUD): Software fault diagnosis Abstract Slides Paper 1 Paper 2

18.00-19.30 Dinner

Thursday November 27


09.00-09.45 Wojciech Mostowski (RU): Translation of MIDlet Navigation Graphs into JML Abstract Slides

09.45-10.30 Arnar Birgisson (ICE-TCS, Reykjavik University): Enforcing authorization policies using Transactional Memory Inspection Abstract Slides

10.30-11.00 Coffee Break

Refactoring with formal methods

11.00-11.45: Marko van Eekelen & Sjaak Smetsers (RU): Formal methods in practice Abstract Slides Paper

Static analysis via code query technologies

11.45-12.30 Tiago Alves (SIG): Static estimation of test coverage Abstract Slides

12.30-14.00 Lunch

Language parametric analysis and transformation

14.00-15.30 Jurgen Vinju (CWI): The Meta-Environment Abstract Slides

15.30-16.00 Coffee Break

Open session

16.00-18.00 Open session (organized by the IPA PhD-council)


18.30-20.00 Dinner

20.30- .... Social event

Friday November 28

Type-related analysis

09.00-09.45 Jurriaan Hage (UU): Annotated type systems -- Part I Introduction Abstract Slides

09.45-10.30 Stefan Holdermans (UU): Annotated type systems -- Part II Advanced topics Abstract Slides

10.30-11.00 Coffee Break

11.00-11.45 Olha Shkaravska (RU): The Amortized Heap Space Analysis project-- aim, achievements and future Abstract Slides

11.45-12.30 Christian Haack (RU): Type-based immutability for Java-like languages Abstract Slides

12.30-14.00 Lunch and departure


(Costs are based on single room)

IPA Ph.D. students free (shared room only!)
Speakers free
IPA members5 days euro 499,-
1 day euro 100,-
Associated members5 days euro 600,-
1 day euro 120,-
Other participants5 days euro 900,-
1 day euro 160,-

Please note that Ph.D. students who are not in IPA will be charged as associated members if they belong to a research school that is associated with IPA (such as ASCI, SIKS, OZSL, and DISC) and as an other participant otherwise.

To make maximal use of the available capacity, we process applications on the following basis: Registrations are treated "first come, first serve". All Ph.D. students (IPA and non-IPA) have to share a room. Others may also be asked to share if we run out of rooms. Registration closes on Friday November 14!

Please remit the amount due, to our bank account with the ABN/AMRO. Account number:, in the name of V.A.J. Borghuis, Den Dolech 2, 5600 AM Eindhoven. Please mention participation "IPA Herfstdagen 2008".


Registration for the event is closed.

How to get to Hotel Dennenhoeve

The hotel can be reached easily by car and by public transport (train). It is located at:

See the website of Dennenhoeve, for map, picture, and directions in Dutch. Below we provide an English translation of these directions.

By car

From Amsterdam

Travel in the direction of Amersfoort. Follow the A28 Amersfoort-Zwolle, take exit 14 Elspeet-Nunspeet, turn left in the direction of Nunspeet. The hotel is 400 meters down the road on the left hand side.

From Arnhem / Apeldoorn

Follow the A50 in the direction of Zwolle. Take exit Epe, continue in the direction ofNunspeet. At the intersection with the A28 (Zwolle/Amersfoort) follow the highway in the direction Harderwijk/Amersfoort. Take exit 14 ( first exit) Elspeet/Nunspeet, turn right in the direction of Nunspeet. The hotel is 400 meters down the road on the left hand side.

From Utrecht

Follow the A28 in the direction of Amersfoort. Continue on the A28 in the direction of Zwolle. Take exit 14 Elspeet-Nunspeet, turn left in the direction of Nunspeet. The hotel is 400 meters down the road on the left hand side.

From Zwolle

Follow the A28 in the direction of Amersfoort. Take exit 14 ( first exit) Elspeet/Nunspeet, turn right in the direction of Nunspeet. The hotel is 400 meters down the road on the left hand side.

Public transport

By train

Take a train to the Nunspeet railway station. When exiting the station take the road crossing the tracks in the direction of Elspeet (Stationslaan; Elspeterweg). The hotel is 200m down the road on the right hand side (about 5 minutes walking).