A repository of task structures can reveal important latent knowledge about the development of a software system. Although approaches have been proposed to recover artifacts withi...
Analyzing historical information can show how a software system evolved into its current state, which parts of the system are stable and which have changed more. However, historic...
Outsourcing is common for software development, and is the context for many projects using agile development processes. This paper presents two case studies concentrating on the cu...
It is well known that the extensive use of preprocessors can lead to serious maintenance problems. However, these tools are still heavily used by developers and maintainers to imp...
The formal specification of design patterns is widely recognised as being vital to their effective and correct use in software development. It can clarify the concepts underlying ...