Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Skip header Section
System design with AdaMarch 1984
Publisher:
  • Prentice-Hall, Inc.
  • Division of Simon and Schuster One Lake Street Upper Saddle River, NJ
  • United States
ISBN:978-0-13-881623-0
Published:20 March 1984
Pages:
256
Skip Bibliometrics Section
Reflects downloads up to 13 Sep 2024Bibliometrics
Abstract

No abstract available.

Cited By

  1. Meitus V (2005). On the problem of creation of the pattern computer, Cybernetics and Systems Analysis, 40:6, (812-823), Online publication date: 1-Jan-2005.
  2. Carter J and Sandén B (1998). The Practical Use of Ada 95's Concurrency Features, IEEE Concurrency, 6:4, (47-56), Online publication date: 1-Oct-1998.
  3. Wang Z (1998). ρ Graph: Rendezvous ordering graph for Ada concurrent programs, Journal of Computer Science and Technology, 13:6, (615-622), Online publication date: 1-Nov-1998.
  4. ACM
    Khrabrov A (1995). An Ada-like separate compilation style in C, ACM SIGAda Ada Letters, XV:2, (23-30), Online publication date: 1-Mar-1995.
  5. ACM
    Buhr R and Casselman R Timethread-role maps for object-oriented design of real-time-and-distributed systems Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications, (301-316)
  6. ACM
    Buhr R and Casselman R (2019). Timethread-role maps for object-oriented design of real-time-and-distributed systems, ACM SIGPLAN Notices, 29:10, (301-316), Online publication date: 1-Oct-1994.
  7. ACM
    Buhr R, Karam G, Woodside C, Casselman R, Franks G, Scott H and Bailey D (1994). TimeBench, ACM SIGAda Ada Letters, XIV:SI, (3-15), Online publication date: 1-Sep-1994.
  8. ACM
    Kermarrec Y and Pautet L Ada-Linda Proceedings of the conference on TRI-Ada '94, (438-445)
  9. ACM
    Buhr R, Karam G, Woodside C, Casselman R, Franks G, Scott H and Bailey D TimeBench Proceedings of the second international symposium on Environments and tools for Ada, (3-15)
  10. ACM
    Byrnes C Porting applications between two commercial Ada/Motif bindings Proceedings of the conference on TRI-Ada '93, (37-49)
  11. ACM
    Frankel M Ada 9X and CASE Proceedings of the conference on TRI-Ada '93, (200-210)
  12. ACM
    Nickerson J Visual conventions for system design using Ada 9X Proceedings of the conference on TRI-Ada '93, (379-384)
  13. ACM
    Frankel M Enabling reuse with Ada generics Proceedings of the tenth annual Washington Ada symposium on Ada: Ada's role in software engineering, (17-30)
  14. ACM
    Gray L No one needs DOD-STD-2167A's CSCs and CSUs Proceedings of the tenth annual Washington Ada symposium on Ada: Ada's role in software engineering, (125-132)
  15. Boyd J and Karam G Using design fragments to modularize the design of communications in concurrent systems Proceedings of the 7th international workshop on Software specification and design, (184-193)
  16. ACM
    Strong N Identifying a complete object oriented life cycle for large systems development Proceedings of the conference on TRI-Ada '92, (166-175)
  17. ACM
    Frankel M Analysis/architecture models to ASG models Proceedings of the conference on TRI-Ada '92, (220-231)
  18. ACM
    Arbaugh R and Gerhardt M A modern development process Proceedings of the conference on TRI-Ada '92, (240-248)
  19. ACM
    Kermarrec Y and Pautet L Ada communication components for distributed and real time applications Proceedings of the conference on TRI-Ada '92, (530-537)
  20. ACM
    Hummer J and Briand L When hardware becomes software Proceedings of the conference on TRI-Ada '92, (538-544)
  21. ACM
    Buhr R, Karam G and Casselman R Support for specifying temporal behavior in Ada designs Proceedings of the first international symposium on Environments and tools for Ada, (91-101)
  22. ACM
    Buhr R, Karam G and Casselman R (2019). Support for specifying temporal behavior in Ada designs, ACM SIGAda Ada Letters, XI:3, (91-101), Online publication date: 1-Apr-1991.
  23. ACM
    Cochran M and Gomaa H Validating the ADARTS software design method for real-time systems Proceedings of the conference on TRI-Ada '91: today's accomplishments; tomorrow's expectations, (33-44)
  24. ACM
    Encontre V SDL: a standard language for Ada real-time applications Proceedings of the conference on TRI-Ada '91: today's accomplishments; tomorrow's expectations, (45-53)
  25. ACM
    de Tomás M, Gómez L and Pérez A Vestal: a tool for teaching concurrency in Ada Proceedings of the conference on TRI-Ada '91: today's accomplishments; tomorrow's expectations, (498-509)
  26. ACM
    Prelle M, Wollrath A, Brando T and Bensley E The impact of selected concurrent language constructs on the Sam run-time system Proceedings of the workshop on Object-based concurrent programming, (99-103)
  27. ACM
    Prelle M, Wollrath A, Brando T and Bensley E (1991). The impact of selected concurrent language constructs on the Sam run-time system, ACM SIGPLAN OOPS Messenger, 2:2, (99-103), Online publication date: 1-Apr-1991.
  28. ACM
    Krachten P Ada Introduction to Ada: Tri-Ada '91 Tutorial, (47-151)
  29. Finnigan P and Lyons K Narratives of space and time Proceedings of the 1991 conference of the Centre for Advanced Studies on Collaborative research, (363-391)
  30. ACM
    Carter J (1990). The form of reusable Ada components for concurrent use, ACM SIGAda Ada Letters, X:1, (118-121), Online publication date: 1-Jan-1990.
  31. ACM
    Shock R Fashioning conceptual constructs in Ada Proceedings of the conference on TRI-ADA '90, (180-188)
  32. ACM
    Howes N Toward a real-time Ada design methodology Proceedings of the conference on TRI-ADA '90, (189-203)
  33. ACM
    Chludzinski J and Lai R An experiment with Graphite Proceedings of the conference on TRI-ADA '90, (452-462)
  34. Oswald H, Esser R and Mattmann R An environment for specifying an executing hierarchical Petri nets Proceedings of the 12th international conference on Software engineering, (164-172)
  35. Howes N and Weaver A (2019). Measurements of Ada Overhead in OSI-Style Communications Systems, IEEE Transactions on Software Engineering, 15:12, (1507-1517), Online publication date: 1-Dec-1989.
  36. Hager J (2019). Software Cost Reduction Methods in Practice, IEEE Transactions on Software Engineering, 15:12, (1638-1644), Online publication date: 1-Dec-1989.
  37. ACM
    Ladden R (1989). A survey of issues to be considered in the development of an object-oriented development methodology for Ada, ACM SIGAda Ada Letters, IX:2, (78-89), Online publication date: 1-Mar-1989.
  38. ACM
    Wasserman A, Pircher P and Muller R (1989). An object-oriented structured design method for code generation, ACM SIGSOFT Software Engineering Notes, 14:1, (32-55), Online publication date: 3-Jan-1989.
  39. ACM
    Sterne D, Glendening A, Jachowski A and Pretti G (1989). A simplified graphic notation for Ada programs, ACM SIGAda Ada Letters, IX:6, (108-118), Online publication date: 1-Sep-1989.
  40. ACM
    Crawford B and Baker D Design issues and team support: experiences of an Ada tool vendor Proceedings of the conference on Tri-Ada '89: Ada technology in context: application, development, and deployment, (172-180)
  41. ACM
    Whitcomb M and Clark B Pragmatic definition of an object-oriented development process for Ada Proceedings of the conference on Tri-Ada '89: Ada technology in context: application, development, and deployment, (380-399)
  42. ACM
    Colbert E The object-oriented software development method: a practical approach to object-oriented development Proceedings of the conference on Tri-Ada '89: Ada technology in context: application, development, and deployment, (400-415)
  43. ACM
    Sterne D, Pretti G, Glendening A and Jachowski B A simplified graphic notation for Ada programs Proceedings of the conference on TRI-Ada '88, (8-22)
  44. ACM
    Sanden B (1989). An entity-life modeling approach to the design of concurrent software, Communications of the ACM, 32:3, (330-343), Online publication date: 1-Mar-1989.
  45. ACM
    Reedy A, Shotton C, Yodis E and Blumberg F Ada reuse within the context of an Ada programming support environment Proceedings of the fifth Washington Ada symposium on Ada, (11-17)
  46. ACM
    Howes N and Weaver A On implementing the OSI model in Ada via tasking Proceedings of the fifth Washington Ada symposium on Ada, (103-108)
  47. ACM
    Carter J (1988). MMAIM: a software development method for Ada, ACM SIGAda Ada Letters, VIII:3, (107-114), Online publication date: 1-Apr-1988.
  48. ACM
    Sumate K and Nielsen K (1988). A taxonomy of Ada packages, ACM SIGAda Ada Letters, VIII:2, (55-76), Online publication date: 1-Mar-1988.
  49. ACM
    Rising L (1988). Tasking troubles and tips, ACM SIGPLAN Notices, 23:8, (63-72), Online publication date: 1-Aug-1988.
  50. ACM
    Bensley E, Brando T and Prelle M An execution model for distributed object-oriented computation Conference proceedings on Object-oriented programming systems, languages and applications, (316-322)
  51. ACM
    Bensley E, Brando T and Prelle M (2019). An execution model for distributed object-oriented computation, ACM SIGPLAN Notices, 23:11, (316-322), Online publication date: 1-Nov-1988.
  52. ACM
    Rising L Tasking troubles and tips (abstract) Proceedings of the 1988 ACM sixteenth annual conference on Computer science, (729-730)
  53. ACM
    McNickle M and Reedy A (1987). Experiences in using Ada with DBMS applications, ACM SIGAda Ada Letters, VII:3, (40-49), Online publication date: 1-May-1987.
  54. ACM
    Watson S (1987). Ada modules, ACM SIGAda Ada Letters, VII:4, (79-84), Online publication date: 1-Jul-1987.
  55. ACM
    Tam W and Erlinger M (1987). On the teaching of Ada in an undergraduate computer science curriculum, ACM SIGCSE Bulletin, 19:1, (58-61), Online publication date: 1-Feb-1987.
  56. ACM
    Maxted A and Rowe J An Ada graphical tool to support software development Proceedings of the 1987 annual ACM SIGAda international conference on Ada, (87-94)
  57. ACM
    Tam W and Erlinger M On the teaching of Ada in an undergraduate computer science curriculum Proceedings of the eighteenth SIGCSE technical symposium on Computer science education, (58-61)
  58. ACM
    Martin D (1986). Non-Ada to Ada conversion, ACM SIGAda Ada Letters, VI:1, (72-81), Online publication date: 1-Jan-1986.
  59. ACM
    Lieblein E (1986). The Department of Defense software initiative—a status report, Communications of the ACM, 29:8, (734-744), Online publication date: 1-Aug-1986.
  60. ACM
    Nielsen K (1986). Task coupling and cohesion in Ada, ACM SIGAda Ada Letters, VI:4, (44-52), Online publication date: 1-Jul-1986.
  61. ACM
    Buhr R and Karam G (1985). An informal overview of CADA, ACM SIGAda Ada Letters, IV:5, (49-58), Online publication date: 1-Mar-1985.
  62. ACM
    Sterne D, Schmid M, Gralia M, Grobicki T and Pearce R Use of Ada for shipboard embedded applications Proceedings of the second annual Washington Ada symposium on Ada: Ada in the mainstream: applications and education, (131-136)
