Items related to Building Reliable Component-Based Software Systems

Building Reliable Component-Based Software Systems - Hardcover

Crnkovic, Ivica; Larsson, Magnus

 
9781580533270: Building Reliable Component-Based Software Systems

Synopsis

CBSE (component-based software engineering) is the emerging discipline of the development of software components and systems incorporating such components. This resource provides a practical guide to building reliable component-based software systems. It aims to give software-development professionals the guidance they need to effectively manage complex software through the integration of pre-existing components. Moreover, the book discusses the benefits and risks to be considered when developing components and systems using components. This hands-on reference describes technical and non-technical aspects of systems development using components and component development. It focuses on real-time systems, employing case studies using component-based approaches in the development of industrial automation systems. This book should be of interest to: software developers; project managers; researchers; and professors and students interested in component software engineering.

"synopsis" may belong to another edition of this title.

From the Author


Preface

This is a book about component-based software engineering (CBSE). 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 that connects the components is usually needed. This code is often referred to as "glue code". In an ideal world of components the assembly process would be smooth and simple. The effort required to obtain the glue code would be practically negligible; a system corporating components knows everything about them – their operational interfaces and their nonfunctional 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 preexisting 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 omponents, but not necessarily their other properties. Developing the glue code can be costly - it may take a longer to develop the glue code 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, Lincoln Log, 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 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. We have 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. Many classes of software, however, take a rudimentary approach to component-based methods. For these classes of software the specification of "how" is at least as important as the specification of "what." Examples of these classes of systems are reliable systems; safety-, business-, or mission critical systems (also known as dependable systems); and embedded systems. The general-purpose component technologies currently available cannot cope with the nonfunctional (or more correctly extrafunctional) requirements of such systems. These additional requirements call for new technologies, new methods, and the specific approach of CBSE. This book describes the basic principles and the trends in research and practice of CBSE with an emphasis on dependable systems.

Organization of This Book

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 specific. The book begins with general parts related to software components, proceeds through topics such as processes related to CBSE, continues with domain-specific processes, and concludes with concrete case studies. The second principle is from theoretical to practical issues. Although 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.

The book consists of seven parts:

- Part 1, The Definition and Specification of Components, gives an overall introduction to components and the basic terminology of component-based software engineering.

- Part 2, Software Architecture and Components, discusses different component models from the point of view of software architecture.

- Part 3, Developing Software Components, describes a component-based development process and certain methods for the successful design and specification of components.

- Part 4, Using Software Components, discusses problems related to component evaluation, integration, and testing.

- Part 5, Software Product Lines, provides an overview of software product line architectures and gives a case study of a component model used in a product line.

- Part 6, Real-Time Software Components, discusses the principles and methods for building real-time, embedded, and safety-critical systems.

- Part 7, Case Studies: CBD in Industrial Applications, shows how the methods and theories described in the preceding parts of the book are implemented or utilized in concrete cases.


Who Should Read This Book?

This book is directed toward several reader categories. Software developers and engineers will find the theory behind existing component models. The case studies will provide useful information about challenges, pitfalls, and successes in the practical use of component-based technologies. Experienced developers will find useful technical details in the last part of the book, while inexperienced developers can learn about the principles of CBSE. Project and company managers will be interested in the process and organizational aspects of component-based development, either for developing components or systems, with a focus on the reuse of components. The book includes topics related to current research and to the state of the art of CBSE. For this reason, it will be of interest to researchers, either those beginning research in this field or those already involved. Extensive lists of references in each chapter provide broad insight into current trends. Finally, the book is appropriate as a course book, primarily for graduate students or undergraduate students in the later years of their studies.

About the Author

Ivica Crnkovic, Mälardalen University, Department of Computer Engineering, Sweden

Ivica Crnkovic is a professor of industrial software engineering at Mälardalen University, Västerċs, Sweden. He is the administrative leader of the computer science laboratory and the scientific leader of the Industrial IT research group of the same department. His research interests include component-based software engineering, software configuration management, software development environments and tools, software engineering in general. Prof. Crnkovic is the author of more than 30 refereed articles and papers on software engineering topics. He has been co-organizer of several workshops and conferences related to software engineering and to component-based software engineering in particular. He participated in several projects organized by The Association of Swedish Engineering Industries. From 1985 to 1998, Dr. Crnkovic worked at ABB, Sweden, where he was responsible for software development environments and tools. He was a project leader and manager of a group developing!
software configuration management and other software development environment tools and methods for distributed development and maintenance of real-time systems. From 1980 to 1984, he worked for the Rade Koncar company in Zagreb, Croatia. Dr. Crnkovic received an M.Sc. in computer science in 1979, an M.Sc. in theoretical physics in 1984, and a Ph.D. in computer science in 1991, all from the University of Zagreb, Croatia. He can be reached at ivica.crnkovic@mdh.Magnus Larsson, Mälardalen University, Department of Computer Engineering,
Sweden, ABB Automation Technology Products AB, Sweden

Magnus Larsson has been employed by ABB Automation Technology Products AB since 1993, working on several software development projects, both as a developer and as a project manager. He received his B.Sc. in computer engineering from Mälardalen University in 1993 and an .Sc. in computer science from Uppsala University in 1995. Mr. Larssonís current research interests are component-based software engineering and software configuration management. His licentiate thesis "Applying Configuration Management Techniques to Component-Based Systems," which he presented in December 2000 includes selected topics from these fields. During his years at ABB, Mr. Larsson has participated in the development of object management facility (OMF), a distributed object-oriented middleware, which was awarded second prize in the 1997 OMG/Object Worlds competition for the best use of object technology. Mr. Larsson has also developed bridges between ABBís proprietary object request broker OMF and COM/!
CORBA. In 1998 Mr. Larsson worked with Digital Equipment on a project that investigated the use of DCOM in real-time applications. Since 1999, he has been a committee member of the configuration management group working for the Association of Swedish Engineering Industries. Mr. Larsson can be reached at Manus.Larsson@mdh.se.

"About this title" may belong to another edition of this title.