10 resultados para Java Simulation Tools
em University of Queensland eSpace - Australia
Resumo:
While object-oriented programming offers great solutions for today's software developers, this success has created difficult problems in class documentation and testing. In Java, two tools provide assistance: Javadoc allows class interface documentation to be embedded as code comments and JUnit supports unit testing by providing assert constructs and a test framework. This paper describes JUnitDoc, an integration of Javadoc and JUnit, which provides better support for class documentation and testing. With JUnitDoc, test cases are embedded in Javadoc comments and used as both examples for documentation and test cases for quality assurance. JUnitDoc extracts the test cases for use in HTML files serving as class documentation and in JUnit drivers for class testing. To address the difficult problem of testing inheritance hierarchies, JUnitDoc provides a novel solution in the form of a parallel test hierarchy. A small controlled experiment compares the readability of JUnitDoc documentation to formal documentation written in Object-Z. Copyright (c) 2005 John Wiley & Sons, Ltd.
Resumo:
Microscopic traffic-simulation tools are increasingly being applied to evaluate the impacts of a wide variety of intelligent transport, systems (ITS) applications and other dynamic problems that are difficult to solve using traditional analytical models. The accuracy of a traffic-simulation system depends highly on the quality of the traffic-flow model at its core, with the two main critical components being the car-following and lane-changing models. This paper presents findings from a comparative evaluation of car-following behavior in a number of traffic simulators [advanced interactive microscopic simulator for urban and nonurban networks (AIMSUN), parallel microscopic simulation (PARAMICS), and Verkehr in Statiten-simulation (VISSIM)]. The car-following algorithms used in these simulators have been developed from a variety of theoretical backgrounds and are reported to have been calibrated on a number of different data sets. Very few independent studies have attempted to evaluate the performance of the underlying algorithms based on the same data set. The results reported in this study are based on a car-following experiment that used instrumented vehicles to record the speed and relative distance between follower and leader vehicles on a one-lane road. The experiment was replicated in each tool and the simulated car-following behavior was compared to the field data using a number of error tests. The results showed lower error values for the Gipps-based models implemented in AIMSUN and similar error values for the psychophysical spacing models used in VISSIM and PARAMICS. A qualitative drift and goal-seeking behavior test, which essentially shows how the distance headway between leader and follower vehicles should oscillate around a stable distance, also confirmed the findings.
Resumo:
Summary form only given. The Java programming language supports concurrency. Concurrent programs are harder to verify than their sequential counterparts due to their inherent nondeterminism and a number of specific concurrency problems such as interference and deadlock. In previous work, we proposed a method for verifying concurrent Java components based on a mix of code inspection, static analysis tools, and the ConAn testing tool. The method was derived from an analysis of concurrency failures in Java components, but was not applied in practice. In this paper, we explore the method by applying it to an implementation of the well-known readers-writers problem and a number of mutants of that implementation. We only apply it to a single, well-known example, and so we do not attempt to draw any general conclusions about the applicability or effectiveness of the method. However, the exploration does point out several strengths and weaknesses in the method, which enable us to fine-tune the method before we carry out a more formal evaluation on other, more realistic components.
Resumo:
The testing of concurrent software components can be difficult due to the inherent non-determinism present in these components. For example, if the same test case is run multiple times, it may produce different results. This non-determinism may lead to problems with determining expected outputs. In this paper, we present and discuss several possible solutions to this problem in the context of testing concurrent Java components using the ConAn testing tool. We then present a recent extension to the tool that provides a general solution to this problem that is sufficient to deal with the level of non-determinism that we have encountered in testing over 20 components with ConAn. © 2005 IEEE
Resumo:
The results of empirical studies are limited to particular contexts, difficult to generalise and the studies themselves are expensive to perform. Despite these problems, empirical studies in software engineering can be made effective and they are important to both researchers and practitioners. The key to their effectiveness lies in the maximisation of the information that can be gained by examining existing studies, conducting power analyses for an accurate minimum sample size and benefiting from previous studies through replication. This approach was applied in a controlled experiment examining the combination of automated static analysis tools and code inspection in the context of verification and validation (V&V) of concurrent Java components. The combination of these V&V technologies was shown to be cost-effective despite the size of the study, which thus contributes to research in V&V technology evaluation.
Resumo:
In this paper, we present a formal model of Java concurrency using the Object-Z specification language. This model captures the Java thread synchronization concepts of locking, blocking, waiting and notification. In the model, we take a viewpoints approach, first capturing the role of the objects and threads, and then taking a system view where we capture the way the objects and threads cooperate and communicate. As a simple illustration of how the model can, in general be applied, we use Object-Z inheritance to integrate the model with the classical producer-consumer system to create a specification directly incorporating the Java concurrency constructs.
Validation of a light-weight approach to knowledge-based re-engineering by a COBOL-to-Java converter