Problem Frames: Analyzing and Structuring Software Development Problems

Author: Michael Jackson
List Price: $52.99
Our Price: Click to see the latest and low price
ISBN: 020159627X
Publisher: Addison-Wesley Pub Co (15 December, 2000)
Edition: Paperback
Sales Rank: 126,315
Average Customer Rating: 5 out of 5

Buy now directly from Amazon.com - Purchase this book, safely and securely from the largest book dealer on the Internet, Amazon.com

Customer Reviews

Rating: 5 out of 5
Finally a book that can stand with Design Patterns by GoF!!
This is a seminal book on software requirements analysis. Its 300 odd pages makes it very handy and "carryable". I have just finished reading the book and started implementing Michael Jackson's ideas into a software project. The benefits have just started showing up.

Oddly, enough I did not find too many other resources on the same topic in the web.


Rating: 5 out of 5
A solid approach to identifying and analyzing problems
Short and sweet: this book is about structuring and analyzing problems, not about solutions. In fact, from the beginning the author discusses the difficulty of focusing on problems and the tendency to jump to a solution before the problem is completely understood.

The structured approach that Mr. Jackson provides starts with bounding the problem and drilling down into subproblems, called problem frames. I like his approach to bounding problems because it shows how to identify and isolate the problem and place it into its proper context. This forces you to focus on the problem and not drift off into a premature solution. I also like how he breaks down problems into manageable chunks by placing subproblems into domains through the use of projections (where subproblem domains overlap) and partitions (where associated phenomena are isolated). This allows you to see the whole problem in its magnificent splendor, which is the first step towards tackling each of its parts.

As Mr. Jackson's approach evolves you will find patterns emerging. If you are a proponent of design patterns you will appreciate how he breaks problems into classes and five basic frames. This is a powerful concept because as you gain experience using problem frames you will be able to quickly classify problems and approach them in a consistent, repeatable manner. This part of the book greatly influenced my way of thinking about problems, and the material is reinforced by examples given in subsequent chapters, as well as chapters devoted to variant and composite frames.

This book is ostensibly about problem frames and methods as they relate to software development. However, the approach given in the book has much wider applications. I was able to relate it to physical devices, processes and procedures. Moreover, Mr. Jackson's approach itself can be decomposed into a collection of useful tools and techniques that, taken individually, will prove invaluable in requirements analysis, design and related endeavors. I am giving it 5 stars only because I cannot give it more.


Rating: 5 out of 5
A highly useful book for architects and analysts
This is an excellent book. Michael Jackson resolves a number of major problems by drawing a distinction between the description of the problem domain and the description of the solution domain. This is needed because current object-oriented techniques (based on UML, for example) tend to be solution-oriented in the early stages of the software development lifecycle. This mindset can lead to maintainability problems later. Another 'gem' is that Jackson develops a scheme for decomposing a problem into simpler subproblems. This 'divide and conquer' approach has been known to mathematicians for hundreds of years. Structured analysis methods use similar techniques but they have seemingly been forgotten (or never learned?) by the OO community where the objects are there 'just for the picking' (to quote Bertrand Meyer). This reviewer now realises that life is not so simple. I have benefited from Jackson's problem frames and have applied them as a 'front-end' to UML in order to structure medium and large systems. In particular, viewing a specific application (such as a home heating system, ATM ...) as an instance of a more general category is very useful as it allows us to gain insights into the current problem. I have specialised the frames to discover domain categories for process control, manufacture, MIS, access control and tracking. This book could trigger a number of developments. For example, discovering and documenting structural and behavioural patterns in this phase of the software development lifecycle could would be a good idea. In particular, looking at requirements as goals instead of jumping directly into the over-hyped use cases seems like a good idea as well. To this end, it might be worth looking at a number of methods that are mentioned in the book, for example KAOS.


Return To Main Computer Book IndexSearch Our Entire Computer Book Catalog