Arie Van Deursen

Predicting Class Testability Using Object-Oriented Metrics (2004)

Magiel Bruntink, Arie Van Deursen

In this paper we investigate factors of the testability of object-oriented software systems. The starting point is given by a study of the literature to obtain both an initial model of testability...

An Evaluation of Clone Detection Techniques for Identifying Crosscutting Concerns (2004)

Magiel Bruntink, Arie Van Deursen, Tom Tourwe, Remco Van Engelen

Code implementing a crosscutting concern is often spread over many different parts of an application. Identifying such code automatically greatly improves both the maintainability and the...

Experiences in Teaching Software Evolution (2004)

Arie Van Deursen, Jean-marie Favre, Rainer Koschke, Juergen Rilling

A large amount of research is devoted to software evolution and program understanding, but these topics are often neglected in software engineering curricula. The CCSE initiative from IEEE/ACM...

An Evaluation of Clone Detection Techniques for Identifying Cross-Cutting Concerns (2004)

Magiel Bruntink, Arie Van Deursen, Remco Van Engelen, Tom Tourwe

Code implementing a cross-cutting concern is often spread over many different parts of an application. Identifying such code automatically greatly improves both the maintainability and the...

Refactoring: Emerging Trends and Open Problems (2003)

Arie Van Deursen

This position paper identifies emerging trends in refactoring research, and enumerates a list of open questions, from a practical as well as a theoretical point of view. We suggest these directions...

Aspect Mining and Refactoring (2003)

Arie Van Deursen, Marius Marin, Leon Moonen

In this paper we argue for the need for research in the area of aspect mining, covering concepts, principles, methods and tools supporting the identification of aspects in objectoriented software...

Experiences in Teaching Software Evolution (2003)

Arie Van Deursen, Jean-marie Favre, Rainer Koschke, Juergen Rilling

A large amount of research is devoted to software evolution and program understanding, but these topics are often neglected in software engineering curricula. The CCSE initiative from IEEE/ACM...

Experiences in Teaching Software Evolution and Program Comprehension (2003)

Arie Van Deursen, Jean-marie Favre, Rainer Koschke, Juergen Rilling

A large amount of research is devoted to software evolution and program understanding, but these topics are often neglected in software engineering curricula. The CCSE initiative from IEEE/ACM...

Feature-Based Product Line Instantiation using Source-Level Packages (2002)

Arie Van Deursen, Merijn De Jonge, Tobias Kuipers

In this paper we discuss the construction of software products from customer-specific feature selections. We address variability management with the Feature Description Language (FDL) to capture...

Centrum voor Wiskunde en Informatica (2002)

A. Van Deursen, Arie Van Deursen

We investigate the relationship between reverse engineering and program comprehension on the one hand, and software process on the other. To understand this relationship, we select one particular...

Building Program Understanding Tools Using Visitor Combinators (2002)

Arie Van Deursen, Joost Visser

Program understanding tools manipulate program representations, such as abstract syntax trees, control-flow graphs, or data-flow graphs. This paper deals with the use of visitor combinators to...

Centrum voor Wiskunde en Informatica (2002)

A. Van Deursen, G. Kok, Arie Van Deursen, Leon Moonen, ...

Two key aspects of extreme programming (XP) are unit testing and merciless refactoring. Given the fact that the ideal test code / production code ratio approaches 1:1, it is not surprising that unit...

Building Program Understanding Tools Using Visitor Combinators (2002)

Arie Van Deursen, Joost Visser

Program understanding tools manipulate program representations, such as abstract syntax trees, control-flow graphs, or data-flow graphs. This paper deals with the use of visitor combinators to...

The Video Store Revisited - Thoughts on Refactoring and Testing (2002)

Arie Van Deursen, Leon Moonen

Testing and refactoring are core activities in extreme programming (XP). In principle, they are separate activities where the tests are used to verify that refactorings do not change behavior of the...

ASD: The Action Semantic Description Tools (2002)

Arie Van Deursen, Peter D. Mosses

covering the ASD abstract syntax notation; and (2) an ASF-SDF module called CONCRETE containing the concrete notation, as well as a function (signature and defining equations) mapping the CON- CRETE...

