Learning regular sets from queries and counterexamples
Information and Computation
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Component Software: Beyond Object-Oriented Programming
Component Software: Beyond Object-Oriented Programming
Handbook of Process Algebra
Automatic extraction of object-oriented component interfaces
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Behavior Protocols for Software Components
IEEE Transactions on Software Engineering
Automated Software Engineering
Assume-Guarantee Verification of Source Code with Design-Level Assumptions
Proceedings of the 26th International Conference on Software Engineering
Synthesis of interface specifications for Java classes
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Deriving object typestates in the presence of inter-object references
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Application of automated environment generation to commercial software
Proceedings of the 2006 international symposium on Software testing and analysis
Software—Practice & Experience
Static specification mining using automata-based abstractions
Proceedings of the 2007 international symposium on Software testing and analysis
The Palladio component model for model-driven performance prediction
Journal of Systems and Software
TBP: Code-Oriented Component Behavior Specification
SEW '08 Proceedings of the 2008 32nd Annual IEEE Software Engineering Workshop
Hi-index | 0.00 |
Scalability of software engineering methods can be improved by application of the methods to individual components instead of complete systems. This is, however, possible only if a model of interaction between each component and its environment (rest of the system) is available. Since constructing formal models of interaction by hand is hard and tedious, techniques and tools for automated inference of the models from code are needed. We present a technique for automated extraction of models of component-environment interaction from multi-threaded software systems implemented in Java, which is based on state space traversal. Models are captured in the formalism of behavior protocols, which allows to express parallel behavior explicitly. Java PathFinder is used to perform the state space traversal. We have implemented the technique in the Java2BP tool and applied the tool on two non-trivial software systems to show that our approach is feasible.