abstraction for programmers - computer.org · downinto fortran77or pascal. "exercise"-iv...

5
Editor: Wiley McKinzie, School of Computer Science and Technology, Rochester Institute of Technology, Rochester, NY 14623; Compmail, w.mckinzie; CSnet, wrm@rit Abstraction for Programmers J.A. Zimmer (McGraw-Hill Book them reappearing more than once. An for future study nor the context of cur- Company, New York, 1985, 251 pp., appreciable number of exercises are rent work is given. The book's abun- $18.95) posed at the end of each section, rang- dance of fanciful references, which ing from simple refresher questions to range from Zen Buddhism to Dr. Seuss, This book pretends to be a self- full-fledged homework projects. There does not compensate for these defi- contained textbook for third- and is also a subject index, appropriate ciencies. fourth-year university courses in soft- enough, although with minor omis- The major shortcoming, however, is ware engineering. The prerequisites are sions. The book is easy to follow, with that the book is pockmarked with a course of a programming language reading even delightful in places. Many errors. (Fortran 77 or Pascal) with suitable pro- comparisons are real masterpieces. It First, I found about 60 typos, 60 per- gramming practice and a course in data would be a very beautiful book-if it cent of them in the program texts structures. Considerable mathematical contained no errors. (counting syntax errors merely as sophistication is also required to read Unfortunately, the goal of this book typos). Perhaps they can be attributed Chapter 7. is not achieved. The concepts them- to the editor, but the author states (p. The author presents a technique to selves are good, but Zimmer has 138) that he wrote the book on a word organize software design using a lan- abstracted from their execution. The processor. guage that deals with actions and data presentation is altogether too preten- Second, I noticed three dozen omis- initially coded into high-level metacode tious. He has included many anecdotes, sions, areas for improvement, style (a cross between English and computer beginning with the old Chilliwack song faults, etc. language) and then hand-compiled (p. xiii) and ending with the final Third, there are well over 60 technical down into Fortran 77 or Pascal. "exercise"-IV * XL + ?-on the very errors in the programs presented (syn- The book is well organized, with ade- last page. The reader is referred to as tax not included): either semantics quately chosen titles of chapters and "she. " The figures and tables are (which can be checked by a compiler) or sections permitting quick location labeled by strings (names) rather than those resulting in execution errors, through the table of contents. The pref- numbers (except for the formulas in some of them severe, preventing a pro- ace gives guidelines for both faculty Chapter 7), although about 40 percent gram not only from producing correct instructors and prospective readers. of them are referenced only once or results, but from being run at all. After Chapter 1 presents the motivations and twice in the nearby text. Even the one such program, Zimmer writes (p. framework for the described technique. author confuses their names (it is not 152), "This design has been revised The next four chapters further the easy to differentiate between more than once to eliminate errors and reader's knowledge about abstraction. STRING-REPLACE and REPLACE_ increase clarity." No comment! They describe metacode, examples of its STRING, for example). In the special The errors, therefore, cannot be con- use, object modules, and examples of index of figures (without which they are sidered as coming from careless editing their use. Chapter 6 highlights proper- impossible to locate in the text), some only. It seems that the examples are ties that reliable and maintainable soft- names are missed and one refers to a slipshod ad hoc constructions, never ware should have. The last chapter nonexistent figure(!). used as plans for building a real pro- introduces an axiomatized description The author seems to be overly gram tested on a real computer, and not of the specification of metacode and philosophical at times. The reader, who "validated" on real students. Only very modules. Two appendices present must already be familiar with a pro- simple examples are error-free; the actual implementations into Fortran gramming language, could have been larger the program, the more errors it and Pascal respectively, of examples spared some elementary facts, such as contains. chosen from the text. the tutorial on Boolean expressions. Zimmer's metacode is human- Over 15 illustrative case examples are There are too few references at the end verifiable only, hence all weak points, used throughout the book, most of of each chapter; neither a bibliography inaccurate interfaces, secret data- sharing between modules, misinforma- tion, and inconsequentialities prolifer- ate in the actual code. He is not simply incorrect in writing (p. 5) "this lan- Recently published books and new periodicals may be submitted for review guage can express very precise or very to editor at the address given above, imprecise ideas. But, unlike English, Note: Publications reviewed in this section are not available from the there is no room for imprecise commu- Computer Society; they must be ordered directly from the publisher. nications." This is very dangerous: it gives a false sense of correctness during design. If all these errors could happen to a professional PhD working alone in 106 COMPUTER

Upload: lydien

Post on 23-Jun-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Editor: Wiley McKinzie, School of Computer Science and Technology, Rochester Institute of Technology, Rochester, NY 14623; Compmail, w.mckinzie; CSnet, wrm@rit

Abstraction for ProgrammersJ.A. Zimmer (McGraw-Hill Book them reappearing more than once. An for future study nor the context of cur-Company, New York, 1985, 251 pp., appreciable number of exercises are rent work is given. The book's abun-$18.95) posed at the end of each section, rang- dance of fanciful references, which

ing from simple refresher questions to range from Zen Buddhism to Dr. Seuss,This book pretends to be a self- full-fledged homework projects. There does not compensate for these defi-

contained textbook for third- and is also a subject index, appropriate ciencies.fourth-year university courses in soft- enough, although with minor omis- The major shortcoming, however, isware engineering. The prerequisites are sions. The book is easy to follow, with that the book is pockmarked witha course of a programming language reading even delightful in places. Many errors.(Fortran 77 or Pascal) with suitable pro- comparisons are real masterpieces. It First, I found about 60 typos, 60 per-gramming practice and a course in data would be a very beautiful book-if it cent of them in the program textsstructures. Considerable mathematical contained no errors. (counting syntax errors merely assophistication is also required to read Unfortunately, the goal of this book typos). Perhaps they can be attributedChapter 7. is not achieved. The concepts them- to the editor, but the author states (p.The author presents a technique to selves are good, but Zimmer has 138) that he wrote the book on a word

organize software design using a lan- abstracted from their execution. The processor.guage that deals with actions and data presentation is altogether too preten- Second, I noticed three dozen omis-initially coded into high-level metacode tious. He has included many anecdotes, sions, areas for improvement, style(a cross between English and computer beginning with the old Chilliwack song faults, etc.language) and then hand-compiled (p. xiii) and ending with the final Third, there are well over 60 technicaldown into Fortran 77 or Pascal. "exercise"-IV * XL + ?-on the very errors in the programs presented (syn-The book is well organized, with ade- last page. The reader is referred to as tax not included): either semantics

quately chosen titles of chapters and "she. " The figures and tables are (which can be checked by a compiler) orsections permitting quick location labeled by strings (names) rather than those resulting in execution errors,through the table of contents. The pref- numbers (except for the formulas in some of them severe, preventing a pro-ace gives guidelines for both faculty Chapter 7), although about 40 percent gram not only from producing correctinstructors and prospective readers. of them are referenced only once or results, but from being run at all. AfterChapter 1 presents the motivations and twice in the nearby text. Even the one such program, Zimmer writes (p.framework for the described technique. author confuses their names (it is not 152), "This design has been revisedThe next four chapters further the easy to differentiate between more than once to eliminate errors andreader's knowledge about abstraction. STRING-REPLACE and REPLACE_ increase clarity." No comment!They describe metacode, examples of its STRING, for example). In the special The errors, therefore, cannot be con-use, object modules, and examples of index of figures (without which they are sidered as coming from careless editingtheir use. Chapter 6 highlights proper- impossible to locate in the text), some only. It seems that the examples areties that reliable and maintainable soft- names are missed and one refers to a slipshod ad hoc constructions, neverware should have. The last chapter nonexistent figure(!). used as plans for building a real pro-introduces an axiomatized description The author seems to be overly gram tested on a real computer, and notof the specification of metacode and philosophical at times. The reader, who "validated" on real students. Only verymodules. Two appendices present must already be familiar with a pro- simple examples are error-free; theactual implementations into Fortran gramming language, could have been larger the program, the more errors itand Pascal respectively, of examples spared some elementary facts, such as contains.chosen from the text. the tutorial on Boolean expressions. Zimmer's metacode is human-Over 15 illustrative case examples are There are too few references at the end verifiable only, hence all weak points,

used throughout the book, most of of each chapter; neither a bibliography inaccurate interfaces, secret data-sharing between modules, misinforma-tion, and inconsequentialities prolifer-ate in the actual code. He is not simplyincorrect in writing (p. 5) "this lan-

Recently published books and new periodicals may be submitted for review guage can express very precise or veryto editor at the address given above, imprecise ideas. But, unlike English,

Note: Publications reviewed in this section are not available from the there is no room for imprecise commu-Computer Society; they must be ordered directly from the publisher. nications." This is very dangerous: it

gives a false sense of correctness duringdesign. If all these errors could happento a professional PhD working alone in

106 COMPUTER

full concentration on a book, the more Object-Oriented Programming: An Evolutionarylikely that they will happen to sopho- ApLmores or a team of designers. pproachA nine-line epilogue talks about a

mysterious "hazy summit" which "can- Brad J. Cox (Addison-Wesley Pub- Each of these types of readers cannot be seen from this path." The goal lishing Company, Reading, MA, take advantage of the book since itfor today is by no means hazy, but 1986, 274 pp., $24.95) strikes a clever balance between chap-indeed it cannot be reached from this Object-oriented programming has ters that are full of instructive examplesblind alley. A different approach has gained acceptance as a research topic and beautifully drawn pictures, andproven to be right: executable, extensi- and applied field in the last few years. chapters that are rigorously theoreticalble, and decidable program design lan- Several annual conferences and sympo- and less descriptive.guages, strongly typed, with precise sia have been established on this The book can be divided into threesyntax. CAD should obviously first be subject-for example, the Object- parts: an assessment of the object para-applied to software engineering (doctor Oriented Programming Systems, Lan- digm and its motivation; a detailedheal thyself). There are countless such guages and Applications (OOPSLA) description of the proposed objectprojects now (see for example IEEE Conference, started in 1986 by ACM. model and system-Objective-C; andTransactions on Software Engineering) New object-oriented languages and examples of its use, a discussion of itsranging from machine-implemented commercial environments continue to limitations, and a few suggestions onspecification language to knowledge- appear and a few of them are now how to overcome them.based expert systems, supporting multi- becoming available for personal com- In Chapter 1, Cox uses the exampleple views of a program under develop- puters. of the design needs of a software systemment. They allow errors to be Object-based systems have had an architect to argue for the reusability ofdiscovered early in the design process, anomalous history. They have their software components. Even the con-before software reaches the implemen- roots in Smalltalk-80, the Xerox- trived name of the software company,tation stage, thanks to such things as supported environment. Smalltalk-80 OSI, suggests in a subliminal way thesymbolic execution on sample data, was developed and promoted as an necessity for standardization as a "deusrapid prototyping, modeling, valida- internal vehicle for research at Xerox ex machina" solution. All the analogiestion, etc. Multiple tools for automatic PARC and was only disclosed as a com- throughout the book are evocative and(static and dynamic) analysis of soft- plete environment after ten years of effective. In this chapter, the compari-ware can be integrated into a uniform development effort. During this time, son of World War II defenseframework. The novice reading this no attempt was made to stimulate exter- techniques-the Maginot Line defense,book would not suspect the advances nal discussion on its basic concepts. the Swiss defense, and a hybrid one-made since the basics of structured Other object-oriented languages, such reinforces Cox's conclusion that thedesign were formulated. as Ada and Prolog, benefitted from a best tactic for software development is aThe approach presented by the more open research process. hybrid approach which aims for com-

author seems to combine perfectly with As a consequence of their disparate patibility with existing softwarethe Ada or Modula languages, yet Zim- origins, objects and their properties are systems.mer advises against such mating (p. not clearly defined. Their definitions Chapter 2 categorizes several solu-xiii). He seems to look backward, not must be inferred from the existing pro- tions to the problems of development ofinto the future, stating (p. 117), "None totypes of object systems. As a result, large software systems: the object-of these [languages] is on a list of best there is some confusion over what oriented approach is compared to thesellers" and presenting a Fortran imple- objects and their properties are. Unix pipe/filter approach and the tradi-mentation instead. Yes, it was a great In Object-Oriented Programming: tional subroutine library approach. Theachievement-to reject Ada and Mod- An Evolutionary Approach, Cox issue of binding names to their physicalula in order to simulate them in Fortran defines objects and their properties, and counterparts is discussed with clarityinstead. But-happily or not-Modula at the same time presents his own point and in depth. The potential for lateis already with us (even on personal of view concerning their possible appli- binding in several parts of a large sys-computers). cations. Cox argues that objects are the tem is stressed, especially when dynamicA faculty instructor can benefit from unescapable product of the evolution of problems are to be solved. Apart from a

using this book as a teaching supple- software systems design toward the few objections, I find Cox's vision ofment; a student will not. Perhaps its sig- practice of reusing software compo- software integrated circuits largely con-nificance is not great enough to deserve nents rather than designing software vincing. The author candidly admitsthis extended critical examination. But systems from scratch. In fact, Cox uses that the use of integrated circuits canman should learn from every trial and "object" as a synonym for software pose some problems: the necessity forespecially from every error. After all, integrated circuit (IC). He argues that extensive documentation of softwarethe "unsuccessful" Michelson-Morley the production of software components components can encourage recodingexperiment became a foundation stone is the long-term goal of any effort in rather than reuse (at least for small sys-of the theory of relativity. The corollary software engineering. Cox envisions the tems); at the same time, the possibilityfrom this lesson is strong evidence for realization of this goal as a collection of of pirating components cannot berigorous (mathematical and logical) for- software integrated circuits. prevented.mal specification and design methodol- The book is tailored to appeal to two Chapter 3 is devoted to a survey ofogies. I would therefore hesitate to rather distinct groups of readers: (1) Smalltalk-80, Ada, and C + + .recommend this book, and I fear that those who have no previous experience Smalltalk is summarized admirably inno new edition can be expected to make with object systems and (2) those who terms that can be understood by theit useful. are knowledgeable about object systems uninitiated. Ada object-oriented fea-

and have the necessary experience in tures are discussed in order to point outJerzy J. Klaczak system design to take advantage of the the staticity of current tools. C + + isPlurix, Poland book's suggestions. described as being closely related to

October 1987 107

Objective-C language, the language that of Objective-C language-a step-by- sufficiently important to be read as anCox discusses and demonstrates in step description with the development independent paper. It deals with thedetail in later chapters of the book. of the solution. The resulting perfor- most important issues to be solved inC + + is a modification of C language. mance is compared with the perform- any object system support: memoryIt introduces a construct for classes- a ance of a hand-coded solution at several allocation/deallocation strategies; thedata-type apparatus. However, it does levels. Finally, costs are carefully need for virtual memory interaction andhave some incompatibilities with C. evaluated. the problem of interchange of objects

Chapters 4and describe Objective- Chapters 7 and 8 describe the charac- between systems; and concurrency andChapters 4 and 5

that is fully teristics of some basic classes: object, object execution capacities, with theC language, a language that iS fully array, and collection. Chapter 9 aim of proposing objects in distributedcompatible with C. It has Objective-C explores a more complete example, the and coordination systems.as a simple front end between the usual design of a user interface based on icons Cox presents a persuasive argumentC-preprocessor and the C-compiler. for the Unix "make" commands. This that object methodology is a soundChapter 4 introduces the key concepts chapter not only serves as a guide to the solution to software engineering prob-of Objective-C language, notably the use of Objective-C but also provides an lems. In the process, he contributes inobjects and the message exchange. original explanation of the successive an essential way to the clarification ofChapter 5 focuses on the idea of reuslng layers of a graphical interface. The the object paradigm. His book provides

coaonepts. Te pgramitance aprocess is example is completed by a cost per- a useful perspective on object program-concepts. The programming ocesswis formance comparison. ming for either the uninitiated or thedescribed exhaustively. The only weak Chapter 10 is of particular interest to initiated programmer. It could even belink in this chapter is the discussion of the programmer who is familiar with adopted as a textbook in a graduatemultiple inheritance: its motivation iS object-oriented systems. The constraints course on software engineering envi-crudely outlined and only a quick of the proposed object language are ronments.glimpse of its implementation is given. I stated and the possibility of their releasefeel this iS one of the book's few is proposed. This chapter deserves aneglected tOpiCS. careful reading. I regard it as one of the Antonio CorradiChapter 6 presents a simple example most important in the book- University of Bologne

Software Engineering HandbookStaff of General Electric Company ware design, structured coding, soft- risk; therefore managers should invest(McGraw-Hill Book Company, New ware testing, configuration time and thought in test planning toYork, 1986, 224 pp., $59.50) management and maintenance? Also avoid certain costs. And, they caution

listed in the table of contents are long against publishing standards that can-This book reminds me of the prover- and short examples of code and docu- not or will not be enforced.

bial half glass of water. The optimist ments, and sample document formats I am very happy that the authors pro-describes it as half-full, and the pes- for specifications, design, testing and mote design and code walk-throughs,simist says it is half-empty. As a module development folders. And these and that they show flexibility in theirreviewer, I'm torn between these two are only half of the topics presented. review strategy, allowing that some-positions. The book offers lots of good Among the positive aspects of the times large, formal reviews are neces-advice and contains lots of information. book are the sound precepts which it sary and at other times small, informalIt also contains many textual mistakes, reviews are sufficient.several major discrepancies, dated I particularly like the chapter discuss-material, and whole sections that don't The book contains lots ing how much software engineering onesay anything. should do on small projects. TheWhen I received this book to review, of information, but it authors contend that the approach to a

I was really excited. Here was a hand- also includes many small project can be less formal thanbook, a guide, and a collection of soft- textual mistakes and for a large project, but the softwareware development information all engineers still have to state require-under one cover. Of course, there are several major ments, perform the specified design,numerous good books available on indi- discrepancies. have others review their work, docu-vidual topics of software design, soft- ment their code, plan for maintenance,ware testing, configuration control, etc. I totally agree. Sloppy workman-etc., but here was a book that combined ship on small projects will cause themall those references together and was lays down for project managers and to fail just as fast as large ones.designed to help a real software software engineers. The authors con- Despite the sound advice that thedesigner, programmer or manager to tend that project milestones should be book provides on these general designconduct a software development "tangible" and distributed evenly in issues, it is deficient in its discussion ofproject. time. They recommend that if software some management and software issues.Who would not be excited by a table transfer is likely, a plan should be writ- I attribute this obvious unevenness to

of contents that offers a guide for ten to prepare for this requirement. the fact that the book is an internalmanagers and practitioners to software They observe that integration and test- handbook written "by the staff ofplanning, requirements analysis, soft- ing always involve tradeoffs of cost and General Electric Company."

108 COMPUTER

For example, a project-type organiza- ters and appendices were written over a DOD-STD-2167), if you haven't heardtion (that is, an organization with a period of years. However, the book of software topics such as Yourdon'sstrong, single leader) is the only form of jacket claims the handbook is "up-to- structured design, Procedure Definitionmanagement discussed. I assume that the-minute." Talk about poetic license. Language, or software metrics, thisthis preoccupation reflects the way GE The book also suffers from incon- book provides an introduction. But ifis organized. The tradeoffs between a sistencies in detail. An example of this you know all the basics of softwareproject-type organization and a inconsistency occurs as early as the development and still are having a hardmatrixed organization are never third figure. The text describes five time doing it, this book won't help you.explored. (Given this limited perspec- steps in the development phase and the I want to end on a positive note.tive, I was surprised to read about a figure shows five blocks in the develop- Many companies say that what theyvote being taken at a detailed design ment phase; but the steps and the really need is an internal software hand-review. Obviously, someone did not get blocks shown in the figure don't match. book to guide their next softwarethe word.) The book's index is an editor's effort, but that right now, because they

