2
Books Collection of reuse papers Software reusability. Volume I: concepts and models. Volume II." applications and experience T J Bickerstaff and A J Perlis (eds) ACM Press/Addison-Wesley (1989) 425 pp each vol £32.85 each vol hardback These two volumes bring together several key papers on software reusabi- lity that have been written during the 1980s. Many of these papers have already appeared in a lesser known volume, ITT Proceedings of the Work- shop on Reusability in Programming (1983), in the IEEE Software Reusability Tutorial edited by Freeman (1986), and other IEEE publications such as IEEE Transactions on Software Engineering and IEEE Software. In Volume I, there are only a few papers that are not easily accessible elsewhere. Volume II contains slightly more in the way of new material, i.e., that not already published elsewhere. In bringing together so much existing material, the two editors make some efforts to concentrate on the very large- scale reuse (VLSR) problem. Although they contrast this with the narrow code- oriented viewpoint, they do not go far enough in characterizing the need for abstraction as the key issue in making VLSR possible. I would have liked to see a better job done in critically assessing the various work, both research and practical applications described here, by forms good introduction the editors. Knowing the much wider literature in this developing area, I remain rather curious, having read through these volumes, as to why this particular set of papers was chosen. A notable omission from both volumes is material describing European research and practice of software reuse; of course, one could argue that this simply means there is an opportunity for a companion set of volumes covering European deve- lopments. The principal merit of these volumes is the division of the papers in the two broad classes of theory and practice; and the editors are to be congratulated for putting theory before practice, although an astute reader will notice that the dates at which the original papers were written do not necessarily reflect this ordering. It is clear from these volumes that both the theory and practice of reuse of software still has some way to go. Nevertheless, these two volumes form a good introduc- tion for any software engineer wishing to become acquainted with the research and practical applications in this field. There is enough new material to justify adding these volumes to an organisation's library; I do not think that experienced researchers in this area will find these volumes a good investment. C BOLDYREFF Brunel University, Uxbridge, UK Bridge between basic AI and general conferences Perspectives in artificial intelligence ( Vols l&2) J A Campbell and J Cuena (eds) Ellis-Horwood (1989) 368 (160 + 208) pp hardback This interesting collection of papers is from the Conference on Artificial Intelli- gence held as part of the Second World Basque Congress in 1987. As the editors state in their introduction, these volumes are intended to provide a bridge between the levels of basic AI texts and the pro- ceedings of general conferences like IJCAI and AAAI. Thus they contain a mix of survey papers and slightly more detailed accounts of particular projects. Papers are grouped under the board topics of fundamentals, decision sup- port, design, expert system applications, machine translation, natural-language parsing, databases, and computer-aided instruction. I think that the overview papers will be of most interest to the general reader, for example, Slocum's discussion of the practical problems in machine translation. Gray's account of the use of Prolog to integrate databases and expert systems, and Iudica's presen- tation of basic techniques for using expert systems in design. G MICHAELSON Heriot-Watt University, Edinburgh, UK Two contrasting views on CASE give very different results Computer-aided software design M Sehindler John Wiley (1990) 475 pp £24.00 Computer-aided software engineering." the methodologies, the products, and the future C Gane Prentice Hall (1990) 220 pp £23.95 soft- back I'm always on the lookout for good introductory software engineering texts to recommend to students and clients. I tend to rule out texts that haven't even caught up with computer-aided software engineering (CASE) as a fact of life in modern systems analysis. So I turned with some hope to two recent offerings whose titles at least implied the authors knew what a CASE tool was. The most obvious difference between these two texts follows from the differ- ences in their intended audience. Schindler is quite clear: he writes for ~professionals of every calling', not necessarily professionals knowledgeable in computing. He tends to draw his ana- logies and examples from electronics. (Much of the material in this book orig- inally appeared in the excellent American monthly Electronic Design.) Implicit in his coverage of CASE is that his reader might be rather more interested in real- time and control applications than com- mercial or management information systems (MISs). Gane is less explicit about who he thinks his audience is. Implicit in his coverage is that his reader is only inter- ested in MISs or data-processing appli- cations. Events and states never get a mention: only data modelling and data- flow modelling are considered in any depth. But it's entirely unclear who he believes would be reading his book. He assumes that his reader might have no familiarity with dataflow diagrams or data models, but unlike Schindler he doesn't try to explain why one would want to use such models. He goes over none of what trainers in software engi- neering like to think of as the 'evangelical stuff'. Nothing about maintenance and its costs, nothing about the economic penalties of skimping on requirements models. It's entirely unobvious to me who would eagerly buy guidance about CASE, yet who would want to know and not already know what a dataflow diagram was. A second major difference between these books is the range of subject matter they attempt to cover. Schindler attempts nothing less than a survey of the entire range of lower- and upper- CASE tools, as well as the methods, phi- losophies, and concepts behind them. He discusses everything from programming languages through software project man- agement, complexity measures, require- ments capture, program description lan- guages, dataflow diagrams, state models, predicate calculus, dynamic and static testing, reverse engineering, software reuse, and CASE standards like 246 information and software technology

