Compositional reachability analysis using process algebra
TAV4 Proceedings of the symposium on Testing, analysis, and verification
Data flow analysis for verifying properties of concurrent programs
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
The Unified Modeling Language user guide
The Unified Modeling Language user guide
Checking safety properties using compositional reachability analysis
ACM Transactions on Software Engineering and Methodology (TOSEM)
Data flow analysis for checking properties of concurrent Java programs
Proceedings of the 21st international conference on Software engineering
A practical method for verifying event-driven software
Proceedings of the 21st international conference on Software engineering
A deadlock detection tool for concurrent Java programs
Software—Practice & Experience
Concurrency: state models & Java programs
Concurrency: state models & Java programs
Bandera: extracting finite-state models from Java source code
Proceedings of the 22nd international conference on Software engineering
Verifying properties of process definitions
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
Verification support for workflow design with UML activity graphs
Proceedings of the 24th International Conference on Software Engineering
Model Checking of Workflow Schemas
EDOC '00 Proceedings of the 4th International conference on Enterprise Distributed Object Computing
Model-Checking Multi-threaded Distributed Java Programs
Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
Using Little-JIL to Coordinate Agents in Software Engineering
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
Little-JIL 1.0 Language Report TITLE2:
Little-JIL 1.0 Language Report TITLE2:
Bogor: an extensible and highly-modular software model checking framework
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Proceedings of the 30th international conference on Software engineering
Exception handling patterns for processes
Proceedings of the 4th international workshop on Exception handling
Analyzing critical process models through behavior model synthesis
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
An algebraic approach for managing inconsistencies in software processes
ICSP'07 Proceedings of the 2007 international conference on Software process
Process programming to support medical safety: a case study on blood transfusion
SPW'05 Proceedings of the 2005 international conference on Unifying the Software Process Spectrum
Hi-index | 0.00 |
Software process and work flow languages are increasingly used to define loosely-coupled systems of systems. These languages focus on coordination issues such as data flow and control flow among the subsystems and exception handling activities. The resulting systems are often highly concurrent with activities distributed over many computers. Adequately testing these systems is not feasible due to their size, concurrency, and distributed implementation. Furthermore, the concurrent nature of their activities makes it likely that errors related to the order in which activities are interleaved will go undetected during testing. As a result, verification using static analysis seems necessary to increase confidence in the correctness of these systems. In this paper, we describe our experiences applying LTSA to the analysis of software processes written in Little-JIL. A key aspect to the approach taken in this analysis is that the model that is analyzed consists of a reusable portion that defines language semantics and a process-specific portion that uses parameterization and composition of pieces of the reusable portion to capture the semantics of a Little-JIL process. While the reusable portion was constructed by hand, the parameterization and composition required to model a process is automated. Furthermore, the reusable portion of the model encodes the state machines used in the implementation of the Little-JIL interpreter. As a result, analysis is based not just on the intended semantics of the Little-JIL constructs but on their actual execution semantics. This paper describes how Little-JIL processes are translated into models and reports on analysis results, which have uncovered seven errors in the Little-JIL interpreter that were previously unknown as well as an error in a software process that had previously been analyzed with a different approach without finding the error.