Book Review Department Editor Warren Keuffel
Software Engineering Development and Solutions
Paolo Donzelli
Strategic Software Engineering: An Interdisciplinary Approach by Fadi P. Deek, James A.M. McHugh, and Osama M. Eljabiri, Auerbach, 2005, ISBN 0-8493-3939-1, 360 pp., US$79.95.
The title, Strategic Software Engineering: An Interdisciplinary Approach, drew me in—finally, a book that promises to go beyond software engineering’s technicalities to highlight its strategic, interdisciplinary character.
Fadi P. Deek, James A.M. McHugh, and Osama M. Eljabiri gradually acquaint readers with software engineering, splitting the book into three main sections. The first deals with the software development process and its models. In five chapters, the authors describe the main software development paradigms (such as the waterfall, spiral, and cleanroom models), including their rationales, evolution over time, criticalities, and assessment strategies. Although some of their organizational choices are debatable (why put case tools and object-oriented models in the same chapter?), the authors describe software models in great detail with plenty of references to help the interested reader find additional information.
Section 2 discusses the complexity of the problems software engineering aims to solve, including bridging the gap between business problems and their solutions. A well-paced discussion shows readers that software engineering isn’t just about technicalities. Although software is important to tackling business problems, you’ll need a comprehensive, interdisciplinary, enterprise-wide problem-solving framework to deal with business problems and to design software systems that suit the organization’s actual needs. The authors support their presentation with many references, but they still miss important research in this area, particularly concerning business modeling and requirements engineering. Because real-world problems are too complex for a fixed theory, software engineering must be a dynamic, adaptive structure that encompasses methods and approaches from various disciplines.
In the last section, the authors build on the previous chapters to analyze business development’s human and economic factors before describing several specialized development processes. After introducing the pros and cons of specialized versus generic system development processes, the authors briefly introduce real-time, pervasive, Web-based, and security-driven software development), highlighting main characteristics and capabilities.
Building on numerous references, this encyclopedic work provides a detailed overview of software engineering that can help students quickly grasp the main issues and concepts. Nevertheless (or perhaps for this reason), Strategic Software Engineering is sometimes tedious, with too much repetition. Above all, it sometimes fails to help the reader better understand software engineering’s strategic, interdisciplinary nature. From this perspective, the book doesn’t distinguish itself from other works.
Paolo Donzelli is a visiting research scientist at the University of Maryland’s Computer Science Department and the head of the Research and ICT (Information and Communication Technologies) Division of the Innovation and Technologies Department of the Office of the Prime Minister in Italy. Contact him at donzelli@cs.umd.edu.