You are required to read and agree to the below before accessing a full-text version of an article in the IDE article repository.

The full-text document you are about to access is subject to national and international copyright laws. In most cases (but not necessarily all) the consequence is that personal use is allowed given that the copyright owner is duly acknowledged and respected. All other use (typically) require an explicit permission (often in writing) by the copyright owner.

For the reports in this repository we specifically note that

  • the use of articles under IEEE copyright is governed by the IEEE copyright policy (available at
  • the use of articles under ACM copyright is governed by the ACM copyright policy (available at
  • technical reports and other articles issued by M‰lardalen University is free for personal use. For other use, the explicit consent of the authors is required
  • in other cases, please contact the copyright owner for detailed information

By accepting I agree to acknowledge and respect the rights of the copyright owner of the document I am about to access.

If you are in doubt, feel free to contact

Building Reliable Component-Based Software Systems

Publication Type:



Artech House publisher


This is a book about CBSE - Component-Based Software Engineering. CBSE is the emerging discipline of the development of software components and the development of systems incorporating such components. Component-based systems are built by assembling components developed independently of the systems. To assemble components, a proprietary code, which connects the components, is usually needed. This code is often referred to as "glue code". In an ideal world of components the assembly process is smooth and simple: the effort required to obtain the glue code is practically negligible; a system incorporating components knows everything about them - their operational interfaces and their non-functional properties and the components are exactly what the system needs; in short, components can be assembled as easily as Lego blocks. In the real world, the component-based development process is complex and often difficult; systems are built from pre-existing components when appropriate and possible and by developing a new code specific to the particular system. The system may know about the syntax of the operational interfaces of the components, but not necessarily their other properties. Developing the glue code can be costly - it may take a longer time to develop it than the components concerned. Software components are in fact much harder to assemble than Lego blocks: Constructing software systems from components "is more like having a bathtub full of Tinkertoy, Lego, Erector set, Lincoln logs, Block City, and six other incompatible kits - picking out parts that fit specific functions and expecting them to fit together" (Mary Shaw: Architectural Issues in Software Reuse: It's Not Just the Functionality, It's the Packaging, Presentation slides at the Symposium on Software Reusability SSR'95). CBSE tries to make the real world as close as possible to the ideal world of component-based development. There is a long way to go to achieve this goal.In spite of many difficulties, the component-based approach has achieved remarkable success in many domains. A majority of the software programs we use everyday take advantage of component-based technologies. There are however many classes of software in which the utilization of the component-based approach is rudimentary. For these classes of software the specification of "how" is at least as important as the specification of "what". Example of these classes of systems are reliable systems, safety-, business- or mission- critical systems, (also known as dependable systems), embedded systems. The general-purpose component technologies currently available cannot cope with the non-functional (or more correctly extra-functional) requirements of such systems. These additional requirements call for new technologies, new methods and a specific approach of component-based software engineering. This book describes the basic principles, trends in research and practice of CBSE with emphasises on dependable systems. <p><b> Book Organization </p></b> The book is divided into parts, each of which explores a theme through the different chapters. Each part begins with a short introduction presenting its objective and an overview of the chapters. Although the parts and the chapters are relatively independent of each other, several principles apply to all. The first principle is from general to concrete: The book begins with general parts related to software components, proceeds through topics such as processes related to component-based software engineering, continues with domain-specific processes, and concludes with concrete case studies. The second principle is from theoretical to practical issues: While the first chapters discuss theoretical topics such as component specifications, the last chapters give examples of the use of concrete component models. The third principle is from simple to complex. The first chapters discuss the elements of component-based development, the components, the middle parts describe systems built from components, and the final parts give complex examples of real component-based systems.<p><b> The book consists of seven parts: </p></b> <p> Part 1, The Definition and Specification of Components, gives en overall introduction to components and the basic terminology of component-based software engineering. <p> Part 2, Software Architecture and Components, discusses different component models from the point of view of software architecture. <p> Part 3, Developing Software Components, describes a component-based development process and certain methods for the successful design and specification of components. <p>Part 4, Using components, discusses problems related to component evaluation, integration and testing. <p> Part 5, Software Product Lines, gives an overview of Software product line architectures and gives a case study of a component model used in a product line. <p> Part 6, Real-time software components, discusses the principles and methods for building real-time, embedded and safety-critical systems. <p> Part 7: Case Studies, Component-Based Development in Industrial Applications, shows how the methods and theory described previously in the book are implemented or utilized in concrete cases.<p><b>Web site </p></b>The book Web site <a href=""></a> includes set of presentation slides and additional material to support the use of this book in teaching and personal study. Instructors may freely use and modify the presentation material.


author = {Ivica Crnkovic and Magnus Larsson},
title = {Building Reliable Component-Based Software Systems},
isbn = {ISBN 1-58053-327-2},
month = {January},
year = {2002},
publisher = {Artech House publisher},
url = {}