The Reengineering Wiki (2002)

Arie Van Deursen, Eelco Visser

The reverse and reengineering research communities have a strong tradition of collecting, organizing, and unifying research results. Typical examples include an explicit taxonomy, dedicated web...

Feature-Based Product Line Instantiation using Source-Level Packages (2002)

Arie Van Deursen, Merijn De Jonge, Tobias Kuipers

In this paper we discuss the construction of software products from customer-specific feature selections. We address variability management with the Feature Description Language (FDL) to capture...

Understanding Legacy Architectures (2001)

Arie Van Deursen

This paper looks at architecture from the perspective of legacy systems. Legacy systems generally do not have a documented architecture, which complicates dealing with many of the problems pertaining...

Software Architecture Recovery and Modelling (2001)

Arie Van Deursen

This paper covers current trends and issues in software architecture recovery. It consists of a summary of the presentations and discussions of the Software Architecture Recovery and Modelling...

Recovering Rationale (2001)

Arie Van Deursen

this paper, we have recognized the following aspects of rationale reconstruction: # Existing documentation, comments, and log messages could provide rationale pointers: System browsers aiming at...

Little Languages: (2001)

Little Maintenance, Arie Van Deursen, Paul Klint

So-called little,ordomain-specific languages (DSLs), have the potential to make software maintenance simpler: domain-experts can directly use the DSL to make required routine modifications. On the...

Customer Involvement Experiences in a Software Product Line (2001)

Arie Van Deursen

ur experience, the most problematic practice is the on site customer: this paper lists some of the challenges we encountered. Challenges We were eager to involve the customer into our development: we...

Validating Year 2000 Compliance (2001)

A. Van Deursen, P. Klint, A. Sellink, Copyright Stichting, Mathematisch Centrum, Arie Van Deursen, ...

Validating year 2000 compliance involves the assessment of the correctness and quality of a year 2000 conversion. This entails inspecting both the quality of the conversion process followed, and of...

Research Issues in the Renovation of Legacy Systems (2001)

Arie Van Deursen, Paul Klint, Chris Verhoef

. The goals of this tutorial are to: (i) give the reader a quick introduction

From Legacy to Component: Software Renovation in Three Steps (2001)

Arie Van Deursen, Ben Elsinga, Paul Klint, Ron Tolido

The major challenge for future business operations is to align changing business

Program Comprehension Risks and Opportunities in Extreme Programming (2001)

A. Van Deursen, Copyright Stichting, Mathematisch Centrum, Arie Van Deursen

We investigate the relationship between reverse engineering and program comprehension on the one hand, and software process on the other. To understand this relationship, we select one particular...

Finding Classes in Legacy Code Using Cluster Analysis (2001)

Arie Van Deursen, Tobias Kuipers

Introduction Old software systems are still in use because they implement useful business tasks. Unfortunately, they are difficult to adapt. They have been subject to maintenance repeatedly, have...

Program Plan Recognition For Year 2000 Tools (2001)

Arie Van Deursen, Steve Woods, Alex Quilici

There are many commercial tools that address various aspects of the Year 2000 problem. None of these tools, however, make any documented use of plan-based techniques for automated concept recovery....

Results of the Project: Domain Specific Languages (2001)

Arie Van Deursen, Paul Klint

This note summarizes the results of the Domain Specific Languages project of the Telematics Institute (TI). It is intended for the review after two years (early 2001). 1 Introduction A Domain...

Understanding Legacy Architectures (2000)

Arie Van Deursen

This chapter looks at architecture from the perspective of legacy systems. Legacy systems generally do not have a documented architecture, which complicates dealing with many of the problems...

From Research to Start Up: Software Engineering Technology Transfer at Work (2000)

Arie Van Deursen

This paper describes our experiences in the successful transfer of software engineering technology (in the area of reverse engineering and legacy systems) from research laboratory up to start-up...

Legacy to the Extreme (2000)

A. Van Deursen, T. Kuipers, Copyright Stichting, Mathematisch Centrum, Arie Van Deursen, ...