In the area of software design, no nightmare-most of the alphabet is are behind schedule and over budget onmention is made of build (make) con- missing. With many authors producing their current software debacle, they dotrol. Everyone agrees that source code many chapters and appendices over not have the time to put one together.and executable code need to be under several years, the index seems to have The employees at General Electricchange control. I believe that build con- been totally neglected. should be commended for going thetrol can be just as critical. I have found If you want a helpful introduction to extra mile and compiling and publishingthat without controlling your build files top-down design, if you want sample this book. In doing so, they haveyou can deliver different executables software change report forms and tem- accomplished more than most compa-from the same source files. plates for development documents nies that express similar intentions.The configuration management (CM) (similar to those offered by

chapter is weak. It simply discusses clas- ANSI/IEEE Standards 829 and 830 or Andrew Marmorsteinsical CM-the hardware person's plea the Data Item Descriptions required by CACI, Inc.that if software people would only keeptrack of their documents and code likehardware people do their drawing andpart numbers, then there would not beany configuration problems. Well, soft-ware people don't and therefore there Remote Sensing Digital Image Analysis:are problems. The chapter should An Int d tndescribe invaluable automated CM n ntrouctiontools such as Digital Equipment Corpo-ration's Code Management System and John A. Richards (Springer-Verlag, course and manages to combine clearModule Management System, Softool's New York, 1986, 281 pp., $54) and orderly development of ideas withChange and Configuration Control comprehensive scope. The presentationproduct, or Unix's Source Code Con- is succinct, but the orderly developmenttrol System and "make" utilities. These Nowhere is the "information explo- and the exercises at the end of eachproducts need not be reviewed by name; sion" more pronounced than in the chapter make the book suitable as aa generic description of software con- field of remote sensing. Spaceborne text. On the other hand, it is sufficientlytrol would have been fine. imaging instruments scan the whole of comprehensive in scope and detailed inThe chapter on software maintenance the earth's surface at high resolution treatment to serve as a basic reference

