Modeling interaction constraints of component interfaces based on dynamic analysis

The interface specification of components usually lacks behavioral semantics information. Behavioral semantics information specify component interaction constraints on the usage of interface methods, including the order in which these methods should be called and the constraints on the method arguments and returns of methods. Based on dynamic analysis technique, a method which abstracts interaction constraints of component interfaces from the execution traces of component-based software system test is presented in this paper. These interaction constraints are incrementally modeled as finite state machines with parameters. Compared with the existing techniques which synthesize either information on the values of the variables or information on sequences of method invocations, our method generates models that represent the sequence constraints of method invocations, constraints of variable value, and the relations that exist between data values and method invocations.

[1]  Jerome A. Feldman,et al.  On the Synthesis of Finite-State Machines from Samples of Their Behavior , 1972, IEEE Transactions on Computers.

[2]  Klaus Havelund,et al.  Model checking JAVA programs using JAVA PathFinder , 2000, International Journal on Software Tools for Technology Transfer.

[3]  Steven P. Reiss,et al.  Encoding program executions , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[4]  Leonardo Mariani,et al.  Inferring state-based behavior models , 2006, WODA '06.

[5]  Monica S. Lam,et al.  Automatic extraction of object-oriented component interfaces , 2002, ISSTA '02.

[6]  Leonardo Mariani,et al.  Behavior capture and test: automated analysis of component integration , 2005, 10th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'05).

[7]  Alexander L. Wolf,et al.  Discovering models of software processes from event-based data , 1998, TSEM.

[8]  William G. Griswold,et al.  Dynamically discovering likely program invariants to support program evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[9]  Matthew B. Dwyer,et al.  Bandera: extracting finite-state models from Java source code , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[10]  Sriram K. Rajamani,et al.  Automatically validating temporal safety properties of interfaces , 2001, SPIN '01.

[11]  James R. Larus,et al.  Mining specifications , 2002, POPL '02.

[12]  David Notkin,et al.  Automatic Extraction of Object-Oriented Observer Abstractions from Unit-Test Executions , 2004, ICFEM.

[13]  David Evans,et al.  Dynamically inferring temporal properties , 2004, PASTE.