We explore the differences between developing a system using extreme programming techniques, and maintaining a legacy system. We investigate whether applying extreme programming techniques to legacy...

Research Issues in the Renovation of Legacy Systems (2000)

Arie Van Deursen, Paul Klint, Chris Verhoef

. The goals of this tutorial are to: (i) give the reader a quick introduction to the field of software renovation as a whole; (ii) show that many techniques from compiler technology and formal...

Program Plan Recognition For Year 2000 Tools (1999)

Arie Van Deursen, Alex Quilici, Steve Woods

There are many commercial tools that address various aspects of the Year 2000 problem. None of these tools, however, addresses the closely-related leap-year problem. In this paper, we provide...

Program Plan Recognition For Year 2000 Tools (1999)

Arie Van Deursen, Alex Quilici, Steve Woods

There are many commercial tools that address various aspects of the Year 2000 problem. None of these tools, however, addresses the closely-related leap-year problem. In this paper, we provide...

Building Documentation Generators (1999)

A. Van Deursen, T. Kuipers, Copyright Stichting, Mathematisch Centrum, Arie Van Deursen, Tobias Kuipers

In order to maintain the consistency between sources and documentation, while at the same time providing documentation at the design level, it is necessary to generate documentation from sources in...

Understanding COBOL Systems using Inferred Types (1999)

A. Van Deursen, Copyright Stichting, Mathematisch Centrum, Arie Van Deursen, Leon Moonen

In a typical COBOL program, the data division consists of 50% of the lines of code. Automatic type inference can help to understand the large collections of variable declarations contained therein,...

Understanding COBOL Systems using Inferred Types (1999)

Arie Van Deursen, Leon Moonen

In a typical COBOL program, the data division consists of 50% of the lines of code. Automatic type inference can help to understand the large collections of variable declarations contained therein,...

Understanding COBOL Systems using Inferred Types (1999)

Arie Van Deursen, Leon Moonen

In a typical COBOL program, the data division consists of 50% of the lines of code. Automatic type inference can help to understand the large collections of variable declarations contained therein,...

Understanding COBOL Systems using Inferred Types (1999)

Arie Van Deursen, Leon Moonen

In a typical COBOL program, the data division consists of 50% of the lines of code. Automatic type inference can help to understand the large collections of variable declarations contained therein,...

Identifying Objects using Cluster and Concept Analysis (1999)

Arie Van Deursen, Tobias Kuipers

Many approaches to support (semi-automatic) identification of objects in legacy code take the data structures as starting point for candidate classes. Unfortunately, legacy data structures tend to...

Research Issues in the Renovation of Legacy Systems (1999)

Arie Van Deursen, Paul Klint, Chris Verhoef

. The goals of this tutorial are to: (i) give the reader a quick introduction to the field of software renovation as a whole; (ii) show that many techniques from compiler technology and formal...

Identifying Objects using Cluster and Concept Analysis (1999)

Arie Van Deursen, Tobias Kuipers

Many approaches to support (semi-automatic) identification of objects in legacy code take the data structures as starting point for candidate classes. Unfortunately, legacy data structures tend to...

Type Inference for COBOL Systems (1998)

Arie Van Deursen, Leon Moonen

Types are a good starting point for various software reengineering tasks. Unfortunately, programs requiring reengineering most desperately are written in languages without an adequate type system...

Identifying Objects using Cluster and Concept Analysis (1998)

A. Van Deursen, T. Kuipers, Copyright Stichting, Mathematisch Centrum, Arie Van Deursen, Tobias Kuipers

Many approaches to support (semi-automatic) identification of objects in legacy code take the data structures as starting point for candidate classes. Unfortunately, legacy data structures tend to...

Type Inference for COBOL Systems (1998)

A. Van Deursen, L. Moonen, Copyright Stichting, Mathematisch Centrum, Arie Van Deursen, Leon Moonen

Types are a good starting point for various software reengineering tasks. Unfortunately, programs requiring reengineering most desperately are written in languages without an adequate type system...

Type Inference for COBOL Systems (1998)

Arie Van Deursen, Leon Moonen

