Component-Based Software Engineering (CBSE) is now the way to produce software fast, with less effort, of high quality--not just the first time a product is released but for its entire life. More and more it is being applied to industrial strength and mission-critical software. It is becoming the indispensable element in the mainstream of the software world....The book you are now holding is the first handbook-like volume to present this state of the art.
--Ivar Jacobson, from the Foreword
Building large-scale and complex software systems from available parts is an emerging strategy in industry. Its goals, among others, are to consistently increase return on investment and time to market, while assuring higher quality and reliability than can be achieved through current software development. Written by leading experts from around the world, this book presents the latest concepts and practices in CBSE. While detailing both the advantages and the limitations of CBSE, the book's underlying aim is to define this new field, to frame the discussion, and to ensure that managers and engineers have the background they need to ask good questions and make informed decisions about components.
Beginning with some carefully wrought definitions, the book moves on to cover nearly every aspect of component engineering--from software engineering practices to the design of software component infrastructures, technologies, and systems. The book includes specific examples of CBSE successes and failures, and provides a balanced overview of the complexities of the component-based software life cycle.
This timely and comprehensive volume:
Component-Based Software Engineering is the most definitive collection of expertise ever assembled on this growing technology, and a book that must be read and referred to by anyone working in CBSE or considering doing so. To provide updates to this book, and to stimulate further discussion of the issues it covers, the editors maintain a Web site dedicated to CBSE (http://www.cbseng.com).
(NOTE: Each part concludes with a Summary.)
I. COMPONENT DEFINITON.1. Definition of Software Component and its Elements.
George T. Heineman, William T. Councill. 2. The Component Industry Metaphor.
Hedley Apperly. 3. Component Models and Component Services: Concepts and Principles.
Rainer Weinreich, Johannes Sametinger. 4. An Example Specification for Implementing a Temperature Regulator Software Component.
Janet Flynt, Jason Mauldin.
II. THE CASE FOR COMPONENTS.5. The Business Case for Software Components.
John Williams. 6. COTS Myths and Other Lessons Learned in Component-Based Software Development.
Will Tracz. 7. Roles for Component-Based Development.
Paul Allen. 8. Common High Risk Mistakes in Component-Based Software Engineering.
Wojtek Kozaczynski. 9. CBSE Success Factors: Integrating Architecture, Process, and Organization.
Martin L. Griss.
III. SOFTWARE ENGINEERING PRACTICES.10. The Practice of Software Engineering.
George T. Heineman. 11. From Subroutines to Subsystems: Component-Based Software Development.
Paul C. Clements. 12. Status of CBSE in Europe.
Barry McGibbon. 13. CBSE in Japan and Asia.
IV. THE DESIGN OF SOFTWARE COMPONENT INFRASTRUCTURES.14. Software Components and the UML.
Kelli Houston, Davyd Norris. 15. Component Infrastructures: Placing Software Components in Context.
Steve Latchem. 16. Business Components.
James Carey, Brent Carlson. 17. Components and Connectors: Catalysis Techniques for Defining Component Infrastructures.
Alan Cameron Wills. 18. An Open Process for Component-Based Development.
Brian Henderson-Sellers. 19. Designing Models of Modularity and Integration.
Kevin J. Sullivan.
V. FROM SOFTWARE COMPONENT INFRASTRUCTURES TO SOFTWARE SYSTEMS.20. Software Architecture.
Alexander L. Wolf, Judith A. Stafford. 21. Software Architecture Design Principles.
Len Bass. 22. Product-Line Architectures.
Martin L. Griss.
VI. THE MANAGEMENT OF COMPONENT-BASED SOFTWARE SYSTEMS.23. Measurement and Metrics for Software Components.
Jeffrey Poulin. 24. The Practical Reuse of Software Components.
Don Reifer. 25. Selecting the Right COTS Software: Why Requirements are Important.
Cornelius Ncube, N.A.M. Maiden. 26. Build vs. Buy: A Rebuttal.
George T. Heineman. 27. Software Component Project Management Processes.
William T. Councill. 28. The Trouble with Testing Software Components.
Elaine Weyuker. 29. Configuration Management and Component Libraries.
Hedley Apperly. 30. The Evolution, Maintenance and Management of Component-Based Systems.
VII. COMPONENT TECHNOLOGIES.31. Overview of the CORBA Component Model.
Douglas C. Schmidt, Nanbor Wang, Carlos O'Ryan. 32. Transactional COM+: Designing Scalable Applications.
Timothy J. Ewald. 33. The Enterprise JavaBeans Component Model.
David Blevins. 34. Bonobo and Free Software Gnome Components.
Michael Meeks. 35. Choosing Between COM+, EJB, and CCM.
Andy Longshaw. 36. Software Agents as Next Generation Software Components.
Martin L. Griss.
VIII. LEGAL AND REGULATORY.37. CBSE as a Unique Engineering Discipline.
John Speed, William T. Councill, George T. Heineman. 38. The Future of Software Components: Standards and Certification.
Janet Flynt, Manoj Desai. 39. Commercial Law Applicable to Component-Based Software.
Stephen Chow. 40. The Effects of UCITA on Software Component Development and Marketing.
IX. CONCLUSION.41. Summary.
William T. Councill, George T. Heineman. 42. Future of CBSE.
William T. Councill, George T. Heineman, Jeff Poulin. Appendix A. Glossary.
About the Authors.