An experimental evaluation of the assumption of independence in multiversion programming
IEEE Transactions on Software Engineering
A cookbook for using the model-view controller user interface paradigm in Smalltalk-80
Journal of Object-Oriented Programming
Software reusability: vol. 1, concepts and models
Software reusability: vol. 1, concepts and models
Analysis of Faults in an N-Version Software Experiment
IEEE Transactions on Software Engineering
ACM Computing Surveys (CSUR)
The design and implementation of hierarchical software systems with reusable components
ACM Transactions on Software Engineering and Methodology (TOSEM)
Foundations for the study of software architecture
ACM SIGSOFT Software Engineering Notes
Abstractions for Software Architecture and Tools to Support Them
IEEE Transactions on Software Engineering - Special issue on software architecture
The essential distributed objects survival guide
The essential distributed objects survival guide
Architectural issues in software reuse: it's not just the functionality, it's the packaging
SSR '95 Proceedings of the 1995 Symposium on Software reusability
Distributed snapshots: determining global states of distributed systems
ACM Transactions on Computer Systems (TOCS)
Architectural mismatch or why it's hard to build systems out of existing parts
Proceedings of the 17th international conference on Software engineering
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
A Component- and Message-Based Architectural Style for GUI Software
IEEE Transactions on Software Engineering - Special issue: best papers of the 17th International Conference on Software Engineering (ICSE-17)
A formal basis for architectural connection
ACM Transactions on Software Engineering and Methodology (TOSEM)
Reuse of off-the-shelf components in C2-style architectures
Proceedings of the 1997 symposium on Software reusability
COM and DCOM: Microsoft's vision for distributed objects
COM and DCOM: Microsoft's vision for distributed objects
Version models for software configuration management
ACM Computing Surveys (CSUR)
Architecture-based runtime software evolution
Proceedings of the 20th international conference on Software engineering
Exploiting an event-based infrastructure to develop complex distributed systems
Proceedings of the 20th international conference on Software engineering
Using off-the-shelf middleware to implement connectors in distributed software architectures
Proceedings of the 21st international conference on Software engineering
A language and environment for architecture-based software development and evolution
Proceedings of the 21st international conference on Software engineering
Highly reliable upgrading of components
Proceedings of the 21st international conference on Software engineering
Towards a taxonomy of software connectors
Proceedings of the 22nd international conference on Software engineering
Taming architectural evolution
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Automatic synthesis of deadlock free connectors for COM/DCOM applications
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Communications of the ACM - Adaptive middleware
The case for reflective middleware
Communications of the ACM - Adaptive middleware
A Family of Software Architecture Implementation Frameworks
WICSA 3 Proceedings of the IFIP 17th World Computer Congress - TC2 Stream / 3rd IEEE/IFIP Conference on Software Architecture: System Design, Development and Maintenance
Architecture-Level Support for Software Component Deployment in Resource Constrained Environments
CD '02 Proceedings of the IFIP/ACM Working Conference on Component Deployment
The N-Version Approach to Fault-Tolerant Software
IEEE Transactions on Software Engineering
Leveraging architectural models to inject trust into software systems
SESS '05 Proceedings of the 2005 workshop on Software engineering for secure systems—building trustworthy applications
Hi-index | 0.00 |
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.