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 discuss elements of problem oriented software engineering (POSE), an approach that brings both non- formal and formal aspects of software development together in a single theoretical framework for software engineering design. POSE presents development as the representation and step-wise transformation of software problems. It 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 parties, that the system will provide what is needed. Examples are used throughout the paper to illustrate how formal and non-formal descriptions are reconciled under POSE.

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

[2]  Jon G. Hall,et al.  Safety Process Improvement with POSE and Alloy , 2007, SAFECOMP.

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

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

[5]  Axel van Lamsweerde,et al.  The KAOS Project: Knowledge Acquisition in Automated Specification of Software , 1991 .

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

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

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

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

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

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

[12]  Axel van Lamsweerde,et al.  Formal refinement patterns for goal-driven requirements elaboration , 1996, SIGSOFT '96.

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

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

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

[16]  Shari Lawrence Pfleeger,et al.  Workshop on Assurance Cases: Best Practices, Possible Obstacles, and Future Opportunities , 2004, DSN.

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

[18]  Jon G. Hall,et al.  Deriving specifications from requirements through problem reduction , 2006, IEE Proc. Softw..

[19]  Jon G. Hall,et al.  Safety Process Improvement with POSE and Alloy , 2007, SAFECOMP.

[20]  John C. Knight,et al.  The essential synthesis of problem frames and assurance cases , 2008, Expert Syst. J. Knowl. Eng..

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

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

[23]  John Mylopoulos,et al.  UML for Agent-Oriented Software Development: The Tropos Proposal , 2001, UML.

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

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

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

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

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