A framework for software problem analysis

The paper introduces a software problem calculus based on a viewof requirements engineering proposed by Zave and Jackson, that wehope can underpin techniques and processes in requirements engi-neering and early software design. The approach is centred aroundthe notion of problem and problem transformation. It is proposi-tional in nature in that it allows for heterogeneous problem descrip-tions and correctness argumentation for the validation and verifica-tion of solutions. We present a number of fundamental rules topopulate the calculus including ‘divide-and-conquer’ problem de-composition, description reification, prior-solution reuse, the use ofarchitectures for solution structuring. In addition, and central to thefoundational nature of the calculus is the interpretation and subse-quent incorporation into our framework of others’ work as problemtransformations. This is an on-going task: examples presented inthis paper include interpretations of simple goal-oriented decompo-sitions and viewpoints. The calculus also provides rich traceabilityof the requirements of an original problem through transformationto those of its solution. We use the design of a sluice gate as asimple running example throughout the paper.

[1]  Zhi Li,et al.  Reasoning about decomposing and recomposing problem frames developments: a case study , 2004 .

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

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

[4]  Alistair Cockburn,et al.  Writing Effective Use Cases , 2000 .

[5]  Dines Bjørner,et al.  Michael Jackson's problem frames: towards methodological principles of selecting and applying formal software development techniques and tools , 1997, First IEEE International Conference on Formal Engineering Methods.

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

[7]  Martin Fowler,et al.  Analysis patterns - reusable object models , 1996, Addison-Wesley series in object-oriented software engineering.

[8]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[9]  Axel van Lamsweerde,et al.  Managing Conflicts in Goal-Driven Requirements Engineering , 1998, IEEE Trans. Software Eng..

[10]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[11]  Neil A. M. Maiden,et al.  The Domain Theory for Requirements Engineering , 1998, IEEE Trans. Software Eng..

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

[13]  Michael Jackson,et al.  A Reference Model for Requirements and Specifications , 2000, IEEE Softw..

[14]  Christine Choppy,et al.  A UML-based method for the commanded behaviour frame , 2004 .

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

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

[17]  Paolo Ciancarini,et al.  Architecting families of software systems with process algebras , 2002, TSEM.

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

[19]  Alistair G. Sutcliffe,et al.  The domain theory - patterns for knowledge and software reuse , 2002 .

[20]  Jon G. Hall,et al.  A reference model for requirements engineering , 2003, Proceedings. 11th IEEE International Requirements Engineering Conference, 2003..

[21]  Bashar Nuseibeh,et al.  Composing requirements using problem frames , 2004, Proceedings. 12th IEEE International Requirements Engineering Conference, 2004..

[22]  Eric S. K. Yu,et al.  Towards modelling and reasoning support for early-phase requirements engineering , 1997, Proceedings of ISRE '97: 3rd IEEE International Symposium on Requirements Engineering.

[23]  John Daniels,et al.  Designing Object Systems , 1994 .

[24]  Karl Cox,et al.  Open Research Online A roadmap of problem frames research , 2005 .

[25]  G. Kreisel The Collected Papers of Gerhard Gentzen , 1971 .

[26]  John Daniels,et al.  UML Components: A Simple Process for Specifying Component-Based Software , 2000 .

[27]  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.

[28]  Anthony Hall,et al.  Will It Work , 2001 .

[29]  Desmond D'Souza,et al.  Objects, Components, and Frameworks with UML: The Catalysis Approach , 1998 .

[30]  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.

[31]  Pericles Loucopoulos,et al.  System Requirements Engineering , 1995, System Requirements Engineering.

[32]  Jean-Pierre Serre,et al.  Fermat ’ s Last Theorem , 2017 .

[33]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

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

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

[36]  George Spanoudakis,et al.  Viewpoints 96: international workshop on multiple perspectives in software development (SIGSOFT 96) workshop report , 1997, SOEN.

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

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