Problem Oriented Software Engineering: A design-theoretic framework for software engineering

A key challenge for software engineering is to learn how to reconcile the formal world of the machine and its software with the non-formal real world. In this paper, we describe Problem Oriented Software Engineering (POSE), an approach that brings both non-formal and formal aspects of software development together within a single theoretical framework for software engineering design. We show how POSE captures development as the recordable and re-playable design theoretic transformation of software problems. Their representation and transformation allows for the identification and clarification of system requirements, the understanding and structuring of the problem world, the structuring and specification of a hardware/software machine that can ensure satisfaction of the requirements in the problem world, and the construction of adequacy arguments, convincing both to developers and to customers, users and other interested stake-holders, that the system will provide what is needed. 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 for software engineering design.

[1]  William M. Farmer,et al.  IMPS: An interactive mathematical proof system , 1990, Journal of Automated Reasoning.

[2]  Michael A. Jackson,et al.  Problem Frames - Analysing and Structuring Software Development Problems , 2000 .

[3]  Friedrich L. Bauer,et al.  The Munich Project CIP , 1988, Lecture Notes in Computer Science.

[4]  Jim Woodcock,et al.  ArcAngel: a Tactic Language for Refinement , 2003, Formal Aspects of Computing.

[5]  Felix Redmill,et al.  Safety-critical Systems: Current issues, techniques and standards , 1993 .

[6]  Zhi Li,et al.  A Constructive Approach to Problem Frame Semantics , 2004 .

[7]  Jon G. Hall,et al.  Towards Normal Design for Safety-Critical Systems , 2007, FASE.

[8]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[9]  Jon G. Hall,et al.  Arguing safety with Problem Oriented Software Engineering , 2007 .

[10]  J. Brier,et al.  Problem frames for socio-technical systems: predictability and change , 2004 .

[11]  Eric S. K. Yu,et al.  Modeling organizations for information systems requirements engineering , 1993, [1993] Proceedings of the IEEE International Symposium on Requirements Engineering.

[12]  John Nicholls,et al.  Z notation , 1994 .

[13]  Karl Cox,et al.  Requirements engineering for e-business systems: integrating Jackson problem diagrams with goal modeling and BPM , 2004, 11th Asia-Pacific Software Engineering Conference.

[14]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[15]  Alan Bundy,et al.  A Survey of Automated Deduction , 1999, Artificial Intelligence Today.

[16]  S. J. Bleistein,et al.  Problem frames approach for e-business systems , 2004 .

[17]  Jon G. Hall,et al.  Assurance-driven development in Problem Oriented Engineering , 2007 .

[18]  Neil Maiden,et al.  Scenarios, Stories, Use Cases: Through the Systems Development Life-Cycle , 2004 .

[19]  Axel van Lamsweerde,et al.  Requirements engineering in the year 00: a research perspective , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[20]  Jon G. Hall,et al.  Assurance-Driven Design , 2008, 2008 The Third International Conference on Software Engineering Advances.

[21]  Karl Cox,et al.  Strategic alignment in requirements analysis for organizational IT: an integrated approach , 2005, SAC '05.

[22]  Richard S. Bird,et al.  Lectures on Constructive Functional Programming , 1989 .

[23]  Anita Krabbel,et al.  On the inevitable intertwining of analysis and design: developing systems for complex cooperations , 1997, DIS '97.

[24]  Douglas R. Smith Comprehension by Derivation , 2005, IWPC.

[25]  Daniel Jackson,et al.  Problem frame transformations: deriving specifications from requirements , 2006, IWAAPF '06.

[26]  Gilles Kahn,et al.  Proof by Pointing , 1994, TACS.

[27]  Helen M. Edwards,et al.  Problem frames: analyzing and structuring software development problems , 2002, Softw. Test. Verification Reliab..

[28]  Stephen J. Mellor,et al.  Model-driven development - Guest editor's introduction , 2003 .

