Problem Oriented Software Engineering: Solving the Package Router Control Problem

Problem orientation is gaining interest as a way of approaching the development of software intensive systems, and yet, a significant example that explores its use is missing from the literature. In this paper, we present the basic elements of Problem Oriented Software Engineering (POSE), which aims at bringing both nonformal and formal aspects of software development together in a single framework. We provide an example of a detailed and systematic POSE development of a software problem: that of designing the controller for a package router. The problem is drawn from the literature, but the analysis presented here is new. The aim of the example is twofold: to illustrate the main aspects of POSE and how it supports software engineering design and to demonstrate how a nontrivial problem can be dealt with by the approach.

[1]  Axel van Lamsweerde,et al.  Deriving operational software specifications from system goals , 2002, SIGSOFT '02/FSE-10.

[2]  Philippe Kruchten,et al.  The Rational Unified Process: An Introduction, Second Edition , 2000 .

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

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

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

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

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

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

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

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

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

[12]  Jim Woodcock,et al.  A tactic calculus — abridged version , 1996, Formal Aspects of Computing.

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

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

[15]  Michael Jackson,et al.  Problem Oriented Software Engineering: A design-theoretic framework for software engineering , 2007, Fifth IEEE International Conference on Software Engineering and Formal Methods (SEFM 2007).

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

[17]  Oscar Pastor,et al.  Model-Driven Development , 2008, Informatik-Spektrum.

[18]  Doug Lea Design Patterns for Avionics Control Systems , 1998 .

[19]  Axel van Lamsweerde,et al.  From System Goals to Software Architecture , 2003, SFM.

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

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

[22]  Jon G. Hall,et al.  Problem Oriented Software Engineering: A design-theoretic framework for software engineering , 2007, Fifth IEEE International Conference on Software Engineering and Formal Methods (SEFM 2007).

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

[24]  Martin Fowler,et al.  Patterns of Enterprise Application Architecture , 2002 .

[25]  Daniel Jackson,et al.  Micromodels of software: lightweight modelling and analysis with Alloy , 2002 .

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

[27]  Jon G. Hall,et al.  Arguing safety with Problem Oriented Software Engineering , 2007, 10th IEEE High Assurance Systems Engineering Symposium (HASE'07).

[28]  Axel van Lamsweerde,et al.  Goal-Oriented Requirements Engineering: A Guided Tour , 2001, RE.

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

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

[31]  Craig Larman,et al.  Applying UML and patterns , 1997 .

[32]  Philippe Kruchten,et al.  The Rational Unified Process: An Introduction , 1998 .

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

[34]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[35]  Mohammad Zulkernine,et al.  Improving Reliability and Safety by Trading off Software Failure Criticalities , 2007 .

[36]  Jon G. Hall,et al.  Safety process improvement: Early analysis and justification , 2007 .

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

[38]  Mira Mezini,et al.  Separation of Concerns with Procedures, Annotations, Advice and Pointcuts , 2005, ECOOP.

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