As functionality is added to an ageing piece of software, its original design and structure tends to erode. The underlying forces which cause such degradation have been the subject...
Software Engineering studies run in classroom environments can and have made important contributions to empirical software engineering. Because the goal of such studies is to impr...
Rationale research in software development is a challenging area because while there is no shortage of advocates for its value, there is also no shortage of reasons for why rationa...
Software systems are designed and engineered to process data. However, software is data too. The size and variety of today's software artifacts and the multitude of stakehold...
Structural constraint solving allows finding object graphs that satisfy given constraints, thereby enabling software reliability tasks, such as systematic testing and error recove...