Component-Based Software Engineering

Series
Addison-Wesley
Author
George T. Heineman / William T. Councill  
Publisher
Addison-Wesley
Cover
Softcover
Edition
1
Language
English
Total pages
880
Pub.-date
June 2001
ISBN13
9780768682076
ISBN
076868207X
Related Titles


Product detail

Product Price CHF Available  
9780768682076
Component-Based Software Engineering
72.00 approx. 7-9 days

Description

Written by leading experts from around the world, this book presents the latest concepts and practices in Component-Based Software Engineering (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 students have the background they need to ask good questions and make informed decisions about components.

Table of Contents

(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.

Mikio Aoyama.

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.

Mark Vigder.

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.

Stephen Chow.

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.
References.
About the Authors.
Index. 0201704854T06202001

Back Cover

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:

  • Explains precisely what CBSE is and why it is as important to software development as the assembly line was to the industrial revolution
  • Shows how to avoid common mistakes while succeeding with difficult and important cultural, budgetary, and process issues
  • Presents new CBSE procedures to ensure good software development practices
  • Describes a layered method for designing and building complex distributed component systems using the Unified Modeling Language
  • Covers common component technologies, such as CORBA CCM, Transactional COM+, EJB, and much more
  • Presents the legal and regulatory challenges of marketing and purchasing components

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).

Author

George T. Heineman is an Assistant Professor of Computer Science at Worcester Polytechnic Institute (WPI). He has worked as a Research Scientist at IBM Center for Advanced Studies (Toronto, Canada), Bull Electronics, and AT&T Bell Laboratories. He has consulted for Genetics Institute (Cambridge, MA).

Prof. Heineman received a prestigious National Science Foundation (NSF) Early Faculty Career Development Award (CAREER) in Software Engineering in 1998. This research grant funds the ADAPT project investigating the design of adaptable software components. He also receives funding from the Defense Advanced Research Projects Agency (DARPA). Besides government funding, his lab has received funding and hardware donations from Natural Microsystems and Intellution, Inc.

George Heineman has authored or co-authored over 20 articles and papers on software engineering topics, including component adaptation techniques, component-based software engineering, software development environments, and software process. He also has interests in advanced concurrency control techniques.

Heineman received his Ph.D. (1996) and M.S. (1990) from the Computer Science Department of Columbia University. His advisor was Gail Kaiser, Ph.D. George Heineman earned his BA (1989) in Computer Science from Dartmouth College.

Bill Councill is a partner in Texas Quintessence Corporation. Currently, he is devoting all his time as co-editor of the forthcoming book, Component-Based Software Engineering: Putting the Pieces Together. Previously, he was Systems and Software Process Manager for Mannatech, Inc. His experience includes the development of systems processes and component-based software development processes and methodologies, as well as the following:

  • Business Analysis: including business rules elicitation and management;
  • Requirements engineering, using requirements management applications, use case development, and liaison with the software design team;
  • Configuration Management;
  • Measurement and metrics, using function points and well accepted FP applications;
  • Quality Assurance;
  • Risk Management; and
  • Software Change Impact Analysis.

He has dedicated the last nine years of his life to absorbing and practicing knowledge from the emerging field of software engineering. He has a master's degree in counseling and devoted 18 years of his life to counseling patients in pain and those with difficult psychiatric diagnoses. Additionally, he earned a Juris Doctor degree. After the award of the law degree, Bill worked in the fields of health care consulting and administrative lobbying.

He entered the discipline of software engineering as the founder of PenKnowledge, Inc. and was the originator of Doctor's Office 3.0, a computer-based patient record system. The system incorporated Microsoft Windows for Workgroups, pen computing across a radio frequency LAN, as well as the replication of data among client and server SQL databases. Mr. Councill participated in the slowly emerging standards for computer-based patient record systems by contributing to the work on digital signatures, confidentiality and security, and the functionality of computer-based record-keeping systems.