Trace theory for automatic hierarchical verification of speed-independent circuits
Trace theory for automatic hierarchical verification of speed-independent circuits
A Practical Approach to Programming With Assertions
IEEE Transactions on Software Engineering
A formal basis for architectural connection
ACM Transactions on Software Engineering and Methodology (TOSEM)
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
A technique for software module specification with examples
Communications of the ACM
Pushdown processes: games and model-checking
Information and Computation - Special issue on FLOC '96
Enforcing high-level protocols in low-level software
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
System architecture directions for networked sensors
ASPLOS IX Proceedings of the ninth international conference on Architectural support for programming languages and operating systems
JMOCHA: a model checking tool that exploits design structure
ICSE '01 Proceedings of the 23rd 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
Behavioral contracts and behavioral subtyping
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Making Components Contract Aware
Computer
Reachability Analysis of Pushdown Automata: Application to Model-Checking
CONCUR '97 Proceedings of the 8th International Conference on Concurrency Theory
Interface Theories for Component-Based Design
EMSOFT '01 Proceedings of the First International Workshop on Embedded Software
A BDD-Based Model Checker for Recursive Programs
CAV '01 Proceedings of the 13th International Conference on Computer Aided Verification
An Overview of Anna, a Specification Language for Ada
IEEE Software
Verifiable Concurrent Programming Using Concurrency Controllers
Proceedings of the 19th IEEE international conference on Automated software engineering
Synthesis of interface specifications for Java classes
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Software composition and verification for sensor networks
Science of Computer Programming - Special issue on new software composition concepts
Application of design for verification with concurrency controllers to air traffic control software
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Specification and verification of inter-component constraints in CTL
SAVCBS '05 Proceedings of the 2005 conference on Specification and verification of component-based systems
Modular strategies for recursive game graphs
Theoretical Computer Science - Tools and algorithms for the construction and analysis of systems (TACAS 2003)
System level design paradigms: Platform-based design and communication synthesis
Proceedings of the 41st annual Design Automation Conference
Interface contracts for TinyOS
Proceedings of the 6th international conference on Information processing in sensor networks
Interface grammars for modular software model checking
Proceedings of the 2007 international symposium on Software testing and analysis
Automated Software Engineering
Extended interface grammars for automated stub generation
Proceedings of the second workshop on Automated formal methods
Verification of evolving software via component substitutability analysis
Formal Methods in System Design
Client and server verification for web services using interface grammars
TAV-WEB '08 Proceedings of the 2008 workshop on Testing, analysis, and verification of web services and applications
Scalable Software Model Checking Using Design for Verification
Verified Software: Theories, Tools, Experiments
State Space Reduction Techniques for Component Interfaces
CBSE '08 Proceedings of the 11th International Symposium on Component-Based Software Engineering
Consistently applying updates to compositions of distributed OSGi modules
Proceedings of the 1st International Workshop on Hot Topics in Software Upgrades
Framework for exercising I/O exception handling code
International Journal of Information and Communication Technology
Unit Testing of Flash Memory Device Driver through a SAT-Based Model Checker
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
(U)CML - a modeling language for modeling and testing compatibility
SEA '07 Proceedings of the 11th IASTED International Conference on Software Engineering and Applications
A Smooth Combination of Linear and Herbrand Equalities for Polynomial Time Must-Alias Analysis
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Automata for specifying component interfaces
CIAA'03 Proceedings of the 8th international conference on Implementation and application of automata
Modular strategies for recursive game graphs
TACAS'03 Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems
A representation-independent behavioral semantics for object-oriented components
FMOODS'07 Proceedings of the 9th IFIP WG 6.1 international conference on Formal methods for open object-based distributed systems
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Model checking a model checker: a code contract combined approach
ICFEM'10 Proceedings of the 12th international conference on Formal engineering methods and software engineering
2/3 alternating simulation between interface automata
ICFEM'05 Proceedings of the 7th international conference on Formal Methods and Software Engineering
Dynamic component substitutability analysis
FM'05 Proceedings of the 2005 international conference on Formal Methods
Embedded Systems Design
Interfaces as games, programs as strategies
TYPES'04 Proceedings of the 2004 international conference on Types for Proofs and Programs
Constructing open systems via consistent components
ICTAC'05 Proceedings of the Second international conference on Theoretical Aspects of Computing
Behavioral types for embedded software: a survey
Component-Based Software Development for Embedded Systems
Partition refinement of Component Interaction Automata
Science of Computer Programming
Hi-index | 0.00 |
We present a formal methodology and tool for uncovering errors in the interaction of software modules. Our methodology consists of a suite of languages for defining software interfaces, and algorithms for checking interface compatibility. We focus on interfaces that explain the method-call dependencies between software modules. Such an interface makes assumptions about the environment in the form of call and availability constraints. A call constraint restricts the accessibility of local methods to certain external methods. An availability constraint restricts the accessibility of local methods to certain states of the module. For example, the interface for a file server with local methods open and read may assert that a file cannot be read without having been opened. Checking interface compatibility requires the solution of games, and in the presence of availability constraints, of pushdown games. Based on this methodology, we have implemented a tool that has uncovered incompatibilities in TinyOS, a small operating system for sensor nodes in adhoc networks.