Computer-aided software design: M Schindler John Wiley (1990) 475 pp £24.00 Computer-aided software engineering: the methodologies, the products, and the future

Embed Size (px)

Citation preview

Page 1: Computer-aided software design: M Schindler John Wiley (1990) 475 pp £24.00 Computer-aided software engineering: the methodologies, the products, and the future

Books Collection of reuse papers Software reusability. Volume I: concepts and models. Volume II." applications and experience T J Bickerstaff and A J Perlis (eds) ACM Press/Addison-Wesley (1989) 425 pp each vol £32.85 each vol hardback

These two volumes bring together several key papers on software reusabi- lity that have been written during the 1980s. Many of these papers have already appeared in a lesser known volume, ITT Proceedings of the Work- shop on Reusability in Programming (1983), in the IEEE Software Reusability Tutorial edited by Freeman (1986), and other IEEE publications such as IEEE Transactions on Software Engineering and IEEE Software. In Volume I, there are only a few papers that are not easily accessible elsewhere. Volume II contains slightly more in the way of new material, i.e., that not already published elsewhere.

In bringing together so much existing material, the two editors make some efforts to concentrate on the very large- scale reuse (VLSR) problem. Although they contrast this with the narrow code- oriented viewpoint, they do not go far enough in characterizing the need for abstraction as the key issue in making VLSR possible. I would have liked to see a better job done in critically assessing the various work, both research and practical applications described here, by

forms good introduction the editors. Knowing the much wider literature in this developing area, I remain rather curious, having read through these volumes, as to why this particular set of papers was chosen. A notable omission from both volumes is material describing European research and practice of software reuse; of course, one could argue that this simply means there is an opportunity for a companion set of volumes covering European deve- lopments.

The principal merit of these volumes is the division of the papers in the two broad classes of theory and practice; and the editors are to be congratulated for putting theory before practice, although an astute reader will notice that the dates at which the original papers were written do not necessarily reflect this ordering. It is clear from these volumes that both the theory and practice of reuse of software still has some way to go. Nevertheless, these two volumes form a good introduc- tion for any software engineer wishing to become acquainted with the research and practical applications in this field. There is enough new material to justify adding these volumes to an organisation's library; I do not think that experienced researchers in this area will find these volumes a good investment.

C BOLDYREFF Brunel University, Uxbridge, UK

Bridge between basic AI and general conferences Perspectives in artificial intelligence ( Vols l & 2 ) J A Campbell and J Cuena (eds) Ellis-Horwood (1989) 368 (160 + 208) pp hardback

This interesting collection of papers is from the Conference on Artificial Intelli- gence held as part of the Second World Basque Congress in 1987. As the editors state in their introduction, these volumes are intended to provide a bridge between the levels of basic AI texts and the pro- ceedings of general conferences like IJCAI and AAAI. Thus they contain a mix of survey papers and slightly more detailed accounts of particular projects.

