Software engineering as the design theoretic transformation of software problems

  • Authors:
  • Jon G. Hall;Lucia Rapanotti

  • Affiliations:
  • Computing Department, The Open University, Milton Keynes, UK;Computing Department, The Open University, Milton Keynes, UK

  • Venue:
  • Innovations in Systems and Software Engineering
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

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 to learn how to reconcile 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 engineering together within a single theoretical framework, which sees software engineering practice as recordable and re-playable design theoretic transformations of software problems. The framework permits the identification 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.