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 http://www.ieee.org/web/publications/rights/copyrightpolicy.html)
- the use of articles under ACM copyright is governed by the ACM copyright policy (available at http://www.acm.org/pubs/copyright_policy/)
- 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 webmaster@ide.mdh.se
Building Reliable Component-Based Software Systems
Publisher:
Artech House publisher
Abstract
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="http://www.idt.mdh.se/cbse-book">www.idt.mdh.se/cbse-book</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.
Bibtex
@book{Crnkovic346,
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 = {http://www.es.mdu.se/publications/346-}
}