Books

Short works

Books : reviews

Michael Jackson.
Software Requirements and Specifications: a lexicon of practice, principles and prejudices.
Addison Wesley. 1995

rating : 2.5 : great stuff
review : 12 September 2002

Michael Jackson has interesting and insightful things to say about many areas of software development, and here he says them in bite-sized chunks. The book is structured into about 80 short pieces, each a few pages long, arranged alphabetically. Don't let the brevity of the pieces fool you into thinking they are trivial, or shallow. Each is full of insight and depth into some particular area of software requirements. Some are straight essays, some are cast as amusing discussions between practitioners, and all are beautifully written. Some describe what requirements analysis is and isn't, some discuss the importance of the real world, some illustrate the virtues of a particular approach (such as PROBLEM FRAMES), some explain why no one approach is best in all cases, and some demonstrate why certain well-advertised approaches just don't work (such as HIERARCHICAL STRUCTURE).

Read this to get a great overview of the problems of software requirements, then go and read something like his Problem Frames to get (even more) depth into some possible approaches.

Michael Jackson.
Problem Frames: analyzing and structuring software development problems.
Addison Wesley. 2001

(read but not reviewed)

It is tempting when approaching a software development problem to rush headlong into the trap of thinking too soon about the solution. Software development problems are about the world outside the computer – the real environment in which the system must have its effect – and demand consideration of the surrounding characteristics, relationships and context. Problem frames are a tool for classifying, analyzing and structuring such software development problems. Whereas object-oriented patterns are primarily concerned with solutions, problem frames focus on the problem itself, enabling you to understand and address it clearly and directly.

This book is a must-have for all IT professionals facing software development problems on a daily basis. If you are a systems analyst or requirements engineer it will provide an essential, practical guide from the task of identifying the problem to making the descriptions needed to resolve it.

It will help you:

• decompose complex problems into simpler subproblems and see how the subproblems fit together
• build up a repertoire of simple, clear and easily applicable problem classes which you can access and reuse, drawing on the experience associated with each class

Features:

• Numerous real-world example problems are analyzed, giving you insight into how to recognize and structure your own problems in practice
• A mixture of large and small problems is presented, showing the stripped down essence of problem classes and discussing different aspects of each problem
• Problem frames are independent of any particular development method, so they can be easily applied in your own situation
• Appendices summarizing the descriptive languages and notations; plus a glossary of terminology.