Spreadsheets are widely used in industry, because they are flexible and easy to use. Often they are used for business-critical applications. It is however difficult for spreadsheet users to correctly assess the quality of spreadsheets, especially with respect to the understandability. Understandability of spreadsheets is important, since...

The decomposition of a software system into components is a major decision in any software architecture, having a strong influence on many of its quality aspects. A system’s analyzability, in particular, is influenced by its decomposition into components. But into how many components should a system be decomposed to achieve optimal analyzability...

In practice, many people have to work together to develop and maintain a software system. However, the programmer’s key tool, the Integrated Development Environment (IDE), is a solo-tool, serving to help individual programmers understand and modify the system. Such an IDE does not leverage the knowledge other team members may have of the design...

Preprint of paper published in: Journal of Software Maintenance and Evolution (Wiley), 2008 Program comprehension is an important concern in the context of software maintenance tasks because these activities generally require a certain degree of knowledge of the system at hand. Although the use of dynamic analysis for information gathering has...

Understanding crosscutting concerns is difficult because their underlying relations remain hidden in a class-based decomposition of a system. Based on an extensive investigation of crosscutting concerns in existing systems and literature, we identified a number of typical implementation idioms and relations that allow us to group such concerns...