Computing Reviews

Object-oriented software engineering
Jacobson I. (ed), ACM Press,New York, NY,1992.Type:Book
Date Reviewed: 06/01/93

Jacobson brings several years of software development experience to his presentation of a new model of object-oriented software development. An industrial model of software development called Objectory, developed by L. M. Ericson, has been used on several projects of varying size (from 3 to 50 person-years). Based on his experience of using this method on about 15 projects, Jacobson presents a simplified version of this method and its fundamental concepts, which he calls object-oriented software engineering (OOSE). I strongly recommend this book to software developers. It outlines a complete object-oriented development method that has been proven in practice. Most other texts emphasize either analysis and design or coding and implementation. This book gives a single object-oriented methodology that connects all stages of the software development life cycle.

Jacobson’s goal is to “present a coherent picture of how to use object-orientation in system development so as to make it accessible to both practitioners in the field and to students with no previous knowledge of system development.” The book succeeds in the first goal but fails in the second. A significant amount of knowledge of software engineering and object orientation is required to understand the book.

The book is scholarly and useful to teachers and researchers in software engineering because of its extensive references to recent papers in object orientation and software engineering. These references, however, are frequently used in place of explanation. In some cases, the continuity of the text depends on the reader being acquainted with the paper. This use of references harms the readability of the text.

OOSE is a new methodology that places emphasis on the interaction of the user with the system and on the problem domain. The user’s interaction with the system is modeled in what Jacobson calls “use cases.” These use cases, in an analysis model, specify all user interactions with the system. They then guide the identification of objects in the analysis model. Jacobson considers it an advantage that his system has different types of objects--control objects, entity objects, and interface objects. The developer describes all those who interact with the system actors and describes scenarios (use cases) of the actors’ interaction with the system and the expected results. This methodology has the distinct advantage of leading to a model that describes user requirements.

The book consists of three sections: an introductory section, a concepts section, and an application section. Five introductory chapters are designed as an introduction to systems development. They cover systems development in industry, the system life cycle, object orientation, object-oriented systems development, and object-oriented  programming. 

Chapters 6 through 12 detail the concepts of OOSE. The organization of this section is peculiar. Chapter 6 introduces the fundamental concepts of OOSE, but the reader is told that this chapter “may be skipped on the first reading.” Next, chapters 7 and 8 explain Objectory’s analysis method and construction method. The construction method includes the development of design and implementation models. These chapters are followed by a chapter on software components; this subject should be included in the analysis and construction chapters. The development of reusable software components is not an afterthought in the development of software systems. The section ends with a chapter on testing.

The third section of the book consists of two case studies, a chapter on managing object-oriented software engineering, and a chapter contrasting OOSE with five other object-oriented methods. The case studies are useful. They help provide a sense of closure on the system Jacobson describes. This sense of closure is missing from several other texts on object-oriented methodology. Other texts tend to limit their discussion to small examples or fail to integrate the different steps in their development methodologies. Jacobson uses two large systems and shows how the various levels of the methodology are related. One case outlines the analysis and construction phases for a warehouse management system. The other case is a real-time telecommunications switching system. I was left with some misgivings about the complexity of this methodology because the examples use a depth-first examination of the model, which hides some of the significant dependencies between different levels of different models. The last chapter, which contrasts several object-oriented methodologies with OOSE, seems strained. It consists of a series of two- or three-page comparisons of OOSE with other well-known object-oriented methodologies. This material is of little help to students with no previous knowledge of systems development, and it is not complete enough to be convincing to the experienced developer.

OOSE’s advocacy of use cases in design looks fruitful, and some elements of the methodology are presented clearly, with examples. OOSE is a very different approach to object orientation. It emphasizes functionality and process as the starting point and is a functional model that incorporates objects. This approach is different from other methodologies, which start with objects and then derive processes. OOSE introduces three types of objects--interface objects, control objects, and entity objects--each requiring their own types of attributes and associations. Thus, each requires separate notation and diagrams. The control structures and documentation required to control the development process are not fully shown.

This book is an excellent introduction to object-oriented software development. It is filled with clear examples of the application of object orientation to all levels of software development. The section on management will be welcomed by anyone trying to undertake any new development methodology. It is unfortunate that the book is marred by a significant number of typographical errors.

Reviewer:  D. Gotterbarn Review #: CR115669

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