The C programming language
Statecharts: A visual formalism for complex systems
Science of Computer Programming
Parsing theory. Vol. 1: languages and parsing
Parsing theory. Vol. 1: languages and parsing
Verifying temporal properties without temporal logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the development of reactive systems
Logics and models of concurrent systems
Theoretical Computer Science
Complexity results for two-way and multi-pebble automata and their logics
ICALP '94 Selected papers from the 21st international colloquium on Automata, languages and programming
A survey of structured and object-oriented software specification methods and techniques
ACM Computing Surveys (CSUR)
Model checking
Typechecking for XML transformers
PODS '00 Proceedings of the nineteenth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Concepts of Programming Languages
Concepts of Programming Languages
An Introduction to Formal Languages and Automata
An Introduction to Formal Languages and Automata
MOPS: an infrastructure for examining security properties of software
Proceedings of the 9th ACM conference on Computer and communications security
Using the Bandera Tool Set to Model-Check Properties of Concurrent Java Software
CONCUR '01 Proceedings of the 12th International Conference on Concurrency Theory
Fluent model checking for event-based systems
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Finite state machines for strings over infinite alphabets
ACM Transactions on Computational Logic (TOCL)
International Journal on Software Tools for Technology Transfer (STTT) - Special section on high-level test of complex systems
Fluent temporal logic for discrete-time event-based models
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Empirical Software Engineering
Hi-index | 0.00 |
Manually verifying the behavior of software systems with respect to a set of requirements is a time-consuming and error-prone task. If the verification is automatically performed by a model checker however, time can be saved, and errors can be prevented. To be able to use a model checker, requirements need to be specified using a formal language. Although temporal logic languages are frequently used for this purpose, they are neither commonly considered to have sufficient usability, nor always naturally suited for specifying behavioral requirements of algorithms. Such requirements can be naturally specified as regular language recognizers such as deterministic finite accepters, which however suffer from poor evolvability: the necessity to re-compute the recognizer whenever the alphabet of the underlying model changes. In this paper, we present the visual language Vibes that both is naturally suited for specifying behavioral requirements of algorithms, and enables the creation of highly evolvable specifications. Based on our observations from controlled experiments with 23 professional software engineers and 21 M.Sc. computer science students, we evaluate the usability of Vibes in terms of its understandability, learnability, and operability. This evaluation suggests that Vibes is an easy-to-use language.