Copy the page URI to the clipboard
Rapanotti, Lucia; Hall, Jon and Li, Zhi
(2006).
Abstract
Software problems – problems whose solution is software-intensive – come in many forms. Given that software and computers are deeply embedded in society, one general characteristic of software problems is that their
early requirements are expressed “deep into the world”, i.e., in terms that end-users and other stake-holders would recognise and understand. The developer is left with the difficult task of interpreting such requirements closer to the software solution.
In this paper, we introduce problem reduction, a systematic transformation from requirements to specifications by which a software problem with requirements deep in the world becomes a simpler software problem with the same solution. Problem reduction helps the developer because the simpler problem has requirements that are ‘closer to the machine’, i.e., closer to specification. Indeed, repeated application of problem reduction can lead directly to a software specification in certain cases. We reflect on how problem reduction captures certain requirements engineering practices, and provide a set of rules for its application.