Software engineering as the design theoretic transformation of software problems

Hall, Jon G. and Rapanotti, Lucia (2012). Software engineering as the design theoretic transformation of software problems. Innovations in Systems and Software Engineering, 8(3) pp. 175–193.



Rogers characterises engineering as: ... the practice of organising the design and construction of any artifice which transforms the physical world around us to meet some recognised need. When the artifice is software, a key challenge is learn how to recon- cile the formal world of the computing machine and its software with the non-formal physical world around it. In this paper, we describe an approach that brings both non-formal and formal aspects of software en- gineering together within a single theoretical framework, which sees soft- ware engineering practice as recordable and re-playable design theoretic transformations of software problems. The framework permits the iden- tification and clarification of software requirements, the representation of the problem world into which the software solution will be delivered, and the construction of adequacy arguments for stake-holders. Designs are recordable and re-playable through our adaptation of tactics, a (now standard) form of programming language used in transformational proof theoretic presentations. This brings to our system many other benefits of such approaches, including the ability to abstract from a captured design, and to combine programmatically captured designs. This paper provides an example-driven presentation of our framework.

Viewing alternatives


Public Attention

Altmetrics from Altmetric

Number of Citations

Citations from Dimensions
No digital document available to download for this item

Item Actions