ID: cs/0101002

Automated Debugging In Java Using OCL And JDI

January 3, 2001

View on ArXiv
David J. Lehigh University Murray, Dale E. Lucent Technologies Parson
Computer Science
Software Engineering
Programming Languages

Correctness constraints provide a foundation for automated debugging within object-oriented systems. This paper discusses a new approach to incorporating correctness constraints into Java development environments. Our approach uses the Object Constraint Language ("OCL") as a specification language and the Java Debug Interface ("JDI") as a verification API. OCL provides a standard language for expressing object-oriented constraints that can integrate with Unified Modeling Language ("UML") software models. JDI provides a standard Java API capable of supporting type-safe and side effect free runtime constraint evaluation. The resulting correctness constraint mechanism: (1) entails no programming language modifications; (2) requires neither access nor changes to existing source code; and (3) works with standard off-the-shelf Java virtual machines ("VMs"). A prototype correctness constraint auditor is presented to demonstrate the utility of this mechanism for purposes of automated debugging.

Similar papers 1

JavaTA: A Logic-based Debugger for Java

January 17, 2007

88% Match
Hani Girgis, Bharat Jayaraman
Programming Languages

This paper presents a logic based approach to debugging Java programs. In contrast with traditional debugging we propose a debugging methodology for Java programs using logical queries on individual execution states and also over the history of execution. These queries were arrived at by a systematic study of errors in object-oriented programs in our earlier research. We represent the salient events during the execution of a Java program by a logic database, and implement the...

Find SimilarView on arXiv

Generation of and Debugging with Logical Pre and Postconditions

January 12, 2001

88% Match
Angel Herrranz-Nieva Juan Jose Moreno Navarro
Programming Languages
Software Engineering

This paper shows the debugging facilities provided by the SLAM system. The SLAM system includes i) a specification language that integrates algebraic specifications and model-based specifications using the object oriented model. Class operations are defined by using rules each of them with logical pre and postconditions but with a functional flavour. ii) A development environment that, among other features, is able to generate readable code in a high level object oriented lan...

Find SimilarView on arXiv

Extended Abstract - Model-Based Debugging of Java Programs

November 20, 2000

88% Match
Cristinel Mateis, Markus Stumptner, ... , Wotawa Franz
Software Engineering
Programming Languages

Model-based reasoning is a central concept in current research into intelligent diagnostic systems. It is based on the assumption that sources of incorrect behavior in technical devices can be located and identified via the existence of a model describing the basic properties of components of a certain application domain. When actual data concerning the misbehavior of a system composed from such components is available, a domain-independent diagnosis engine can be used to inf...

Find SimilarView on arXiv

On-the-fly Query-Based Debugging with Examples

November 16, 2000

88% Match
Raimondas Lencevicius
Software Engineering
Programming Languages

Program errors are hard to find because of the cause-effect gap between the time when an error occurs and the time when the error becomes apparent to the programmer. Although debugging techniques such as conditional and data breakpoints help to find error causes in simple cases, they fail to effectively bridge the cause-effect gap in many situations. Query-based debuggers offer programmers an effective tool that provides instant error alert by continuously checking inter-obje...

Find SimilarView on arXiv

An Empirical Study of Data Constraint Implementations in Java

July 10, 2021

87% Match
Juan Manuel Florez, Laura Moreno, Zenong Zhang, ... , Marcus Andrian
Software Engineering

Software systems are designed according to guidelines and constraints defined by business rules. Some of these constraints define the allowable or required values for data handled by the systems. These data constraints usually originate from the problem domain (e.g., regulations), and developers must write code that enforces them. Understanding how data constraints are implemented is essential for testing, debugging, and software change. Unfortunately, there are no widely-acc...

Find SimilarView on arXiv

Test Case Generation for Object-Oriented Imperative Languages in CLP

July 29, 2010

87% Match
Miguel Gómez-Zamalloa, Elvira Albert, Germán Puebla
Programming Languages
Software Engineering

Testing is a vital part of the software development process. Test Case Generation (TCG) is the process of automatically generating a collection of test cases which are applied to a system under test. White-box TCG is usually performed by means of symbolic execution, i.e., instead of executing the program on normal values (e.g., numbers), the program is executed on symbolic values representing arbitrary values. When dealing with an object-oriented (OO) imperative language, sym...

Find SimilarView on arXiv

OpenJML: Software verification for Java 7 using JML, OpenJDK, and Eclipse

April 26, 2014

87% Match
David R. GrammaTech, Inc. Cok
Software Engineering
Logic in Computer Science
Programming Languages

OpenJML is a tool for checking code and specifications of Java programs. We describe our experience building the tool on the foundation of JML, OpenJDK and Eclipse, as well as on many advances in specification-based software verification. The implementation demonstrates the value of integrating specification tools directly in the software development IDE and in automating as many tasks as possible. The tool, though still in progress, has now been used for several college-leve...

Find SimilarView on arXiv

Monitoring and Debugging Concurrent and Distributed Object-Oriented Systems

April 16, 2002

86% Match
Joseph R. Kiniry
Software Engineering

A major part of debugging, testing, and analyzing a complex software system is understanding what is happening within the system at run-time. Some developers advocate running within a debugger to better understand the system at this level. Others embed logging statements, even in the form of hard-coded calls to print functions, throughout the code. These techniques are all general, rough forms of what we call system monitoring, and, while they have limited usefulness in simpl...

Find SimilarView on arXiv

The Visual Debugger Tool

April 19, 2024

86% Match
Tim Kräuter, Harald König, ... , Lamo Yngve
Software Engineering

Debugging is an essential part of software maintenance and evolution since it allows software developers to analyze program execution step by step. Understanding a program is required to fix potential flaws, alleviate bottlenecks, and implement new desired features. Thus, software developers spend a large percentage of their time validating and debugging software, resulting in high software maintenance and evolution cost. We aim to reduce this cost by providing a novel visual...

Find SimilarView on arXiv

AutoProof: Auto-active Functional Verification of Object-oriented Programs

January 13, 2015

86% Match
Julian Tschannen, Carlo A. Furia, ... , Polikarpova Nadia
Logic in Computer Science

Auto-active verifiers provide a level of automation intermediate between fully automatic and interactive: users supply code with annotations as input while benefiting from a high level of automation in the back-end. This paper presents AutoProof, a state-of-the-art auto-active verifier for object-oriented sequential programs with complex functional specifications. AutoProof fully supports advanced object-oriented features and a powerful methodology for framing and class invar...

Find SimilarView on arXiv