Copy the page URI to the clipboard
Hall, Jon G.; Rapanotti, Lucia and Jackson, Michael (2006). Problem-oriented software engineering. Technical Report 2006/10; Department of Computing, The Open University.
DOI: https://doi.org/10.21954/ou.ro.0001604d
Abstract
This paper introduces a formal conceptual framework for software development, based on a problem-oriented perspective that stretches from requirements engineering through to program code. In a software problem the goal is to develop a machine-that is, a computer executing the software to be developed-that will ensure satisfaction of the requirement in the problem world. We regard development steps as transformations by which problems are moved towards software solutions. Adequacy arguments are built as problem transformations are applied: adequacy arguments both justify proposed development steps and establish traceability relationships between problems and solutions. The framework takes the form of a sequent calculus. Although itself formal, it can accommodate both formal and informal steps in development. A number of transformations are presented, and illustrated by application to small examples.