Papers are grouped under the board topics of fundamentals, decision sup- port, design, expert system applications, machine translation, natural-language parsing, databases, and computer-aided instruction. I think that the overview papers will be of most interest to the general reader, for example, Slocum's discussion of the practical problems in machine translation. Gray's account of the use of Prolog to integrate databases and expert systems, and Iudica's presen- tation of basic techniques for using expert systems in design.

G MICHAELSON Heriot-Watt University,

Edinburgh, UK

Two contrasting views on CASE give very different results Computer-aided software design M Sehindler John Wiley (1990) 475 pp £24.00 Computer-aided software engineering." the methodologies, the products, and the future C Gane Prentice Hall (1990) 220 pp £23.95 soft- back

I'm always on the lookout for good introductory software engineering texts to recommend to students and clients. I tend to rule out texts that haven't even caught up with computer-aided software engineering (CASE) as a fact of life in modern systems analysis. So I turned with some hope to two recent offerings whose titles at least implied the authors knew what a CASE tool was.

The most obvious difference between these two texts follows from the differ- ences in their intended audience. Schindler is quite clear: he writes for ~professionals of every calling', not

necessarily professionals knowledgeable in computing. He tends to draw his ana- logies and examples from electronics. (Much of the material in this book orig- inally appeared in the excellent American monthly Electronic Design.) Implicit in his coverage of CASE is that his reader might be rather more interested in real- time and control applications than com- mercial or management information systems (MISs).

Gane is less explicit about who he thinks his audience is. Implicit in his coverage is that his reader is only inter- ested in MISs or data-processing appli- cations. Events and states never get a mention: only data modelling and data- flow modelling are considered in any depth. But it's entirely unclear who he believes would be reading his book. He assumes that his reader might have no familiarity with dataflow diagrams or data models, but unlike Schindler he doesn't try to explain why one would want to use such models. He goes over

none of what trainers in software engi- neering like to think of as the 'evangelical stuff'. Nothing about maintenance and its costs, nothing about the economic penalties of skimping on requirements models. It's entirely unobvious to me who would eagerly buy guidance about CASE, yet who would want to know and not already know what a dataflow diagram was.

A second major difference between these books is the range of subject matter they attempt to cover. Schindler attempts nothing less than a survey of the entire range of lower- and upper- CASE tools, as well as the methods, phi- losophies, and concepts behind them. He discusses everything from programming languages through software project man- agement, complexity measures, require- ments capture, program description lan- guages, dataflow diagrams, state models, predicate calculus, dynamic and static testing, reverse engineering, software reuse, and CASE standards like

246 information and software technology

Page 2: Computer-aided software design: M Schindler John Wiley (1990) 475 pp £24.00 Computer-aided software engineering: the methodologies, the products, and the future

PCTE + .... The range of concepts--and the tools that depend on those con- cepts--covered is extraordinary, especi- ally given the assumption of an audience unfamiliar with the basic concepts of computing.

Gane, on the other hand, defines a CASE product as 'a special sub-class of development/maintenance aids' whose "distinguishing characteristic is that it builds within itself a design database, at a higher level than code statements or physical data element definitions.' He therefore is interested in 'front-end', upper-CASE tools and in reverse engi- neering tools. He regards his work as a 'report' on a collection of such tools. He devotes 40 pages to a detailed discussion of Excelerator, and 40-odd more to two- page summaries of 24 other upper-CASE products, e.g., IEW, IEF, Teamwork, and Promod. He precedes his discussion of individual CASE tools with a brief but clear outline of the major notations used bv them, primarily dataflow diagrams, entity-relationship diagrams, and vari- ous procedure-oriented process-defini- tion notations.

What I found most interesting is what ncither author covers, or covers well. The most glaring omissions from both books arc discussions of the various "sepa- rations of concerns' that methods gurus have proposed as routes to the produc- tion of simpler models: specification vcrsus design; modelling of the world vcrsus modelling the current problem;