Contributors
  • Carleton University

Reviews

James W. Moore

In the Preface to this book, R. J. A. Burh states that the objectives are: (1) To provide a top:Udown, design:Uoriented introduction to ADA, accessible to a wide audience. (2) To present and to illustrate by example a practically useful, graphical design notation.... (3) To arm the novice system designer with philosophies, strategies, tactics, techniques, and insights into ways of effectively carrying out the design process in a system life:Ucycle context. It becomes clear that the emphasis of this text is upon system design rather than upon ADA. Buhr is interested in describing a technique for system design which uses ADA as a design language, rather than exploring the capabilities of ADA for system design. The description of ADA focuses primarily upon the facilities which the author regards as useful to his method: the facilities for packaging and for concurrency. The metaphor used to describe concurrency and rendezvous is generally apt and is quite readable. The approach to packaging tends to emphasize the traditional concept of :20modularity” rather than the more novel concepts of :20abstraction,” which take advantage of the particular capabilities which ADA provides. To motivate the discussion of system design, Buhr begins by clearly stating the life cycle which he has in mind. With this base, he can discuss the analogy between hardware and software development and a :20vision of the future,” the software factory. (In contrast to some conventional wisdom, he suggests that ADA may not be helpful in designing system via prototyping techniques.) Buhr's goal is to develop a :20parts kit of canonical, structured system parts.” He describes several alternative design strategies and finally settles upon :20data:Uflow:Udriven structured design” as the strategy to be used for the rest of the book. His designs are documented using a single set of graphical conventions throughout the book. (In fact, the use of graphics is so consistent that it may be accurate to say that the graphics :Iare Buhr's methodology. The book is useful in many regards. An excellent taxonomy of the roles of concurrent tasks is provided in Chapter 3. There are many diagrams and the graphics used to describe the designs seem to be a useful tool for summarizing the interactions among tasks. There are some problems, of course. Another round of editing would have helped. Page 142 refers to an example that is found 64 pages before by giving only the number of the chapter; the chapter is 51 pages in length. A set of timing diagrams are included with little explanation of their format. Some of the identifiers used in the figures do not match the identifiers referenced in the text. The published ADA program fragments could be improved; problems range from poor indentation in one case and a mispelling of the keyword :20elsif”, to a couple of programs which include major errors regarding the scope of names. More bothersome are a few broad claims which are insuficiently supported by argument. Examples of this include: :20for design purposes, ADA may be considered to be essentially PASCAL with special added features” [p.32], and :20ADA cannot be used to design and write conventional operating systems” [p.178]. The description of PASCAL concurrency [p.24] is a little murky and the classification of ADA features [p.14] is not obvious. On page 156 and elsewhere, Buhr discourages the usage of nested accept statements without providing a clear argument. An argument is required; the Buhr solution of the readers/writers problem seems to lack the straightforward clarity of other published solutions which do use nested accepts. The reader is left unsatisfied, wondering if there may be an analogue to the celebrated Bohm:UJacopini structured programming theorem here. The evolution of the design examples is occasionally unclear. The text sometimes introduces componenets with little motivation only to later remove them as being unnecessary. In overall terms, it is clear that this book concerns a design method which is conceived independently of ADA. ADA fans, like the reviewer, may be disappointed that the book does not more fully take advantage of the features of the complete ADA languages and may even be offended when the author criticizes ADA because it lacks some of the facilities provided by his graphical techniques. Nevertheless, Buhr has provided a clear description of his method for the design and description of systems. On balance, the flaws of the text are relatively minor. The book describes a process for producing and describing designs which may very well prove to be useful in the production of concurrent systems.

