Software Engineering with Ada, Third Edition
Authors: Grady Booch, Doug Bryan and Charles Petersen
Software Engineering with Ada, Third Edition
by Grady Booch, Doug Bryan and Charles Petersen
ISBN: 0-8053-30608-0, 1994, 224 pages, Softcover
Available April, 1994
Published by Addison-Wesley Publishing Co.
Posted on the Internet 05 May 94
PREFACE
Ada is a general-purpose programming language with considerable
expressive power. It was developed at the initiative of the
United States Department of Defense in response to the crisis in
software development. Ada was designed specifically for the
domain of large, real-time, embedded computer systems, although
it will certainly have an impact on many other application areas.
Unlike most other production high-order languages, such as
FORTRAN, COBAL or even Pascal, Ada not only embodies may modern
software development principles but also enforces them. The
greatest benefits in this common high-order language effort will
thus be gained from the application of good software development
methods that are facilitated by using Ada as the language of
expression. As a result, the introduction of Ada represents a
tremendous opportunity for improvement in the clarity,
reliability, efficiency, and maintainability of software systems.
Ada is more than just another programming language, however.
Along with the Ada Programming Support Environment, it represents
a very powerful facility that helps us understand problems and
express their solutions in a manner that directly reflects the
multidimensional real world.
THE THIRD EDITION OF SOFTWARE ENGINEERING WITH ADA
Ada has truly entered the mainstream of computer science. The
third edition of this book was written in response to the
language's growing use and to reflect the changing methods of
problem solving. The third edition is, if you will excuse the
pun, a repackaging of the second edition. Chapters have been
combined, rewritten, and rearranged to better reflect today's way
of thinking. This edition includes expanded code segments with
more complete programs written in a more modern style. Most
importantly, this third edition retains an emphasis on Ada's
effective use in a software engineering context.
This book thus serves as a complete ADA reference that is
appropriate for the programmer who wishes to create Ada systems
and the manager who needs to understand how to apply this
powerful tool. The book presumes an understanding of the basic
principles of programming.
GOALS
This book is not just another introduction to Ada. It has been
written to satisfy three specific goals:
* To provide an intensive study of Ada's features
* To motivate and provide examples of good Ada design and
programming
* To introduce an object-oriented development method that
exploits the power of Ada and, in addition, helps manage the
complexity of large software systems
In short, this book not only describes the details of Ada
programming, but also suggests ways in which to best apply the
features of the language in the creation of software systems.
CONTENT FEATURES
Structure Many texts present the detail of a programming language
only from a syntactic or semantic perspective. In this book, we
start with a software design approach and then introduce Ada from
the top down in the context of good programming methods.
The book is divided into six packages, each of which
contains three to four logically related chapters. The first
package begins with a brief look at the Ada problem domain, and
includes an examination of Ada's development history to provide a
perspective on some of the features on the language. The primary
objective of this package is to discuss the principles of
software engineering as it relates to object-oriented
development. Package 1 concludes with an overview of the
language.
The second package contains the first two of five design
problems (one of which is revisited and expanded later), as well
as a discussion of abstract data types, and details of the data
types provided in the Ada language.
The third through the sixth packages provide a detailed
presentation of Ada built around five complete design examples.
Each problem is increasingly more complex, and together they
require the application of almost every Ada feature. In
addition, these problems provide a vehicle for demonstrating the
object-oriented development method, along with a programming
style that emphasizes understandability. The chapters
encompassing these five large examples present a detailed
discussion of Ada's constructs. The sixth package also includes
a discussion of the problems associated with very large
programming systems and presents the last of the design problems.
Resources
A set of exercises for students is provided at the end
of most of the chapters. Difficult problems are marked with a
star (*). In addition, the book concludes with six appendices
that provide further technical details of Ada. The lettering of
the appendices is arranged to more closely align with LRM
(Language Reference Manual) The first three describe the
predefined elements of the language, and the specification for
all predefined packages including those associated with all
aspect of input and output. The next two appendices contain a
summary style guide and comprehensive, easy-to-read, alphabetized
syntax charts. The last appendix previews Ada 9X, including the
major proposed changes to the language, such as:
* Full implementation of object-oriented run-time
polymorphism
* Tree structure subunit library for easier management of
large programming systems
* Improvements in real-time problem-solving mechanisms
* Annexes to the language for special problem areas.
Course Organization This is a "generic" book in the sense that it
can be used at a number of levels. Using the second edition, the
material has been taught in a one-semester course (40 one-hour
lessons), as a five-day seminar, and as a four-week, all-day
intensive program. The following outline represents the
organization of materials from this third edition with the same
goals in mind.
Lesson 1 Chapter 1: Introduction
Lessons 2-3 Chapter 2: Software Engineering
Lessons 4-5 Chapter 3: Object-Oriented Design
Lessons 6-8 Chapter 4: An Overview of the Language
Lesson 9 Chapter 5: The First Design Problem:
Document Concordance
Lessons 10-12 Chapter 6: Data Abstraction and Ada's Types
Lesson 13 Chapter 7: The Second Design Problem:
Database Problem
Lessons 14-16 Chapter 8: Subprograms
Lessons 17-18 Chapter 9: Expressions and Statements
Lessons 19 Chapter 10: The Second Design Problem
Lessons 20-21 Chapter 11: Packages
Lessons 22-23 Chapter 12: Generic Program Units
Lesson 24 Chapter 13: The Third Design Problem:
Generic Tree Package
Lessons 25-27 Chapter 14: Tasks
Lessons 28-29 Chapter 15: Exception Handling
Lessons 30-31 Chapter 16: Machine Representations
Lesson 32 Chapter 17: The Fourth Design Problem:
Lessons 33-34 Chapter 18: Input/Output
Lessons 35-36 Chapter 19: The Software Life Cycle with Ada
Lessons 37-38 Chapter 20: Programming in the Large
Lesson 39 Chapter 21: The Fifth Design Problem:
Heads-Up Display
Lesson 40 Appendix F: Ada 9X
In addition, the following structure is appropriate as a brief
introduction to the application of Ada for program managers:
Block 1 Chapter 1: Introduction
Block 2 Chapter 2: Software Engineering
Chapter 19: The Software Life
Cycle with Ada
Block 3 Chapter 3: Object-Oriented Design
Chapter 4: An Overview of the Language
Block 4 Chapter 21: The Fifth Design Problem
Chapter 20: Programming In the Large
Appendix F: Ada 9X
Reliability
The Reference Manual for the Ada Programming Language
was issued jointly by The Department of Defense as a military
standard and by the American National Standards Institute as
ANSI/MIL-STD-1815A, on February 17, 1983. All material in this
book meets that standard. To ensure their accuracy, all of the
design examples and code fragments in the book have been tested
using a validated Ada computer.
THE AUTHOR TEAM
This edition is the result of the cooperative efforts of three
people: Grady Booch, Doug Bryan, and Charles G. Petersen. The
combined efforts of these three authors and teachers have
influenced many thousands of programmers and managers over the
past 10 years.
Grady Booch, a recognized expert in Ada, has taught at the
United States Air Force Academy and has conducted seminars
throughout the United States and in Europe. He has presented the
technical details of the language to groups at a number of levels
- undergraduates, graduate students, nonprogrammers, professional
programmers, and program managers. Through this experience, he
has tested various methods of presenting language features,
observed their successes and failures, and heard the real needs
of practicing software developers.
Doug Bryan, from Stanford University, has become a household
name in the Ada community and is considered an "Ada lawyer" by
many. He has gained his notoriety through the "Dear Ada" column
that is a regular feature of Ada letters, published
bimonthly by the Association of Computer Machinery's Special
Interest Group for Ada (SIGADA).
Charles G. Petersen, a professor at Mississippi State
University with degrees in engineering and computer science, has
10 years of engineering experience and 20 years of teaching
experience at the university level. He has been involved in
teaching Ada for 10 years and has published three other Ada
textbooks, including Ada: Introduction to the Art and Science of
Programming with Walter J. Savitch, and File Structures with Ada
with Nancy E. Miller.
ACKNOWLEDGMENTS
We wish to thank a number of people who helped us during the
preparation of this manuscript. Charles Petersen has played a
very valuable role in bringing this project to a close and in
preparing the manuscript for production, and we wish to
especially acknowledge his contribution.
We also want to thank the many reviewers who provided us
with guidance during this edition as well as in the earlier
editions. They include Russell Abbott, Gayle Adams, Christine
Ausnit, Jack Beidler, Ben Brosogol, Kenneth Bowles, Doug Bryan,
Luwanna Clever, John Cupak, Larry Druffel, Michael Feldman, Gerry
Fisher, John Foreman, Ray Ford, Dean Gonzalez, John Goodenough,
Samuel S. Harbaugh, Hal Hart, Edward Lamie, Akhtar Lodger,
Charles McKay, Mike Murphy, Elliott Organick, Carol Righini,
Bryan Scharr, James Schnelker, Larry Schwartz, Sally Shepherd,
Robert Shock, John Showalter, and John Warner.
* Available wherever fine technical books are sold. Please consult
the bookstore listing for a location near you.
* For direct orders to Addison-Wesley, please call 1-800-822-6339
and have your credit card handy.
* To be included on the Addison-Wesley on-line information server,
please send an email message to awbook@aw.com. The subject line
should be 'information' and the body of the message should be
'send information'. Adding your name to this listing will enable us
to keep you informed of all new titles.