Types are a good starting point for various software reengineering tasks. Unfortunately, programs requiring reengineering most desperately are written in languages without an adequate type system...

Type Inference for COBOL Systems (1998)

Arie Van Deursen, Leon Moonen

Types are a good starting point for various software reengineering tasks. Unfortunately, programs requiring reengineering most desperately are written in languages without an adequate type system...

A Comparison of Software Refinery and ASF+SDF (1998)

Arie Van Deursen

This document reflects the situation at the time of writing, which is November 1996. Both ASF+SDF and Refine may have undergone significant changes since then. The document is provided "as is", and...

The Leap Year Problem (1998)

A. Van Deursen, Copyright Stichting, Mathematisch Centrum, Arie Van Deursen

A significant number of programs incorrectly treats the year 2000 as a non-leap year. We list 21 real life code fragments illustrating the large variety of ways that are used to determine whether a...

The Leap Year Problem (1998)

Arie Van Deursen

A significant number of programs incorrectly treats the year 2000 as a non-leap year. We list 21 real life code fragments illustrating the large variety of ways that are used to determine whether a...

The Leap Year Problem (1998)

Arie Van Deursen

A significant number of programs incorrectly treats the year 2000 as a non-leap year. We list 21 real life code fragments illustrating the large variety of ways that are used to determine whether a...

Rapid System Understanding: Two COBOL Case Studies (1998)

A. Van Deursen, T. Kuipers, Copyright Stichting, Mathematisch Centrum, Arie Van Deursen, Tobias Kuipers

Rapid system understanding is required in the planning, feasibility assessment and cost estimating phases of a system renovation project. In this paper, we apply a number of analyses on two large...

Rapid System Understanding: Two COBOL Case Studies (1998)

Arie Van Deursen, Tobias Kuipers

Rapid system understanding is required in the planning, feasibility assessment and cost estimating phases of a system renovation project. In this paper, we apply a number of analyses on two large...

Rapid System Understanding: Two COBOL Case Studies (1998)

Arie Van Deursen, Tobias Kuipers

Rapid system understanding is required in the planning, feasibility assessment and cost estimating phases of a system renovation project. In this paper, we apply a number of analyses on two large...

Finding Classes in Legacy Code Using Cluster Analysis (1997)

Arie Van Deursen, Tobias Kuipers

this paper, we concentrate on the third step, for which we propose the use of cluster analysis, a general technique for finding groups in data [4]. In this paper we will show that cluster analysis...

Validating Year 2000 Compliance (1997)

A. Van Deursen, P. Klint, A. Sellink, Arie Van Deursen, Paul Klint, Alex Sellink

Validating year 2000 compliance involves the assessment of the correctness and quality of a year 2000 conversion. This entails inspecting both the quality of the conversion process followed, and of...

Program Plan Recognition For Year 2000 Tools (1997)

A. Van Deursen, S. Woods, A. Quilici, Arie Van Deursen, Steve Woods, Alex Quilici

There are many commercial tools that address various aspects of the Year 2000 problem. None of these tools, however, make any documented use of plan-based techniques for automated concept recovery....

Program Plan Recognition For Year 2000 Tools (1997)

Arie Van Deursen, Steve Woods, Alex Quilici

There are many commercial tools that address various aspects of the Year 2000 problem. None of these tools, however, make any documented use of plan-based techniques for automated concept recovery....

A Simple pi-Calculus Manipulation Tool (1997)

Arie Van Deursen

. The ß-calculus is a challenge for tool generation software, as it is subject to frequent changes. A specification of desirable functionality of tools for manipulating ß-calculus expressions is...

-Calculus Manipulation Tool (1997)

Arie Van Deursen

. The -calculus is a challenge for tool generation software, as it is subject to frequent changes. A specification of desirable functionality of tools for manipulating -calculus expressions is given,...

Little Languages: Little Maintenance? (1996)

Arie Van Deursen, Paul Klint

So-called little, or domain-specific languages (DSLs), have the potential to make software maintenance simpler: domain-experts can directly use the DSL to make required routine modifications. At the...

