Computing Reviews

Development of distributed software
Shatz S. (ed), Macmillan Publishing Co., Inc.,Indianapolis, IN,1993.Type:Book
Date Reviewed: 08/01/94

Software development for distributed computer systems has now become an important topic that deserves dedicated treatment in a textbook for advanced undergraduates, beginning graduates, and software professionals. That is the purpose of this book (from the preface).

I have taught such an advanced undergraduate (senior level) course in the past and wished that such a book was available to my students as a reference. While chapters 2 through 7 each end with a reasonable selection of problems to give the students exercises in the application of the concepts of each chapter separately, the book contains no large semester project weaving through its seven chapters. I like to give large team projects to students in my course to help emphasize that all the topics they are studying play a role in these projects. Such projects can also help bring a unified theme of distributed software engineering to the class. With this form of the book, a beginner may sense a lack of connection between the various concepts presented in different chapters. Since this book grew out of a collection of papers reprinted in an IEEE Computer Society tutorial book [1], the lack of connection among the concepts in various chapters is understandable, although not desirable. Perhaps, in a later edition, a unified theme can be provided via a semester project.

The first chapter gives a brief introduction to the waterfall model for the software life cycle, depicting only four phases: requirements specification and analysis, design, implementation, and testing. Teachers who wish to include a significant amount of material on issues like delivery and training, maintenance, project management, and models other than the classical waterfall model (such as rapid prototyping) need to find another book. This book does not address such issues. It does discuss cost and constraint issues during the design phase, however.

Chapter 2 provides an overview of distributed computing concepts at a level suitable for a beginner. It may be necessary to supplement this book with additional reference material for greater depth on these topics. Chapters 3 through 7 examine the software development aspects of distributed computing using the waterfall model. Chapter3 covers requirements specification models and discusses Petri nets and temporal logic. Chapter 4 examines task partitioning and task allocation and their relevance to cost and constraints. Chapter 5 focuses on certain aspects of CSP, Ada, Concurrent C, SR, and Linda that relate to concurrency and communication. Chapter 6 considers static analysis of concurrent systems, while chapter 7 introduces dynamic testing and debugging for distributed systems.

Among the best features of the book are its readability and suitability for a beginner in distributed computing and for a serious reader for self-study. The book has a reasonable author index and a separate subject index as well as an extensive bibliography. The length is just about right for a one-semester introductory course.


1)

Shatz, S. M. and Wang, J. P. (Eds.) Distributed-software engineering. IEEE Computer Society Press, Washington, DC, 1989.

Reviewer:  Jagdish C. Agrawal Review #: CR115087

Reproduction in whole or in part without permission is prohibited.   Copyright 2024 ComputingReviews.com™
Terms of Use
| Privacy Policy