Problem Frames: Analysing & Structuring Software Development Problems (ACM Press) (英語) ペーパーバック – 2000/11/17
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
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; and 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; and appendices summarizing the descriptive languages and notations; plus a glossary of terminology.
Michael Jackson has worked in software for over thirty years, during which time he has been involved in all aspects of program and system development. In 1971 he started his own company offering courses, project support and tools for software developers. He now works as an independent consultant in London, and works part time in software development at AT&T Research in New Jersey. He played the leading role in developing the JSP and JSD methods of program and system develpment.
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.
Determining the frame/appl. type etc. before rushing into a particular diagram type or SDLC/process (which IMO are tools, not rules) has helped me many times since the first ed. of this book.