Research and Publications
My research is concerned with the question how people
build and evolve software systems, what the problems
are with existing software systems, and whether there are better
ways of doing software development and evolution.
Usually, I try to find answer to these questions in close
collaboration with practitioners and fellow researchers.
Example topics I have published about
include software testing,
software architecture, web 2.0 (and Ajax in particular),
aspect-oriented programming, reverse
engineering, repository mining, program comprehension, and model-driven engineering.
I try to keep my list of publications
as up to date as possible.
Have a look: most of them are downloadable, and I'd appreciate any feedback!
- The fairly complete list
that I maintain myself.
- Our Delft bibliography
server containing most of my publications from 2004 onwards
- The subset of publications in key refereed journals and
conference proceedings available from
DBLP.
- The list that
scholar.google
is able to find all over the web, including citations for each paper.
Professional Activities
I am on the editorial board of
Empirical
Software Engineering, a journal published by Springer,
and steering committee member of the Working Conference on Reverse
Engineering (WCRE, chair) and the International Conference on Software
Maintenance (ICSM,
secretary).
Upcoming conferences and events I'm involved in:
-
33d International Conference on Software Engineering;
ICSE 2011
(program committee member).
-
18th ACM SIGSOFT Symposium on the Foundations
of Software Engineering;
FSE-18, 2010;
(program committee member).
-
5th International IEEE/ACM Symposium on Software Visualization;
SoftVis 2010
(program committee member).
-
26th International Conference on Software Maintenance;
ICSM 2010
(industrial co-chair; program committee member).
-
32nd International Conference on Software Engineering;
ICSE 2010
(program committee member).
-
24th European Conference on Object-Oriented Programming;
ECOOP 2010
(program committee member).
-
New Ideas and Emerging Results NIER Track at
ICSE 2010 (program committee member).
I'm also a member of:
See also my past activities.
Professional Highlights
-
2010: Five-month sabbatical at the Computer Human Interaction and Software Engineering Lab (CHISEL),
Department of Computer Science, University of Victoria, Canada.
- 2009: Winner, with Ali Mesbah, of the Distinguished Paper Award at ICSE'09 for our work on automated testing of Ajax applications.
- 2009: Best paper award at ICPC'09, with Bas Cornelissen, Andy Zaidman,
and Bart van Rompaey, for our paper describing a controlled
experiment in trace visualization.
- 2008: Elected
as one of the 12 most
entrepreneurial scientist
of Delft University of Technology,
and number 1 of the
EEMCS faculty.
- 2008: Winner of the
ICT Regie award,
for my role in the foundation of the
Software Improvement Group (SIG);
- 2007: Upon completion of the Ideals project,
ASML decides to conduct a
transfer project in order to adopt our
exception handling analysis method
(described in our
ICSE'06 research
paper)
in their software development process.
- 2006: Appointed full time full professor in Software Engineering in Delft.
- 2005: Best reviewer award at ICSM'05.
- 2005: Start of our research line in the area of
Ajax trough the
Single Page Computer Interaction (SPCI)
project in collaboration with Backbase.
- 2005: Inaugural lecture in Delft, covering the
software evolution paradox
and its implications on software development.
- 2004: Appointed part time (0.2 fte) full professor in Delft.
- 2004: Best paper awards at
ICSM'04 and
SCAM'04 for our papers on
aspect
mining using clone detection and
class testability
- 2003: Appointed part time (0.2 fte) associate professor in Delft.
- 2003: Start of new research line in aspect mining via projects
Ideals
(with ASML) and
AMR.
- 2002, 2003: Program co-chair of the Working Conference on Reverse Engineering
(WCRE'02,
WCRE'03).
- 2000: Co-founder of the Software Improvement Group
(SIG), a spinoff from the research we conducted
at CWI in the area of reverse engineering and software analysis.
Started in 2000, in 2008 the SIG employs 30 people, and offers
services in the areas of program analysis,
software risk assessments, and software project monitoring.
Since its inception, SIG has received a series of awards, including a nomination
in the Deloitte Fast 50 competition 2008.
- 1996: Start of the Resolver project with ABN Amro
and PinkRoccade, comprising
the start my work on reverse engineering and program comprehension.
In this project we worked on methods such as cluster analysis and type inferencing
for understanding (legacy) Cobol systems,
- 1996: Appointed at CWI as a researcher, permanent position
since 1998.
- 1995: Postdoc at Eindhoven University of Technology.
- 1990-1994: PhD research at CWI, on the topic of
Executable Language Definitions,
under supervision of Paul Klint.
Selected presentations
- Dependable Ajax.
36th International Conference on Current Trends
in Theory and Practice of Computer Science,
SOFSEM 2010.
Invited Speaker, Spindleruv Mlyn, Czech Republic, January 2010.
- What your IDE could do once you understand your code.
Joint keynote for the
WSE'09
and
VISSOFT 2009
conferences.
Edmonton, Canada, September 2009.
-
Getting Grip on Software Product Quality: Software Total Cost of Ownership.
NEN, Delft, May 2009.
-
Invariant-Based Automatic Testing of Ajax User Interfaces,
University of Antwerp, April 2009.
-
Automatic Testing of Ajax User Interfaces.
Google Techtalk, London, March 2009.
-
Automatic Testing of Ajax User Interfaces.
Google EMEA Faculty Summit, Zurich, February 2009.
-
Using cluster analysis to improve the design of component interfaces.
IPA
Herfstdagen, Nunspeet, November 2008.
- Developer Testing. Avanade, Eindhoven, 17 January 2008.
- Analyzing Idiom Variability in Software Systems.
Ideals Close off Symposium, Embedded Systems Institute,
18 December 2007, Eindhoven.
-
Aspect Mining and Refactoring Using Crosscutting Concern Sorts.
PROG, Vrije Universiteit Brussel, 6 July, 2007.
- Reconstructing Software Architectures.
LAC 2006, Nieuwegein, 22 November, 2006.
- The Software Evolution Paradox. Keynote at
Arriba Close-off Event,
Gent, Belgium, 28 September, 2006
- Software Architecture and the Software Evolution Paradox.
Seminar Architecture Driven Software Engineering,
2nd DYA Day,
Sogeti, June 27, 2006.
-
The Software Evolution Paradox: An Aspect Mining Perspective.
International ERCIM Workshop on Software Evolution
EVOL'06,
Lille, France, April 7, 2006 (Invited talk);
-
The Software Evolution Paradox: Do Aspects Help?
Development Presentation,
Philips
Medical Systems,
Best, The Netherlands, February 1st, 2006.
-
Isolating Crosscutting Concerns in Embedded Systems.
Workshop on
Distributed Embedded Systems,
Lorentz Center, Leiden, November 21st, 2005 (Invited presentation).
-
Link Reconstruction: A Forward Engineering Concern?
Panelist at the
ICSM 2005 Panel on
Identification of concepts, features, and concerns in source code,
Budapest, September 28th, 2005.
-
Improving Embedded Systems Quality with Aspects
Symposium on
Embedded Software Quality,
Amsterdam, August 31, 2005;
-
Isolating Crosscutting Concerns in System Software.
Philips Research Colloquium,
Eindhoven, April 27, 2005.
-
Symphony: view-driven software architecture reconstruction.
IPA
Spring
Days on Software Architecture, March 31st, 2005.
-
The Software Evolution Paradox.
Inaugural Lecture,
Delft University of Technology, Delft,
23 February 2005.
See also my selection of
past presentations.
PhD Students
I've had / am having the privilege of (co)supervising the following PhD students:
-
Adam Nasr. Run Time Testing of Service Oriented Architectures.
Started 2009, co-supervised by Gerd Gross.
-
Cor-Paul Bezemer.
Multi-Tenant Software Systems.
Started 2009. Co-supervised by Andy Zaidman.
-
Maartje de Jonge. Tool Support for Model-Driven Development
Started 2009, co-supervised by Eelco Visser.
-
Felienne Hermans, Programmer Expressiveness Through Domain-Specific
Languages. Started 2008, co-supervised by Martin Pinzger.
-
Michaela
Greiler, Design for Testability of
Service-Oriented Architectures.
Started 2008 (in progress, dblp).
Co-supervised by Gerd Gross.
-
Eric Bouwers,
Tool Support Software Risk Assessments.
Started 2008 (in progress, dblp).
Co-supervised by Joost Visser (SIG).
-
Sander van der Burg, Pull Deployment of Services.
Started 2008, in progress.
Co-supervised by Eelco Visser.
-
Danny Groenewegen,
Model-Driven Design of Security Policies.
Started 2008
(in progress, dblp).
Co-supervised by Eelco Visser.
-
Sander Vermolen,
Model-Driven Data Migration.
Started 2007
(in progress, dblp).
Co-supervised by Eelco Visser.
-
Lennart Kats,
Domain-specific extensions of programming languages.
Started 2007
(in progress, dblp).
Co-supervised by Eelco Visser.
-
Zef Hemel,
Domain-Specific Languages for Web Applications
Started 2007
(in progress, dblp).
Co-supervised by Eelco Visser.
-
Cathal Boogerd,
Supporting Reliable Software Evolution through Program Analysis,
Delft University of Technology,
January 2010 (in progress,
dblp).
-
Danny Holten,
Software Visualization: Visualizing Structure, Relations, and Visual Software
Comparison,
Eindhoven University of Technology,
24 June, 2009
(pdf,
dblp). 2nd promotor; co-supervised by 1st promotor Jack van Wijk.
-
Bas Cornelissen,
Evaluating Dynamic Analysis Techniques for Program Comprehension,
Delft University of Technology,
23 June 2009 (pdf,
dblp).
Promotor, co-supersived by co-promotor Andy Zaidman.
-
Ali Mesbah,
Analysis and Testing of Ajax-Based Single Page Web Applications,
Delft University of Technology,
19 June 2009.
Degree granted cum laude (with honors).
(pdf,
dblp).
-
Marco Lormans,
Managing Requirements Evolution using Reconstructed Traceability and Requirements Views,
Delft University of Technology,
January 2009
(pdf, dblp).
Presently consultant technical software engineering, Logica.
-
Magiel Bruntink,
Renovation of Idiomatic Crosscutting Concerns in Embedded Systems,
Delft University of Technology, March 2008
(pdf, dblp).
1st Promotor: Co-supervised by 2nd promotor Paul Klint.
Degree granted cum laude (with honors).
Presently at Software Improvement Group,
Amsterdam.
-
Marius Marin,
An Integrated System to Manage Crosscutting Concerns in Source Code,
Delft University of Technology, January 2008.
(pdf, dblp).
Presently business consultant at Accenture.
Promotor: Co-supervised by Leon Moonen.
-
Bas Graaf,
Model-Driven Evolution of Software Architectures.
Delft University of Technology,
November 2007 (pdf, dblp).
Presently at Microsoft, Copenhagen, Denmark.
-
Merijn de Jonge,
To Reuse or To Be Reused.
University of Amsterdam, March 2003.
(pdf,
dblp).
Presently senior scientist, Philips Research Laboratories.
Co-promotor: Co-supervised with promotor Paul Klint.
-
Leon Moonen,
Exploring Software Systems.
University of Amsterdam, December 2002.
(pdf,
dblp).
Presently at Simula Research Laboratory, Norway.
Co-promotor: Co-supervised with promotor
Paul Klint.
-
Tobias Kuipers,
Techniques for Understanding Legacy Software Systems.
University of Amterdam, February 2002.
(pdf,
dblp).
Presently CTO (and co-founder), Software Improvement Group, Amsterdam.
Co-promotor: Co-supervised with promotor Paul Klint.
Teaching
- I teach a course on Software Testing and Quality Engineering
(IN3205)
for
3d year Computer Science bachelor students.
The course makes use of the book
Software Testing and Analysis by Pezze and Young, Wiley, 2007.
It includes labwork making use
of Java, the JUnit 4 test framework,
the coverage tool Emma,
and the build tool ant.
- For students in our Master Computer Science, I teach a
Seminar Software Architecture
-
Each year, approximately 20 Delft computer science students complete
their MSc thesis in our Software Engineering Research Group
SERG.
If they're in the area of software evolution, I usually am
the chair of the thesis committee.
Furthermore, each year I have the pleasure of supervising some MSc students
directly myself.
If you're interested, have a look at our
Master Projects pages.