A Unifying Framework for Structured Analysis and Design Models . By T. H. Tse . Cambridge University Press, 1991 . xi+179pp . ISBN 0-521-39196-2 . This book presents initial algebras as a unifying framework for structured analysi s and design . The material is valuable and ought to be of interest either to software engineers searching for a foundation for their work or to theoreticians looking for interestin g applications of category theory . However, for reasons that will be detailed below, the boo k cannot be recommended unreservedly to either group . The first three chapters discuss desirable features of systems development environments and survey previous systems development environments . The material in thes e chapters is sketchy, but sufficient to get a decent overview . Chapter 4 defines an initial algebra of structures and shows how to map this algebra onto algebras of Yourdon structure charts, DeMarco data flow diagrams and Jackson structure texts . Although the author claims that the chapter is self-contained, assumin g only a knowledge of elementary set theory, it would be very hard going for the novice the oretician. In addition, the presentation of the software engineering concepts is so sketchy that the novice software engineer may feel the need to look them up in a good softwar e engineering text . Chapter 5 fits the algebras from Chapter 4 into a category theory framework . The non-theoretician is likely to find this chapter rough going and will be chagrined to discover , after wading through the material, that it is not particularly needed to read the rest o f the book . Chapter 6 is the most interesting in the book . The concept of unstructuredness i s formally defined so that a connected task is unstructured if it contains an entry in th e middle of an iteration, selection or parallel connection, or it contains an exit in the middle of a selection or parallel connection, or it contains multiple exits in an iteration . Necessary and sufficient conditions are developed for unstructuredness . Although the chapter assumes the initial algebra setting from Chapter 4, it can be read with profit by the averag e computer science graduate . In Chapter 7, a prototype system development tool based on the theory developed i n the earlier chapters is introduced and illustrated . This chapter, in contrast to the carefu l formalism of three previous chapters, is very much in the typical software engineerin g textbook style : descriptions tend to be informal and at a fairly high level, there is a lo t of code, etc . At the end, one is left wondering why this chapter is here . It presents a complete change in direction, tone and style . Perhaps the author is still not sure that , after Chapter 6, he has convinced us that this stuff is really worthwhile . We're afraid tha t the only reader who might be persuaded by Chapter 7 is one so allergic to formalism tha t he would put down the book long before this point . Despite a two-page concluding chapter, the book has the feel of a work in progress . The chapters are not well tied together, and the reader does not get a good sense of closur e at the end . The ideas presented in the book are potentially valuable, but obscured by th e incomplete, disjointed presentation . Tom Jacob and Bill Kaize r University of North Texas
/lp/association-for-computing-machinery/book-review-a-unifying-framework-for-structured-analysis-and-design-HYYYt2edt5