Axiomatizing Early and Late Input by Variable Elimination (1996)

Arie Van Deursen

Variable binding input actions in process algebra expressions can be characterized by early as well as by late bisimulation, where the distinction is concerned with whether or not variables are...

Axiomatizing Early and Late Input by Variable Elimination (1996)

Arie Van Deursen

Variable binding input actions in process algebra expressions can be characterized by early as well as by late bisimulation, where the distinction is concerned with whether or not variables are...

Axiomatizing Early and Late Input by Variable Elimination (1996)

Arie Van Deursen, Tu Eindhoven

Variable binding input actions in process algebra expressions can be characterized by early as well as by late bisimulation, where the distinction is concerned with whether or not variables are...

ASD: The Action Semantic Description Tools (1996)

Arie Van Deursen, Peter D. Mosses

covering the ASD abstract syntax notation; and (2) an Asf+Sdf module called CONCRETE containing the concrete notation, as well as a function (signature and defining equations) mapping the CONCRETE...

Axiomatizing Early and Late Input by Variable Elimination (1996)

Arie Van Deursen

Variable binding input actions in process algebra expressions can be characterized by early as well as by late bisimulation, where the distinction is concerned with whether or not variables are...

Axiomatizing Early and Late Input by Variable Elimination (1996)

Arie Van Deursen

Variable binding input actions in process algebra expressions can be characterized by early as well as by late bisimulation, where the distinction is concerned with whether or not variables are...

Origin Tracking for Higher-Order Term Rewriting Systems (1994)

A. Van Deursen, Arie Van Deursen, T. B. Dinesh

Origin Tracking is a technique which, in the framework of first-order term rewriting systems, establishes relations between each subterm t of a normal form and a set of subterms, the origins of t, in...

Centrum voor Wiskunde en Informatica (1994)

A. Van Deursen, Arie Van Deursen

Algebraic specifications of programming languages can be used to generate language-specific programming support tools. Some of these can be obtained in a straightforward way by executing language...

Specification and Generation of a Lambda-Calculus Environment (1994)

A. Van Deursen, Arie Van Deursen

An algebraic specification of the -calculus is described. The specification covers valid substitutions, ff, fi, and j conversions, left-most reductions, and let-constructs for - definitions. The...

Introducing ASF+SDF Using the $lambda$-calculus as Example (1994)

Arie Van Deursen

This document aims at providing a gentle introduction to the use of ASF+SDF . Asf+Sdf

Introducing ASF+SDF Using the (1994)

Arie Van Deursen

This document aims at providing a gentle introduction to the use of ASF+SDF . Asf+Sdf is an algebraic specification formalism that can be used to specify properties of languages or data types. Using...

Origin Tracking in Primitive Recursive Schemes (1993)

Arie Van Deursen

Algebraic specifications of programming languages can be used to generate languagespecific programming support tools. Some of these can be obtained in a straightforward way by executing language...

Origin Tracking in Primitive Recursive Schemes (1993)

Arie Van Deursen

Algebraic specifications of programming languages can be used to generate languagespecific programming support tools. Some of these can be obtained in a straightforward way by executing language...

Origin Tracking for Higher-Order Term Rewriting Systems (1993)

Arie Van Deursen

Origin Tracking is a technique which, in the framework of first-order term rewriting systems, establishes relations between each subterm t of a normal form and a set of subterms, the origins of t, in...

Origin Tracking for Higher-Order Term Rewriting Systems (1993)

Arie Van Deursen

Origin Tracking is a technique which, in the framework of first-order term rewriting systems, establishes relations between each subterm t of a normal form and a set of subterms, the origins of t, in...

Identifying Objects using Cluster and Concept Analysis (1970)

Arie Van Deursen, Tobias Kuipers

Many approaches to support (semi-automatic) identification of objects in legacy code take the data structures as starting point for candidate classes. Unfortunately, legacy data structures tend to...

Building Documentation Generators (1970)

Arie Van Deursen, Tobias Kuipers

In order to maintain the consistency between sources and documentation, while at the same time providing documentation at the design level, it is necessary to generate documentation from sources in...