and separation of event-response behav- iour from data-transforming behaviour. Neither Schindler nor Gane clearly focus on these issues. Another important set of omissions is the many model-building heuristics that have been proposed for producing complete and consistent models: outside-in; event-response lists; and searching for real-world classes and associated information, attributes, events, and operations. Gane apparently just isn't interested in how models get built. Perhaps he thinks that upper- CASE tools can be chosen without thinking about such issues. Schindler actually explicitly rejects any paradigms but the good old-fashioned top-down stuff. But at least he's aware there are some alternatives.

At a more superficial level, both auth- ors leave out CASE tools one might have expected to find. Neither author covers Jackson- or Warnier/Orr-based tools or methods. In discussing lower-CASE tools Schindler covers languages and compilers well, but operating systems, linkers, loaders, editors, and the rest of the paraphernalia that make high-level languages possible barely get a mention. He also, rather inexplicably given his breadth of coverage, manages to miss entirely the ideas and notations asso- ciated with data modelling.

Despite these faults, Schindler's book is a great read. He's a snappy writer, and has a terrible line in puns (example: 'Beware the IDE en marche'). He suc-

B00 5 ceeds in communicating often complex subjects in computer science to a nonspe- cialist audience admirably. Unfortuna- tely, the discussion of many topics and the examples that illustrate them is much too brief either to communicate the essence of the subject or to teach the concepts involved. Despite that, it's a book I'd recommend to anyone who had to start developing their own software- based systems, with perhaps the proviso that they should treat it as an introduc- tory text, using Schindler's well chosen references to further reading once they find a topic or tool that promises to be useful. It might also be interesting bed- time reading for any computer pro- fessional--Schindler's coverage is so wide that anyone is likely to pick up the odd new idea, in between laughing at bad jokes.

Gane's report is less recommendable, its purpose being so unclear. As an intro- duction to software engineering it's not very helpful. As a guide to choosing an upper-CASE tool it is too short and already dated (at least two of the tools he describes are now out of circulation in the USA, and he misses out a number of new and interesting contenders). Its most interesting section is about what real CASE tools might someday be able to offer, but I don't think I'd buy the book just for those few pages.

A CAMPBELL Brighton, UK

Concise and detailed guide hnplementing software engineering prac- tices F J Buekley John Wiley (1989) 172 pp £27.80 hard- back

Buckley's book was written for the use of project engineering managers who are unfamiliar with the details of implement- ing the software engineering design pro- cess. The book describes the process of the development of medium- to large- scale software projects. Although the description lacks depth in places, the presentation conveys a complete, high- level view of software development project processes.

Unique for this genre of books is the extensive use of references to IEEE and US military standards and guides. The reader can use these for implementation of the described processes. Buckley depicts a fictitious engineering develop- ment project in his book to illustrate his points, and to demonstrate the use of these standards and guides.

The attention given to hardware/soft-

to process of software engineering ware interfaces and development inter- relationship is noteworthy. Most soft- ware engineering texts describe the soft- ware development process without addressing the implications which the development of hardware has on soft- ware development. As the differentiating line that demarcates hardware from soft- ware becomes less and less distinct, this inclusion is a welcome addition.

Buckley's last few chapters appear especially abbreviated. The careful atten- tion to detail and rich examples that were prevalent in the beginning of the text are missing. Buckley reduces major concepts to a few paragraphs. The book would have been stronger and more complete had he expanded the final two chapters into five or six additional chapters, each with examples and references to standards and guides.

The appendices contain an impressive listing of standards and guides. Other appendices include examples of com- pleted specifications and design docu- ments. These examples illustrate the engineering project described in the main

body of the text. Further, there is a defi- nition and example of a free-form pro- gram design language. This would be useful for projects that have not established an internal standard for this tool.

Throughout the book, Buckley often writes using an abundance of acronyms. He often uses acronyms before defining them, requiring the reader to read certain sections of the book multiple times before the meaning of these passages becomes clear. Even the appendix, which defines many useful acronyms, omits several that Buckley uses. This can be quite frustrating to the reader.

This book would serve well in an engi- neering manager's technical library as a concise yet detailed guide to the process of software engineering. Project leaders could also use this text as a source book with examples of terms, standards, and guides.

W GASSER Honeywell, Inc.,

Denver, CO, USA

vol 33 no 3 april 1991 247