Stijn de Gouw
Leiden University
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Stijn de Gouw.
computer aided verification | 2015
Stijn de Gouw; Jurriaan Rot; Frank S. de Boer; Richard Bubel; Reiner Hähnle
We investigate the correctness of TimSort, which is the main sorting algorithm provided by the Java standard library. The goal is functional verification with mechanical proofs. During our verification attempt we discovered a bug which causes the implementation to crash. We characterize the conditions under which the bug occurs, and from this we derive a bug-free version that does not compromise the performance. We formally specify the new version and mechanically verify the absence of this bug with KeY, a state-of-the-art verification tool for Java. Open image in new window
formal methods | 2014
Frank S. de Boer; Stijn de Gouw
According to a study in 2002 commisioned by a US Department, software bugs annually costs the US economy an estimated
Journal of Computer and System Sciences | 2012
Krzysztof R. Apt; Frank S. de Boer; Ernst-Ruediger Olderog; Stijn de Gouw
59 billion. A more recent study in 2013 by Cambridge University estimated that the global cost has risen to
formal techniques for java-like programs | 2010
Frank S. de Boer; Stijn de Gouw; Jurgen J. Vinju
312 billion globally. There exists various ways to prevent, isolate and fix software bugs, ranging from lightweight methods that are semi-automatic, to heavyweight methods that require significant user interaction. Our own method described in this tutorial is based on automated run-time checking of a combination of protocol- and data-oriented properties of object-oriented programs.
european conference on service-oriented and cloud computing | 2015
Stijn de Gouw; Michael Lienhardt; Jacopo Mauro; Behrooz Nobakht; Gianluigi Zavattaro
We show that verification of object-oriented programs by means of the assertional method can be achieved in a simple way by exploiting a syntax-directed transformation from object-oriented programs to recursive programs. This transformation suggests natural proofs rules and its correctness helps us to establish soundness and relative completeness of the proposed proof system. One of the difficulties is how to properly deal in the assertion language with the instance variables and aliasing. The discussed programming language supports arrays, instance variables, failures and recursive methods with parameters. We also explain how the transformational approach can be extended to deal with other features of object-oriented programming, like classes, inheritance, subtyping and dynamic binding.
european conference on service-oriented and cloud computing | 2015
Behrooz Nobakht; Stijn de Gouw; Frank S. de Boer
In this paper we present prototype tool-support for the runtime assertion checking of the Java Modeling Language (JML) extended with communication histories specified by attribute grammars. Our tool suite integrates Rascal, a meta programming language and ANTLR, a popular parser generator. Rascal instantiates a generic model of history updates for a given Java program annotated with history specifications. ANTLR is used for the actual evaluation of history assertions.
International Journal on Software Tools for Technology Transfer | 2015
Peter Y. H. Wong; Richard Bubel; Frank S. de Boer; Miguel Gómez-Zamalloa; Stijn de Gouw; Reiner Hähnle; Karl Meinke; Muddassar A. Sindhu
In modern software systems, deployment is an integral and critical part of application development (see, e.g., the DevOps approach to software development). Nevertheless, deployment is usually overlooked at the modeling level, thus losing the possibility to perform deployment conscious decisions during the early stages of development. In this paper, we address the problem of promoting deployment as an integral part of modeling, by focusing on the Abstract Behavioral Specification (ABS) language used for the specification of models of systems composed of concurrent objects consuming resources provided by deployment components. We extend ABS with class annotations expressing the resource requirements of the objects of that class. Then we define a tool that, starting from a high-level declaration of the desired system, computes a model instance of such system that optimally distributes objects over available deployment components.
european conference on service oriented and cloud computing | 2016
Stijn de Gouw; Jacopo Mauro; Behrooz Nobakht; Gianluigi Zavattaro
In this paper, we introduce a formal model of the availability, budget compliance and sustainability of istributed services, where service sustainability is a new concept which arises as the composition of service availability and budget compliance. The model formalizes a distributed platform for monitoring the above service characteristics in terms of a parallel composition of task automata, where dynamically generated tasks model asynchronous events with deadlines. The main result of this paper is a formal model to optimize and reason about service characteristics through monitoring. In particular, we use schedulability analysis of the underlying timed automata to optimize and guarantee service sustainability.
Journal of Automated Reasoning | 2014
Stijn de Gouw; Frank S. de Boer; Jurriaan Rot
We present a range of testing techniques for the Abstract Behavioral Specification (ABS) language and apply them to an industrial case study. ABS is a formal modeling language for highly variable, concurrent, component-based systems. The nature of these systems makes them susceptible to the introduction of subtle bugs that are hard to detect in the presence of steady adaptation. While static analysis techniques are available for an abstract language such as ABS, testing is still indispensable and complements analytic methods. We focus on fully automated testing techniques including black-box and glass-box test generation as well as runtime assertion checking, which are shown to be effective in an industrial setting.
acm symposium on applied computing | 2013
Stijn de Gouw; Frank S. de Boer; Einar Broch Johnsen; Peter Y. H. Wong
Traditional development methodologies that separate software design from application deployment have been replaced by approaches such as continuous delivery or DevOps, according to which deployment issues should be taken into account already at the early stages of development. This calls for the definition of new modeling and specification languages. In this paper we show how deployment can be added as a first-class citizen in the object-oriented modeling language ABS. We follow a declarative approach: programmers specify deployment constraints and a solver synthesizes ABS classes exposing methods like deploy (resp. undeploy) that executes (resp. cancels) configuration actions changing the current deployment towards a new one satisfying the programmer’s desiderata. Differently from previous works, this novel approach allows for the specification of incremental modifications, thus supporting the declarative modeling of elastic applications.