Publications about Jassda
                  Mark Brörkens. Trace- und Zeit- Zusicherungen beim Programmieren
                    mit Vertrag. Masters thesis. University of Oldenburg, Computer
                    Science Department, January 2002. in German. (PDF,
                    Sildes in PDF) 
               
                  Mark Brörkens, Michael Möller. Jassda Trace Assertions,
                    Runtime Checking the Dynamic of Java Programs. In Ina Schieferdecker,
                    Hartmut König and Adam Wolisz (Eds.), Trends in Testing
                    Communicating Systems, International Conference on Testing
                    of Communicating Systems, Berlin, March 2002, pp. 39-48.
                    (PDF) 
                   Research into runtime checking of programs mainly
                    concentrates on the Design by Contract concept, as proposed
                    by Meyer for the programming language Eiffel. The goal is
                    here to check whether a program fulfills certain conditions
                    in certain states, i.e method entry and exit points. Jass
                    (Java with assertions) tries to extend this to behavioural
                    properties by adding trace assertion for dynamical checking
                    (Jass 2). But the Jass approach is a precompiler attempt,
                    so we cannot handle programs without its source code.  
                    Jassda, the Jass Debug Architecture, is also designed to provide
                    a trace assertion facility, but in contrast to the classic
                    Jass 2 trace assertions these assertions are not precompiled
                    into source code but are checked at runtime via the Java Debug
                    Interface (JDI).  
                 
                  Michael Möller. Specifying and Checking Java using CSP.
                    In Workshop on Formal Techniques for Java-like Programs
                    - FTfJP’2002, Technical Report NIII-R0204. Computing Science
                    Department, University of Nijmegen, 2002. (PDF,
                    Slides in PDF)  
                   Currently several approaches are done in applying
                    formal techniques to the Java programming language. A new
                    trend is to take dynamic behaviour into account when designing
                    such techniques. To bring formal techniques to practical applications
                    one often has to reduce the goal coming down from full verification
                    to runtime checking. Jassda is a framework for performing
                    such runtime checks at the bytecode level of Java. The Trace-Checker
                    module of Jassda allows one to test the dynamic behaviour
                    of multiple Java virtual machines by monitoring whether the
                    trace of all relevant events is a member of the trace semantics
                    of a given CSP process or not.  
                    In this paper we present the CSP dialect that is used to specify
                    a set of allowed traces for Java programs. The underlying
                    semantics allow partial specification of distributed Java
                    programs and to recombine them while preserving properties.
                   
                 
                  Mark Brörkens, Michael Möller. Dynamic Event Generation
                    for Runtime Checking using the JDI. In Klaus Havelund and
                    Grigore Rosu (Eds.), Proceedings of the Federated Logic
                    Conference Satellite Workshops, Runtime Verification. Electronic
                    Notes in Theoretical Computer Science 70.4, Copenhagen,
                    July 2002. (PDF,
                    Powerpoint slides) 
                   Approaches to runtime checking have to track the
                    execution of a software system and therefore have to deal
                    with generating and processing execution events. Often these
                    techniques are applied at the code level – either by inserting
                    new source code prior to the compilation or by modifying the
                    target code, e.g. Java byte code, before running the program. 
                    The Jassda framework and tool enable runtime checking of Java
                    programs against a CSP-like specification. For generating
                    events it uses the Java Debug Interface (JDI) and thus no
                    modifications to the code are necessary. Another advantage
                    is that events are generated on demand, i.e. dynamically at
                    runtime it is determined which events to generate for the
                    current debug run without modifying the program itself. This
                    paper shows how this event generation is done by the Jassda
                    framework.  
                 |