Globally distributed software development (GSD) and agile methods are two current and important trends in software and systems engineering. While agile methods seem to cope well with increasingly changing business env...
详细信息
Globally distributed software development (GSD) and agile methods are two current and important trends in software and systems engineering. While agile methods seem to cope well with increasingly changing business environments, it is far from obvious how these light-weight processes can best contribute to GSD. In this paper, method rationale is proposed as an analytical tool to understand the values that underpin agile methods and how these map to the GSD domain. Specifically, the paper presents an initial analysis of the values and goals embraced by the 'agile manifesto' and compares briefly with partial results from an ongoing study on the use of agile methods in GSD.
Object-orientation supports software reuse via features such as abstraction, information hiding, polymorphism, inheritance and redefinition. However, while libraries of classes do exist, one of the challenges that sti...
详细信息
Object-orientation supports software reuse via features such as abstraction, information hiding, polymorphism, inheritance and redefinition. However, while libraries of classes do exist, one of the challenges that still remains is to locate suitable classes and adapt them to meet the specific requirements of the software developer. Traditional approaches to library retrieval are text-based; it is therefore difficult for the developer to express their requirements in a precise and unambiguous manner. A more promising approach is specification-based retrieval, where library component interfaces and requirements are expressed using a formal specification language. In this case retrieval is based on matching formal specifications. In this paper, we describe how existing approaches to specification matching can be extended to handle object-oriented components.
This paper presents Real-Time Object-Z: an integration of the object-oriented, state-based specification language Object-Z with the timed trace notation of the timed refinement calculus. This integration provides a me...
详细信息
This paper describes a deep embedding of a refinement calculus for logic programs in Isabelle/HOL. It extends a previous tool with support for procedures and recursion. The tool supports refinement in context, and a n...
详细信息
The mechanisation of the real numbers within theorem provers is of practical benefit for the verification of real-time systems. The real numbers provide a foundation within the theorem prover for classical mathematica...
详细信息
The mechanisation of the real numbers within theorem provers is of practical benefit for the verification of real-time systems. The real numbers provide a foundation within the theorem prover for classical mathematica...
The mechanisation of the real numbers within theorem provers is of practical benefit for the verification of real-time systems. The real numbers provide a foundation within the theorem prover for classical mathematical analysis such as differentiation and integration. The approach we have taken makes extensive use of the theory interpretation facilities of the interactive theorem prover Ergo to maximise theory reuse and hence minimise theorem redundancy. The theory developed is compared with Harrison's HOL version.
A formal specification animator executes and interprets traces on a specification. Similar to software testing, animation can only show the presence of errors, never their absence. However, animation is a powerful mea...
详细信息
A formal specification animator executes and interprets traces on a specification. Similar to software testing, animation can only show the presence of errors, never their absence. However, animation is a powerful means of finding errors, and it is important that we adequately exercise a specification when we animate it. The paper outlines a systematic approach to the animation of formal specifications. We demonstrate the method on a small example, and then discuss its application to a non-trivial, system-level specification. Our aim is to provide a method for planned, documented and maintainable animation of specifications, so that we can achieve a high level of coverage, evaluate the adequacy of the animation, and repeat the process at a later time.
A formal specification animator interprets and executes specifications to give them the appearance of liveliness. This can be used to identify errors in a specification because it provides concrete examples of the beh...
详细信息
ISBN:
(纸本)0769512879
A formal specification animator interprets and executes specifications to give them the appearance of liveliness. This can be used to identify errors in a specification because it provides concrete examples of the behaviour of the specification. By providing a suitable user interface, it allows users unfamiliar with specification languages and notations to interact with the specification. We exploit the similarities between animation and testing, and present a method that combines specification animation and software testing of abstract data types (ADTs). Tool support is provided by Peach, which supports the animation of a specification and the testing of an implementation of that specification. We demonstrate the use of our method and tool on a small example, and discuss its application to a larger example.
Java is a popular, modern programming language that supports monitors. However, monitor implementations, like other concurrent programs, are hard to test due to the inherent non-determinism. The paper presents a metho...
详细信息
Java is a popular, modern programming language that supports monitors. However, monitor implementations, like other concurrent programs, are hard to test due to the inherent non-determinism. The paper presents a method for testing Java monitors, which extends the work of P. Brinch Hansen (1978) on testing Concurrent Pascal monitors. A monitor is tested by executing a concurrent program in which the processes are synchronised by a clock to make the sequence of interactions deterministic and reproducible. The method is extended to account for the differences between Concurrent Pascal monitors and Java monitors, and to provide additional coverage of the implementation under test. Tool support and documentation in the form of a test plan are also provided. The method is illustrated in detail on an asymmetric producer-consumer monitor, which is the same example that was used to illustrate the original method. The application of the method to the readers and writers problem is also discussed.
The problem of verifying the correctness of test executions is well-known: while manual verification is time-consuming and error-prone, developing an oracle to automatically verify test executions can be as costly as ...
详细信息
ISBN:
(纸本)0769509630
The problem of verifying the correctness of test executions is well-known: while manual verification is time-consuming and error-prone, developing an oracle to automatically verify test executions can be as costly as implementing the original program. This is especially true for concurrent programs, due to their non-determinism and complexity. In this paper, we present a method that uses partial specifications to systematically derive oracles for concurrent programs. We illustrate the method by deriving an Ada task that monitors the execution of a concurrent Ada program and describe a prototype tool that partially automates the derivation process. We present the results of a study that shows the derived oracles are surprisingly effective at error detection. The study also shows that manual verification is an inaccurate means of failure detection, that large test case sets must be used to ensure adequate testing coverage, and that test cases must be run many times to cover for variations in run-time behaviour.
暂无评论