We want to explore and analyse design decisions that influence maintainability of software. Software maintainability is important because the effort expended on changes and fixes ...
Using the application programming interfaces (API) of large software systems requires developers to understand details about the interfaces that are often not explicitly defined. ...
Measuring effort accurately and consistently across subjects in a programming experiment can be a surprisingly difficult task. In particular, measures based on self-reported data ...
Lorin Hochstein, Victor R. Basili, Marvin V. Zelko...
A fundamental part of a Computer Science degree is learning to program. Rather than starting students on a full commercial language, we favour using a dedicated "teaching lan...
A modular program analysis considers components independently and provides succinct summaries for each component, which can be used when checking the rest of the system. Consider ...
Project managers aim at keeping track of interdependencies between various artifacts of the software development lifecycle, to find out potential requirements conflicts, to better...
There is an increasing interest in techniques that support measurement and analysis of fielded software systems. One of the main goals of these techniques is to better understand ...
Murali Haran, Alan F. Karr, Alessandro Orso, Adam ...
Previous work has proven typestates to be useful for modeling protocols in object-oriented languages. We build on this work by addressing substitutability of subtypes as well as i...
Software evolution research inherently has several resourceintensive logistical constraints. Archived project artifacts, such as those found in source code repositories and bug tr...
Jennifer Bevan, E. James Whitehead Jr., Sunghun Ki...
A way of combining object-oriented and structural paradigms of software composition is demonstrated in a tool for generative programming. Metaclasses are introduced that are compon...