Software components are increasingly central to efficient, cost-effective software development. In this book, the world's leading experts on component software development come together to present the field's state of the art, and to offer new insights into the key challenges of component architecture and reuse. With original contributions by leaders such as Ivar Jacobson, Martin Griss, Len Bass, Paul Clements, Don Reifer, and Will Tracz, this carefully edited book is the "first word" on components: a tool for helping practitioners get the most out of all their component-based resources. It offers new insight for deciding whether and how to implement component-based development strategies; as well as a clear understanding of the obstacles to successful component development, and "best practices" responses. The contributors review diverse approaches to component development, present state-of-the-art processes for building component-based systems, and introduce new research directions that will impact component development in the coming decade. For software developers, designers and architects; business analysts; technology executives; computer science and software engineering researchers; project managers; QA specialists, and other professionals.
(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.