discusses the administration and bean (tens of meters) with repeat cycles of source.counting done during maintenance but only days. Computer assistance is essen- Richards has allowed for the variedis not as helpful as the previous chap- tial if more than a small proportion of background of his readers. Chapter 1ters on design and coding are when they this data is ever to be analyzed. How- identifies major sources of remote sens-offer specific advice. The authors quote ever, it is not only the amount of data ing image data. It provides supportingthe well known estimate that 50 percent that mandates computerized techniques. material for subsequent chapters and,of the life cycle cost of a software prod- Precision numerical analysis and flexi- at the same time, is an excellent com-uct will be spent on maintenance. Hav- bility of presentation are frequently pendium in its own right. Chapters 2ing provided this powerful estimate, necessary to extract the maximum and 3 introduce the principles of errorwhat do they advise the reader to do information from the data. correction, registration, and interpreta-regarding software maintenance? Keep Remote sensing and advanced com- tion of digital image data. Subsequentgood records. puter analysis techniques are inevitable chapters discuss various forms of

Parts of the book are outdated. Its partners. Richards' Remote Sensing enhancement (both radiometric andcopyright is 1986, but some of its dollar Digital Image Analysis endeavors to geometric), data transformations (mul-estimates are computed using 1976 assist the marriage. The book draws tispectral and Fourier), supervised andprices! Some paragraphs claim to be together "the range of digital image unsupervised classification, and featurecurrent even though they focus on processing procedures and methodolo- reduction. In the final chapter, themethods and data from 1979 and 1980. gies commonly used in this field into a preceding chapters are drawn togetherFor example, Putnam's software cost- single treatment. . .at a level meaning- and, with the aid of a set of caseestimating method, popularized around ful to the nonspecialist digital image studies, placed in the context of overall1979, is described, but Boehm's cost- analyst, but in sufficient detail that classification methodologies. Appen-estimating model, published in 1980 algorithm limitations, alternative proce- dices provide much of the necessaryand therefore well known by 1981 or dures, and current trends can be mathematical background. A final1982, is not mentioned at all. Such appreciated." appendix summarizes principles of real-oversights suggest that different chap- The book grew out of a graduate time image processing in interactive

