Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Invasive software composition
Abmann U., Springer-Verlag New York, Inc., Secaucus, NJ, 2003. 320 pp. Type: Book (9783540443858)
Date Reviewed: Nov 11 2003

Invasive software composition describes the basic ideas behind composition system, or Compost, software. This book is a monograph addressed to research workers and developers in a specialized area of component-based software systems. It should also be of special interest to post-graduate students in this field, and of some general interest to advanced undergraduate students of software engineering. The book is relatively slim, and apart from the introductory chapters (1 through 3), makes for rather heavy reading. However, it does capture the more stable aspects of Compost, and should be a valuable reference in the area of component-based software development.

Chapter 1 explains how invasive software composition (ISC) can help software development. It starts by introducing the concepts of composition, reuse, component models, composition techniques, and composition languages. In particular, invasive composition, fragment boxes, hooks, and composers are informally defined. The use of the greybox instead of the blackbox approach in invasive composition to facilitate reuse is explained. Unix, CoSy, and aspect-oriented programming (AOP) illustrate the progression of these concepts. A brief outline of the rest of the book then follows. The Compost Java-based library is given as a major example of the implementation of ISC. It is used to illustrate all of the succeeding chapters. Chapter 2 is a review of the problems encountered in software composition. The requirements of component models, composition techniques, and composition languages are discussed at length. Chapter 3 maps the progress from modular to composition systems through object-oriented and architectural systems. Progress in language support for component-based software is reviewed. Chapter 4 introduces invasive software composition, forming the essence of the book. It explains how invasive software composition involves program transformation of components embedded in the reuse context. The concept of fragment boxes, hooks, and composers is discussed at length. Chapter 5 discusses issues related to making invasive composition reliable. It has the semblance of formality, rather than rigor. Chapter 6 is concerned with generalized parametrization. It deals with the binding of declared hooks, generic types, identifiers and statements, and instantiation methods for generic templates. These form the program elements for invasive frameworks.

Chapter 7 discusses the role of hooks in the connection architecture. The issue of separating topology and the transfer aspects of connections (concerned with binding the communication partners on the one hand and rewriting in terms of concrete connections on the other) are explained. The topic of reuse of architectures is then discussed. Chapter 8 deals with the connection between inheritance and hook extensions. Hooks are regarded as providers of a fine-grained basis for inheritance, facades, generic classes, and frameworks, thereby unifying these disparate issues in software composition. The naturalness of the connection between inheritance and delegation from this standpoint is emphasized. Chapter 9 describes how invasive composers enable view-based construction of software. It explains how a variety of extensions of fragment boxes led to view-based programming. The issue of maintaining reliability of such extensions is discussed. The implication of such extensions for intrusive data structures and program optimizations is also given. Chapter 10 deals with aspect composition as distribution of aspect boxes. Aspect weaving at various levels is related to software composition and distribution. Soundness of aspect weaving and distribution is discussed by considering general issues of aspects and aspect weaving languages. Chapter 11 concludes with a brief account of the state of the progress in invasive composition, emphasizing its achievements and speculating about the future direction of component-based software development.

Separate appendices deal with programming languages and compilers, the production cell (the running case study example used in the book), a facet classification of hooks, the structure of Compost in unified modeling language (UML), and a legend of the box graphics used in the book. Also provided is a valuable cross-reference glossary. The index, though brief, is adequate, and there is a comprehensive reference list.

One endearing feature of the book is the proliferation of examples that illustrate the concepts discussed. However, there seems to be a marked paucity of such examples in the later, more difficult chapters. Also, many such examples often tended to increase the conceptual complexity, thereby obscuring rather than clarifying the concepts they were meant to illustrate. By aiming for comprehensive coverage as well as conciseness, the author seems to have sacrificed clarity and readability. Only readers well acquainted with the specialist area described in the book will find it useful. It is at best a difficult reference book. A note on the stylistic conventions followed (for instance, what it means when words are italicized) is in order, and should have appeared in a preface.

Reviewer:  A. Amatya Review #: CR128542 (0403-0267)
Bookmark and Share
 
General (D.1.0 )
 
 
Java (D.3.2 ... )
 
 
Modules And Interfaces (D.2.2 ... )
 
 
Reusable Software (D.2.13 )
 
Would you recommend this review?
yes
no
Other reviews under "General": Date
Problems in programming
Vitek A., Tvrdy I., Reinhardt R., Mohar B. (ed), Martinec M., Dolenc T., Batagelj V. (ed), John Wiley & Sons, Inc., New York, NY, 1991. Type: Book (9780471930174)
Aug 1 1992
KNOs: KNowledge acquisition, dissemination, and manipulation Objects
Tsichritzis D., Fiume E., Gibbs S., Nierstrasz O. ACM Transactions on Information Systems 5(1): 96-112, 1987. Type: Article
Nov 1 1987
Programmer perceptions of productivity and programming tools
Hanson S. (ed), Rosinski R. Communications of the ACM 28(2): 180-189, 1985. Type: Article
Jul 1 1985
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy