The Problem Frames Approach to Software Engineering

  • Authors:
  • Michael Jackson

  • Affiliations:
  • -

  • Venue:
  • APSEC '07 Proceedings of the 14th Asia-Pacific Software Engineering Conference
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Software-intensive systems are those in which the computer executing the software is only one of the parts of the system. Problem frames offer a conceptual structure for the development of such systems: that is, a coherent way of analysing the problem to be solved, identifying the concerns and difficulties that it poses, and working towards a solution. This tutorial will present the basic ideas of problem frames, illustrating them in the context of a small software-intensive system. The basic ideas of the approach are: 1. to attend both to the hardware/software machine, which is to be developed, and to the other system parts, which constitute the problem world; 2. to distinguish the given properties of the problem world from the requirements, which are the properties that the machine must establish and maintain in the world; 3. to pay careful attention to the phenomena of the problem world; 4. to structure the development problem as a set of subproblems, and to consider each subproblem in isolation before considering the composition of the subproblems and their solutions; 5. so far as possible, to recognise each subproblem as a member of a recognised class for which a solution method is known and whose most important concerns have been identified. Problem frames are not a notation or a calculus or a formalism; nor are they a development method or a process. They can fit with, into, or around specific techniques (such as agile or RUP) and specific notations (such as UML, Petri Nets, or DFDs). Problem frames do not promise a prescription for every problem; nor do they promise a complete prescription for any problem. They remind you of things you know already, but may not always pay enough attention to.