October 1987 109

image display systems, providing a use- Although largely a book about image On the negative side, there is a pro-ful, albeit brief, introduction for users analysis techniques, the author's knowl- nounced bias for agricultural and land-of such systems. edge of application background is obvi- use applications. As a result, techniques

There is much to praise in both the ous. Application-specific issues are from other fields, such as geology andcontent and the presentation of the addressed and techniques which relate bathymetry, receive less emphasis or arebook. The publishers have certainly to specific applications (for example, omitted altogether. One detected errordone the material justice with high qual- the Kauth-Thomas Tasseled Cap Trans- of technical detail is the obscuring ofity glossy paper and many photographs, formation) are given their due place. At distinction between active versus passiveincluding some in color. the same time, Richards does not lose sensing and microwave versus non-As is inevitable in any book attempt- sight of computing issues such as com- microwave sensing.

ing to cover as broad a scope as this one putational cost of the algorithms. Overall, however, this is a well-does, the content occasionally lacks In general, the level of mathematical written, excellently presented book,depth and some issues are barely complexity is appropriate to the likely with few weaknesses. It is suitable as atouched on. For example, the treatment readership. The one significant excep- graduate text or as a reference book,of instrument defects does not take into tion, which Richards himself and successfully bridges the gapaccount nonlinearities and along-scan acknowledges, is Chapter 7 (Fourier between digital image analysis andnoise; and context-dependent classifica- Transformation of Image Data) which, application remote sensing.tion is barely alluded to. However, because of the mathematical complexi-references at the end of each chapter ties, some readers may wish to pass Denis Warnedirect readers to further information. over. Computer Sciences of Australia Pty.

