Improving dependability of component-based systems via multi-versioning connectors

  • Authors:
  • Nenad Medvidovic;Marija Mikic-Rakic;Nikunj Mehta

  • Affiliations:
  • Computer Science Department, University of Southern California, Los Angeles, CA;Computer Science Department, University of Southern California, Los Angeles, CA;Computer Science Department, University of Southern California, Los Angeles, CA

  • Venue:
  • Architecting dependable systems
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

The promise of architecture-based software development is that complex systems can be built and evolved reasonably quickly and reliably using coarse-grained components. However, practice has shown that many problems of traditional software development still persist in a component-based setting, and even that new problems are introduced. A class of such problems stems from the opportunity to perform system upgrade at the component level. The problems include errors in the functionality introduced by a new version of a component, decreased reliability of a new component version, inefficiency of components designed for reuse, component interaction mismatches, and so on. This paper presents an approach intended to alleviate the problems caused by component upgrades. Our approach focuses on software architectures both at system design and implementation levels. Specifically, our approach leverages explicit software connectors, called multi-versioning connectors (M-V-Cs), in ensuring dependable system composition and evolution, possibly during runtime. M-V-Cs unintrasively collect and analyze the execution statistics of one or more running components versions, and address three aspects of dependability: correctness, reliability, and efficiency. Our approach has been implemented and evaluated in the context of a family of architectural implementation platforms. We illustrate our approach with the help of an example apphcation developed in coordination with a third-party organization.