A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Automatic extraction of object-oriented component interfaces
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Symbolic Model Checking without BDDs
TACAS '99 Proceedings of the 5th International Conference on Tools and Algorithms for Construction and Analysis of Systems
Construction of Abstract State Graphs with PVS
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
Verification of Java's AbstractCollection Class: A Case Study
MPC '02 Proceedings of the 6th International Conference on Mathematics of Program Construction
Synthesis of interface specifications for Java classes
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Model variables: cleanly supporting abstraction in design by contract: Research Articles
Software—Practice & Experience
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Static specification mining using automata-based abstractions
Proceedings of the 2007 international symposium on Software testing and analysis
Privately Finding Specifications
IEEE Transactions on Software Engineering
Automatic generation of software behavioral models
Proceedings of the 30th international conference on Software engineering
A Quantifier Elimination Algorithm for Linear Real Arithmetic
LPAR '08 Proceedings of the 15th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning
Specification Mining with Few False Positives
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
Algorithms for interface synthesis
CAV'07 Proceedings of the 19th international conference on Computer aided verification
SEIM: static extraction of interaction models
Proceedings of the 2nd International Workshop on Principles of Engineering Service-Oriented Systems
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
An interpolating sequent calculus for quantifier-free presburger arithmetic
IJCAR'10 Proceedings of the 5th international conference on Automated Reasoning
Automatic inference of model fields and their representation
Proceedings of the 13th Workshop on Formal Techniques for Java-Like Programs
Hi-index | 0.01 |
Type hierarchies are an integral part of the object oriented software reuse machinery. Software flexibility can be increased through type inheritance which, if used in accordance with Liskov Substitution Principle (LSP) enables safe object substitution. Assuming that formal specifications are available for a set of subtypes, we present our early doctoral research on the automatic inference of an extended deterministic finite automaton that describes the legal usage of abstract supertypes and ensures the behavioral subtyping relation as defined by the Liskov Substitution Principle (LSP). We obtain the supertype interface automata by incrementally exploring the specification of the subtypes, unifying correlated subtype fields, simplifying predicates through quantification, and finally creating new model fields that we associate with the remaining predicates. The inferred automaton is simulated by the behavior of each subtype and can be used for safe hierarchy extension, verification of new hierarchy clients, and emphasis of LSP non-compliant methods.