James W. Moore

Ada is a programming language developed for the Department of Defense specifically for the purpose of programming large software systems involving embedded computers. Because the language incorporates features supporting many modern software engineering techniques, some have claimed that Ada will become widely used in the commercial sector as well as the defense sector, and in traditional data processing applications as well as embedded applications. On February 17, 1983, the standard for the programming language was approved by ANSI. Since then, usable and efficient compilers have been slow to appear, but text books have not. This comparative review deals with five such texts. (The reader should note that evaluation is made in the context of a larger number of texts, some of which are too poor to be considered within this review. In total, at least 50 books on Ada have been published to date.) Table 1: Objective Data Barnes Habermann Booch Gehani Buhr Length (in pages) 367 479 502 325 256 Number of chapters 16 16 24 8 9 Number of exercises 153 87 102 -- 78 Answers given Yes Hints Some No No Bibliography entries -- -- 167 99 10 Version of Language* ANSI 782 ANSI 782 782 *ANSI Standard Ada, approved on February 17, 1983, differs in small but significant details from the July 1982 draft. The updated version of Barnes can be recognized by a green cover and the words Second Edition. The updated version of Booch has the legend Fully Reflects ANSI Standards printed as a banner across the corner of the cover. Because of the emphasis on software engineering implicit within Ada, authors differ in the relative attention that they pay to the language itself versus the use of the language to support good software engineering techniques. The five texts reviewed here vary widely in this regard and, hence, vary greatly in their appropriate usage. Barnes and Buhr can be regarded as the endpoints in the range to be considered; Barnes emphasizes the presentation of the important features of the language, while Buhr subordinates the teaching of Ada to the description of his system design methodology. The other texts occupy the middle ground. Booch is most comprehensive, trying to fully describe the language while also offering an approach (which has become well known) to the object-oriented design of Ada programs. Both the Gehani and the Habermann texts approach Ada from more advanced viewpoints. Gehani emphasizes how the advanced features of the language support top-down programming. Habermann approaches Ada from the vantage point of Pascal in order to illustrate the Ada approach to software engineering issues. Barnes My purpose in writing this book is to present an overall description of Ada. Some knowledge of the principles of programming is assumed. [p. xi] T his text is an eminently readable presentation of the Ada language accompanied by insightful explanations of the purpose of the various features of the language. The text is organized by language features, which enhances the usefulness of the book as a reference source. The order of presentation tends to place the more basic and conventional features of the language at the beginning, building to greater complexity and novelty toward the end. (But Barnes somehow manages to adequately motivate even those language features which are best understood in the context of advanced usage.) The style of writing is clear and even humorous. The usage of examples is both succinct and diverse and serves to illustrate the great power of Ada in modeling the problem domain. The subject is treated in sufficient depth to provide complete, overall coverage without dwelling upon the arcana of the language. The strengths of exposition make this text the choice for classroom presentation of the Ada language. The overall size of the book, the depth of treatment, and the scale of the exercises are appropriate for a short course while the concise, yet entertaining, style encourages appropriate diligence in reading. The insight into the motivation of the language features is a bonus. Habermann The goal of this book is a presentation of the major features of the Ada programming language and their relevance to software engineering…. Our goal is achieved if the examples demonstrate to what extent the Ada language supports good programming style in software engineering. [p. iii] The intended audience for this book is the experienced programmer. This text differs from the others in this review because it is, in effect, a comparative treatment of Pascal and Ada, using dual example programs in the two languages to illustrate software engineering techniques. The development of the example programs provides abundantly exploited opportunities to compare the capabilities of the two languages and to discuss tradeoffs among various Ada approaches. The selection of the design issues and the overall organization of the book seem to be derived from the shortcomings of Pascal. But, for those unfamiliar with Pascal, and who wish to remain so, the Preface promises that “the Ada sections are not dependent on the Pascal sections”; this reviewer, literate but not fluent in Pascal, agrees. The most remarkable feature of this text is its tight organization. Each chapter begins with a brief list of the topics and issues to be discussed, followed by a statement of a problem to be solved and a discussion of the approach. The next two sections incrementally develop Pascal and Ada solutions, respectively, with emphasis upon the software engineering issues raised by the usage of various language features. Finally, complete Pascal and Ada solutions are presented followed by a section of “Reminders” (actually a summary of issues) and a set of problems related to the example programs. An appendix contains apt hints, but not solutions, for the problems. The text covers the Ada language very completely and devotes particular attention to the advanced features of the language. The issue-oriented organization of the chapters will encourage readers to refer back to discussions of engineering tradeoffs but will discourage quick reference for questions regarding language features. The style of exposition is clear but dense, readable but somewhat short of entertaining. The discussions of tradeoffs among various language features and approaches make this the reviewers personal favorite among the Ada texts. The reader may safely ignore the Pascal sections if he or she considers them irrelevant, or may use them as an opportunity to gain additional insight into the software engineering advantages provided by Ada. Table 2: Subjective Ratings Barnes Habermann Booch Gehani Buhr* PurposeUsefulness: Tutorial Excellent Good Good Fair Good Reference Good Fair Fair Poor Fair Readability Excellent Good Good Fair Good Depth OK Deep Varies Varies Deep Innovativeness OK OK High OK High Order of Presentation Good Excellent Fair Fair Good Logic of Progression Good Excellent Good Fair Good Liveliness Excellent Good Good Fair Good Clarity Excellent Good Good Poor Good Examples Excellent Excellent Excellent Fair Good *Unlike the other texts, the Buhr text is tabulated with respect to its value as a textbook for teaching system design rather than the Ada language. Booch This book … has been written to satisfy… three specific goals … intensive study of Adas features …examples of good Ada design and programming style …object-oriented design methodology. [p. xv] The stated goals are certainly ambitious, but this text moves beyond them in an apparent attempt for encyclopedic comprehensiveness. Included are chapters on the “Ada culture,” the “software crisis,” Ada Programming Support Environments (APSE), the software life cycle (complete with illustrations of Ada Lovelaces own life cycle), “trends in DoD software,” and an Ada style guide. In other words, this book is too long. Furthermore, the eight or so chapters of inessential material are (excepting an excellent history of the Ada language) shallow in content and boosterish in tone—indoctrination rather than education. But, setting aside these obvious flaws and concentrating on the heart of the text, the result is more satisfactory. This portion of the book is organized into a series of design examples which serve to illustrate features of the language and to provide opportunities for explaining object-oriented design. The text provides a generally good explanation of language features and often excellent advice on usage and style. On the other hand, the descriptions of object-oriented design seem somewhat facile to this reviewer; I wonder how much retrospective revision went into the “informal strategy” examples to permit easy application of Boochs technique of underlining nouns, verbs, adjectives, and adverbs to provide cues for abstraction. (Advanced page proofs show that the forthcoming second edition of the text adopts a more sophisticated approach to analysis and design.) Nevertheless, the description is valuable in that it provides a starting point for novice Ada programmers attempting to move beyond simple translation of design paradigms borrowed from other languages. If one desires a single text to be used in a course encompassing a software design methodology, as well as the Ada language, then this is probably the text of choice. Otherwise, one of the more succinct books should suffice. Gehani This book is written especially for readers who have a good knowledge of at least one procedural programming language…. The book focuses primarily on the novel aspects of Ada …. The example programs are developed using stepwise refinement. [p. xiii] This text is very selective in its depth of treatment of various features of the language. Features that are deemed “rather common” [p. xiv] in other programming languages are described in a single 73-page introductory chapter while seven additional chapters describe novel features, such as tasking or packages. The result is that the greater part of the language, including important concepts like derived types, is so tersely described in the introduction that even an experienced programmer would have to have read some other text as a prerequisite. To further complicate matters, the style of writing is vague and occasionally misleading, and the presentation is poorly ordered. Unfortunately, the problems continue in some of the subsequent chapters. For example, the chapter on generics fails to adequately differentiate generic parameters from the more usual forms of subprogram parameters. The result is an explanation of generics which cannot be understood unless one already understands the subject. At least one important advanced topic, real arithmetic, is substantially neglected. On the other hand, the treatment of representation specifications and implementation-dependent features is superior to the other reviewed texts, although, incredibly, the author neglects to mention that the features are optional parts of the language. The text includes extended examples which are generally very interesting problems treated in considerable depth and approached well. The value of the examples is substantially diminished by their placement at the end of the chapters. The effect is to emphasize the algorithms applied to solve the problems rather than the language features employed in the solution. The net result is mixed: good for tasks, for example, and poor for packages. A commendable feature of the text is a fine annotated bibliography. Although superior to most available Ada texts, in overall terms this book must be regarded as less desirable than the others which are reviewed here. This is unfortunate because its examples are the most interesting. Buhr The objectives of this book … are …to provide a top-down, design-oriented introduction to Ada …to present … a practically useful, graphical design notation …to arm the novice system designer [for] effectively carrying out the design process. [p. xi] The Buhr text differs substantially from the others reviewed here because its really about system design rather than about Ada. The design technique is a data-driven method using a graphical representation refined from that of Booch and others. The designs are ultimately described using Ada as a design language. The methodology is interesting and appears useful, although it stresses traditional concepts of modularity rather than the more modern concepts of abstraction. Buhrs treatment of the Ada language is deliberately uneven. He emphasizes features related to packaging and concurrency because these are central to his design methodology. Other important areas are ignored or dismissed because they are irrelevant or ill-suited to his design method. It seems clear that his methodology was conceived independently of Ada and is best expressed graphically; in some details, the fit with Ada is forced. The examples are generally well conceived and informative, with the last two chapters set aside for extended examples taken from communications. The evolution of the examples is occasionally hazy. Furthermore, some of the example Ada designs display serious errors in the scope of names. In overall terms, the Buhr text successfully teaches a design methodology which may be useful in designing systems for implementation in Ada or other languages. The book should be regarded not as an alternative to any of the other texts reviewed here, but rather as a possible supplement, particularly for those texts which emphasize the Ada language rather than software engineering. Comparison Some quantitative and evaluative factors are summarized in Tables 1 and 2, respectively. Although most notations are self-explanatory or clear from the preceding individual reviews, some entries require additional explanation. Each text is primarily intended to be tutorial in nature, but their usage for reference is inevitable; the Barnes text is relatively better in both regards. Furthermore, it provides the clearest, most readable, and most entertaining presentation of the material. The Booch and Buhr texts were notably innovative in their approaches to softwaresystems design.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Recommendations