Business Data CommunicationsDavid A. Stamper (The Benjamin/ quality. A close reading reveals only a ard to existing and future data commu-Cummings Publishing Company, few minor typographical errors. There nication systems.Inc., Menlo Park, CA, 1986, 456 are no glaring factual errors to interfere Another shortcoming is the book'spp., $24.95) with comprehension of the major exclusion of some current networks that

subjects. are likely to figure in the future of busi-This book takes a big bite from a Some of the topics covered exception- ness data communications. The general

very large subject-business data com- ally well are hardware (especially termi- focus of the book is descriptive andmunications. It is useful for readers nals), synchronous and asynchronous historical rather than theoretical. Thiswho are just interested in reading an protocols, and transaction control historical slant leads to a bias in favoroverview of the field. It is also appro- processes (TCPs). The treatment of rec- of IBM products. For someone who ispriate as a textbook for two types of studying to manage existing networkcourses-as a primary text for a busi- hardware, the extra coverage of IBM-ness management or data processing specific standards like synchronous datacourse for nontechnical people training Some of the t link control (SDLC) and system net-for network management, or as a sup- tOpiCS work architecture (SNA) is reasonable.plemental text for an introductory pro- covered exceptionally But other proprietary networks get lessgramming course on the design and well are hardware, coverage than they deserve-for exam-implementation of business computer synchronous and ple, Digital's DECnet is covered in justnetworks. However, the book iS proba- asynchronous protocols, over a page. Electronic mail systemsbly too technical for most managers and asynchronous protocols, and generalized file transfers are alsonot technical enough for most and transaction control conspicuously absent. Missing protocolsprogrammers. processes. at the file level include the popular Ker-The organization is very good. The mit and Xmodem.

book has all the standard features of a To cover a lot of material and stillgood textbook. It includes both a short present it well is difficult for a book totopic summary and a complete 14-page do. A truly "great" book is one thattable of contents. The span of topics ord deadlock is also very good, manages to take the big bites and stillmentioned is quite impressive. The although slightly redundant. "chew" the topics well. Such books areauthor has done a formidable amount One shortcoming of the book is its rare indeed. I was not really disap-of work just gathering data on all of treatment of the OSI seven-layer stand- pointed in this one, but it does fall shortthese subjects. Each chapter includes an ard. The book references the OSI seven- of "greatness." Nevertheless, it isintroduction, a summary, exercises, and layer standard, and parts of the book informative, well-written, surprisinglycurrent (though sparse) references. are linked to the various layers. How- up-to-date, and enjoyable to read.Many chapters include selections from a ever, almost half the book is dedicated What more can you expect from acontinuing case study and technical sup- to the lowest layers. Many of the exam- textbook?plements discussing selected examples in ples that clearly began from the applica-depth. The index is also good. tion layer are never really dissected to Shannon Jacobs

Overall, the book gets high marks for clarify the relevance of the OSI stand- CDI Corporation

110 COMPUTER