BOOKSHELF
Book Reviews Online Starting this year, you’ll find additional IEEE Software book reviews online. Our Web site currently features “Understanding the Internals of a Real-Time Kernel,” by Vinayak Nittur Srikantha, a review of MicroC/OS-II: The Real-Time Kernel by Jean J. Labrose, R&D Books, 1998, ISBN 0879305436, 524 pp. US$69.95.
computer.org/software/books.htm
is perhaps the biggest organizational change the authors prescribe—moving away from the classic matrix toward separate organizations for product development and project engineering. The first organization would define families of programs and create facilities needed for rapidly producing family members, and the second one would rapidly produce family members using those facilities. The FAST process Weiss had already introduced a family-oriented software production process at AT&T in 1992, though its roots can be traced back to the 1970s. Called the Family-Oriented Abstraction, Specification, and Translation (FAST) process, it is now evolving toward various products within Lucent. Weiss and Lai describe the entire process—starting with roles, workflow, work products, and so forth. However, they leave out of this book certain process elements that would have provided more complete and practical insight. For instance, they reduce the entire configuration management process, with its many impacts on successful product-line management, to a few scattered paragraphs. The book nevertheless provides good practical insight, which can be used for other products. For example, one factor for designing maintainable and customizable software systems is to choose the right abstractions to represent the system in its various stages. The authors provide an example that readers can follow throughout the book to see how to gradually expand a system with the key principles in mind such as identifying similarities and designing for change. A CD-ROM accompanies the book, 106
IEEE SOFTWARE
January/ February 2001
providing direct access to the book’s contents and the entire process model. Unfortunately, the install wizard didn’t get the browser installed on my Windows NT (version 4.0). Browsing still works for the process model and book contents with any commercial browser. A worthwhile read This book provides a good overview on the product-line concepts and their implementation, but its discussion of modeling the entire FAST process is too detailed and could have been left to the CD-ROM. In addition, it insufficiently covered practical technical needs that explain in detail what to do and why. The authors could have enriched the book by sharing experiences of what works—or of what doesn’t work if certain conditions are not met. Regardless, the book is certainly worth reading, as it is the only comprehensive book built on industrial experiences. Christof Ebert is Alcatel’s director of software coordination and process improvement (based in Paris, France). Contact him at
[email protected].
As long as the development group thinks they must finish and ship one product in isolation before moving on to the next, they are doomed to repeat their mistakes.
Design Patterns for the Enterprise Peter Houlihan Enterprise Modeling with UML: Designing Successful Software Through Business Analysis by Chris Marshall, Addison-Wesley Longman, Object Technology Series, Reading, Mass., 1999, ISBN 0201433133, 259 pp., US$44.95. Enterprise Modeling with UML presents a core set of very useful design patterns for those involved in modeling enterprise-wide systems for commercial organizations. Unfortunately, its lack of focus, poor structure, and sloppy editing are annoying distractions. Design patterns Chris Marshall bases the design patterns he presents around the concept of modeling an enterprise using a strategic model hierarchy of purpose, processes, entities, and organization. He develops a core design pattern to suit many commercial enterprises as well as detailed patterns for each level of the strategic hierarchy. He covers mainly the static elements of patterns, although he does consider some of the patterns’ more dynamic parts. Because I’m interested in the development of workflow and work-order management software components, I thought the processes discussion was extremely useful. Marshall takes us through components of the process pattern, explaining why particular parts are represented as they are. The elements of the process patterns developed are as follows:
BOOKSHELF
■
■
■
The basic process class and extensions to that class—for example, cash sale and purchase order processes. Class structures for managing work in process, which deal with how business transactions are managed over long periods of time. Structures for process folders. Process folders hold the accumulated support material (documents, emails, and so forth) as processes move through the process stages.
Those more involved in modeling systems that aid in managing an organization’s strategic direction will find the chapter on modeling organizational purpose more interesting. It starts with a metamodel of the purpose components, which include purpose, objective, result, and value. It then builds a set of patterns to model how you capture and manage purposeful activities. Marshall discusses a series of patterns, including the generic purpose pattern, financial ledgers, data warehousing, scheduling with work breakdown structures, production planning, and contract management. Both the process and purpose patterns draw heavily on the concepts presented in the chapter on entities. This chapter succinctly describes the major entities found in any organization and presents several patterns for modeling these entities in a flexible way. The generic entity model uses the concept of separating the properties, roles, and values associated with entities. Some of the example patterns discussed include customer, employee, asset, human resource, product, account, and address patterns. This chapter contains some extremely useful ideas. Perhaps the designs would not stand the test of a large-scale commercial environment, but they are a good starting point for those just embarking on the development of a major commercial system. The chapter on organizational modeling seemed impractical and out of place, discussing topics such as potential organization structures (hierarchical, network, and autonomous)— topics better left to a book on man-
agement theory. However, this chapter is likely to interest people involved in departments of large organizations— ones with titles such as the Department of Strategy and Direction. It will help people who produce copious reports that attempt to model the complete interaction between all the bits of the organization—people who really add extremely little bottom-line value to their organizations. Marshall brings together the patterns presented in the purpose, process, and entity strategic hierarchy areas in an example total enterprise model for a simple system. Perhaps he agrees with me on the usefulness of the organization elements of the model, as he does not introduce these in the example. Structural failings Many structural failings undermine this book’s value by making it a hard slog to get through the whole thing. Who is Marshall’s target audience? He states that he aims the book at business engineers but that it might also be useful to business people and technologists. However, this doesn’t leave much room for anyone else involved in a commercial enterprise. In reality, a very small set of people will find this book useful— those who are designing either total or partial elements of an enterprise software system for a commercial organization. That’s not too hard to say, so why didn’t the publishers put that on the cover?
If you are involved in the design of enterprise systems for a commercial organization, there are many good ideas to draw on in this book.
What is Marshall really trying to say? I’ve used the term design pattern throughout this review, yet it doesn’t appear once in the book. Marshall jumps into showing us models for elements of organizations without explaining the end goal. This annoyed me—it made me think he just started writing and let the subject of the book sort itself out. A more structured approach providing a solid plan of the book’s intent would have made it much more readable. The use of UML in the title is disingenuous. Don’t buy this book if you hope it will expand your understanding of how to use UML. There is a very brief introduction to UML, but this is not a training manual. Indeed, UML is used throughout the book as it should be—as the lingua franca of the software development world. The fact that UML describes design patterns is incidental to the whole thrust of the book. XML is also used briefly in one section (it’s surprising that this was not incorporated into the subtitle given its current fadish prominence). Next, the use of the side highlights doesn’t work. I love technical books with side highlights that summarize the main concepts because they let me skim the content, searching for the bits that interest me. This book has side highlights on every paragraph that are almost universally useless and sometimes misleading. Finally, the poor editing and lack of attention to detail is distracting. I have found this in other books in the Three Amigos Object Technology Series, and it is disappointing. It sullies the overall good impression of the series. The bottom line If you are involved in the design of enterprise systems for a commercial organization, there are many good ideas to draw on in this book. If you don’t expect the UML to be perfect and ignore the structural defects, you will find it a useful addition to your store of good design ideas.
Peter Houlihan is a senior consultant at Back to Oz Pty.
Contact him at
[email protected]. January/February 2001
IEEE SOFTWARE
107