Distrbution and Abstract Types in Emerald
IEEE Transactions on Software Engineering - Special issue on distributed systems
An introduction to Trellis/Owl
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
A semantics of multiple inheritance
Information and Computation - Semantics of Data Types
Approaches to specification-based testing
TAV3 Proceedings of the ACM SIGSOFT '89 third symposium on Software testing, analysis, and verification
Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
A parallel object-oriented language with inheritance and subtyping
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
A program integration algorithm that accommodates semantics-preserving transformations
ACM Transactions on Software Engineering and Methodology (TOSEM)
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Structural specification-based testing with ADL
ISSTA '96 Proceedings of the 1996 ACM SIGSOFT international symposium on Software testing and analysis
Specification matching of software components
ACM Transactions on Software Engineering and Methodology (TOSEM)
Architecture-based runtime software evolution
Proceedings of the 20th international conference on Software engineering
Dynamically discovering likely program invariants to support program evolution
Proceedings of the 21st international conference on Software engineering
Quickly detecting relevant program invariants
Proceedings of the 22nd international conference on Software engineering
Translation validation for an optimizing compiler
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
A Value Transmission Method for Abstract Data Types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Automatic generation of program specifications
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Invariant inference for static checking:
Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering
An Extended Static Checker for Modular-3
CC '98 Proceedings of the 7th International Conference on Compiler Construction
Automating the Generation and Sequencing of Test Cases from Model-Based Specifications
FME '93 Proceedings of the First International Symposium of Formal Methods Europe on Industrial-Strength Formal Methods
Improving test suites via operational abstraction
Proceedings of the 25th International Conference on Software Engineering
A Dynamic Reconfiguration Service for CORBA
CDS '98 Proceedings of the International Conference on Configurable Distributed Systems
Automated Support for Program Refactoring using Invariants
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Modularity in the Presence of Subclassing
Modularity in the Presence of Subclassing
DYNAMIC MODULE REPLACEMENT IN A DISTRIBUTED PROGRAMMING SYSTEM
DYNAMIC MODULE REPLACEMENT IN A DISTRIBUTED PROGRAMMING SYSTEM
Techniques for program verification
Techniques for program verification
Dynamically discovering likely program invariants
Dynamically discovering likely program invariants
Behavior Capture and Test for Verifying Evolving Component-Based Systems
Proceedings of the 26th International Conference on Software Engineering
Decompositional Verification of Component-based Systems-A Hybrid Approach
Proceedings of the 19th IEEE international conference on Automated software engineering
Efficient incremental algorithms for dynamic detection of likely invariants
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Component evolution and versioning state of the art
ACM SIGSOFT Software Engineering Notes
SOBER: statistical model-based bug localization
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Retrofitting networked applications to add autonomic reconfiguration
DEAS '05 Proceedings of the 2005 workshop on Design and evolution of autonomic application software
Staged deployment in mirage, an integrated software upgrade testing and distribution system
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Automatic generation of software behavioral models
Proceedings of the 30th international conference on Software engineering
Assurance of dynamic adaptation in distributed systems
Journal of Parallel and Distributed Computing
Efficient mutation testing by checking invariant violations
Proceedings of the eighteenth international symposium on Software testing and analysis
Automatic steering of behavioral model inference
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Detecting precise behavioral models
Proceedings of the doctoral symposium for ESEC/FSE on Doctoral symposium
A Technique for Verifying Component-Based Software
Electronic Notes in Theoretical Computer Science (ENTCS)
Has the bug really been fixed?
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
SEIM: static extraction of interaction models
Proceedings of the 2nd International Workshop on Principles of Engineering Service-Oriented Systems
Dynamic invariant detection for relational databases
Proceedings of the Ninth International Workshop on Dynamic Analysis
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
From graph transformation to software engineering and back
Formal Methods in Software and Systems Modeling
How do software engineers understand code changes?: an exploratory study in industry
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Automatic testing of sequential and concurrent substitutability
Proceedings of the 2013 International Conference on Software Engineering
Automated diagnosis of software configuration errors
Proceedings of the 2013 International Conference on Software Engineering
On software component co-installability
ACM Transactions on Software Engineering and Methodology (TOSEM) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance
Hi-index | 0.00 |
We present a new, automatic technique to assess whether replacing a component of a software system by a purportedly compatible component may change the behavior of the system. The technique operates before integrating the new component into the system or running system tests, permitting quicker and cheaper identification of problems. It takes into account the system's use of the component, because a particular component upgrade may be desirable in one context but undesirable in another. No formal specifications are required, permitting detection of problems due either to errors in the component or to errors in the system. Both external and internal behaviors can be compared, enabling detection of problems that are not immediately reflected in the output.The technique generates an operational abstraction for the old component in the context of the system and generates an operational abstraction for the new component in the context of its test suite; an operational abstraction is a set of program properties that generalizes over observed run-time behavior. If automated logical comparison indicates that the new component does not make all the guarantees that the old one did, then the upgrade may affect system behavior and should not be performed without further scrutiny. In case studies, the technique identified several incompatibilities among software components.