[29]  Jon G. Hall,et al.  Requirements analysis in context with POE design , 2008 .

[30]  Walter Guido Vincenti,et al.  What Engineers Know and How They Know It: Analytical Studies from Aeronautical History by Walter G. Vincenti , 1992, Technology and Culture.

[31]  S. Lane Categories for the Working Mathematician , 1971 .

[32]  Ralph-Johan Back,et al.  Refinement Calculus , 1998, Graduate Texts in Computer Science.

[33]  Michael Jackson,et al.  Four dark corners of requirements engineering , 1997, TSEM.

[34]  Walter G. Vincenti,et al.  What Engineers Know and How They Know It: Analytical Studies from Aeronautical History. , 1992 .

[35]  Zhi Li,et al.  Problem Reduction: a systematic technique for deriving Specifications from Requirements , 2006 .

[36]  Andrew Martin,et al.  Improving Angel's Parallel Operator: Gumtree's Approach , 1997 .

[37]  John C. Knight,et al.  The essential synthesis of problem frames and assurance cases , 2006, IWAAPF '06.

[38]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

[39]  Andrew Martin,et al.  A Tactic Calculus , 1996 .

[40]  Bashar Nuseibeh,et al.  Architecture-driven problem decomposition , 2004, Proceedings. 12th IEEE International Requirements Engineering Conference, 2004..

[41]  Suzanne Robertson,et al.  Mastering the Requirements Process , 1999 .

[42]  Martin S. Feather,et al.  Language support for the specification and development of composite systems , 1987, TOPL.

[43]  Karl Cox,et al.  RE Approach for e-Business Advantage , 2004 .

[44]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[45]  Bashar Nuseibeh,et al.  Relating software requirements and architectures using problem frames , 2002, Proceedings IEEE Joint International Conference on Requirements Engineering.

[46]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[47]  Robert Balzer,et al.  Transformational Implementation: An Example , 1981, IEEE Transactions on Software Engineering.

[48]  Robert Balzer,et al.  On the inevitable intertwining of specification and implementation , 1982, CACM.

[49]  Bashar Nuseibeh,et al.  Weaving Together Requirements and Architectures , 2001, Computer.

[50]  Karl Cox,et al.  Modeling Business Strategy in E-Business Systems Requirements Engineering , 2004, ER.

[51]  W. T. Farris,et al.  Software requirements specifications , 1993 .

[52]  Ana Cavalcanti,et al.  Tactics of Refinement , 2000 .

[53]  Tim Kelly,et al.  The Goal Structuring Notation – A Safety Argument Notation , 2004 .

[54]  John Watkins,et al.  Testing IT: An Off-the-Shelf Software Testing Process , 2001 .

[55]  Leslie Lamport,et al.  TLA in Pictures , 1995, IEEE Trans. Software Eng..

[56]  Ralph-Johan Back,et al.  Trace Refinement of Action Systems , 1994, CONCUR.

[57]  Zhi Li,et al.  From requirements to specification: a formal perspective , 2006 .

[58]  Michael Jackson,et al.  Problem Oriented Software Engineering: Solving the Package Router Control Problem , 2008, IEEE Transactions on Software Engineering.

[59]  Michael Jackson,et al.  Problem frame semantics for software development , 2005, Software & Systems Modeling.

[60]  Jon G. Hall,et al.  Problem Frames for Sociotechnical Systems , 2009 .

[61]  David S. Wile,et al.  Program developments: formal explanations of implementations , 1983, CACM.

[62]  Mordechai Ben-Menachem,et al.  Writing effective use cases , 2001, SOEN.

[63]  S. C. Kleene,et al.  Introduction to Metamathematics , 1952 .

[64]  C. A. R. Hoare,et al.  A Calculus of Durations , 1991, Inf. Process. Lett..

[65]  Michael Beeson,et al.  Some Applications of Gentzen's Proof Theory in Automated Deduction , 1991, ELP.