Design-by-Contract
45 Followers
Recent papers in Design-by-Contract
Effective testing involves preparing test oracles and test cases, two activities which are too tedious to be effectively performed by humans, yet for the most part remain manual. The AutoTest unit testing framework automates both, by... more
ABSTRACT Classical views on testing and their associated testing models are not dealing with the question of fault repairing but only focus on fault detection. Diagnosis consists of determining the nature of a detected fault, of locating... more
Non-functional requirements such as performance, program size, and energy consumption significantly affect the quality of software systems. Small devices like PDAs and mobile phones have little memory, slow processors, and energy... more
Object-Z is an object-oriented specification language which extends the Z language with classes, objects, inheritance and polymorphism that can be used to represent the specification of a complex system as collections of objects. There... more
Bài báo trình bày những vấn đề về thiết kế theo hợp đồng, kiểm thử đơn vị cũng như những điểm mạnh và những hạn chế của chúng; từ đó đề ra giải pháp kết hợp thiết kế theo hợp đồng và kiểm thử đơn vị. Công cụ csUnit được sử dụng để kiểm... more
The artifacts of Analysis and Design Methodologies are specified by means of modeling languages. In a relatively short period of time, UML has become the "lingua franca" in software engineering. Metamodeling and abstraction are... more
Web services have received a lot of attention from both researchers and the business IT sector. Most of web service research has been devoted to the issues of standards and supporting technologies. However, despite the considerable volume... more
The Java Modeling Language (JML) is widely used in academic research as a common language for formal methods tools that work with Java. JML is a design by contract language that can be used to specify detailed designs of Java programs,... more
This paper reports on a testing case study applied to a small Java application, partially specified in JML. It illustrates that JML can easily be integrated with classical testing tools based on combinatorial techniques and random... more
The Java Modeling Language (JML) is a behavioral interface specification language (BISL) designed for Java. It was developed to improve functional software correctness of Java applications. However, the JML compiler explores the... more
Statecharts constitute an executable language for modelling event-based reactive systems. The essential complexity of statechart models solicits the need for advanced model testing and validation techniques. In this article we propose a... more
This paper deals with the modeling, automatic implementation and runtime verification of constraints in component-based applications. Constraints have been assuming an ever more relevant role in modeling distributed systems as long as... more
In the last years, the concern with the correctness of programs has been leading programmers to enrich their programs with annotations following the principles of design-by-contract, in order to be able to guarantee their correct... more
is a methodology to construct quality software. DbC associates the contract specification (pre and postconditions of methods of class and class invariant) with the design of a class. In this paper, we combine data flow testing and Design... more
Object-Z is an object-oriented specification language which extends the Z language with classes, objects, inheritance and polymorphism that can be used to represent the specification of a complex system as collections of objects. There... more
Predicate testing, also known as (branch) condition testing, is most often filed under structural (white box) test case design techniques. Nevertheless, contract-based specification techniques allow for adapting classical predicate... more
Current embedded systems are increasingly more complex and heterogeneous, but they are expected to be more safe, reliable and adaptive. In consideration of all these aspects, their design is always a great challenge. Developing these... more
This paper describes the benefit of incorporating two ideas from Design-by-Contract [3] into the teaching of Cleanroom Software Engineering [4][5], namely the specification of method behavior in terms of inspector methods, and inheritance... more
We report on our experiences in teaching lightweight formal methods with Eiffel. In particular, we discuss how we introduce formal methods via Eiffel's design-by-contract and agent technologies, and how we integrate these techniques with... more
Architecture description languages (ADLs) are used to specify high-level, compositional views of a software application. ADL research focuses on software composed of prefabricated parts, so-called software components. ADLs usually come... more
The literature for deductive formal verification is quite rich; however, very few case studies have been done. The authors present a case study of using deductive formal verification of a navigation system from the avionics domain. Both... more
Considerable progress has been made towards automatic support for one of the principal techniques available to enhance program reliability: equipping programs with extensive contracts. The results of current contract inference tools are... more
Design by contract is a practical methodology for evolving code together with its specification. The contract has important methodological implications on the design of the program. In addition, tools that instrument the code to check for... more
Testing is commonly used to check conformance in contract-based programs, as verification by formal proofs is hard to scale and static analysis is, sometimes, limited for detecting general nonconformances. Traditional test cases, with... more
Increasing effort in development of high quality distributed systems requires ground methodological base. Design by Contract approach looks very promising as a candidate since it helps to obtain component-wise specification and design, to... more
This paper deals with the modeling and the automatic implementation of constraints in component based applications. Constraints have been assuming an ever more relevant role in modeling distributed systems as long as business rules... more
ESpec is a suite of tools that facilitates the testing and veriflcation of object-oriented Eifiel programs in an integrated environment. The suite includes unit testing tools (ES-Test) and Fit tables (ES-Fit for customer requirements)... more
TIBO derivatives, as non-nucleoside reverse transcriptase inhibitors, have gained a definitive place in the treatment of HIV-1 infections. Some new TIBO-like derivatives have been designed by contraction of the b-ring (diazepine ring) of... more
Las capacidades conversacionales de un agente pedagógico (la personi cación del entrenador) permiten una interacción social con los aprendices; luego, su aplicación en entornos virtuales 3D para el entrenamiento permite mejorar esta... more
The Java Modeling Language (JML) is a behavioral interface specification language (BISL) designed for Java. It was developed with the aim of improving the functional software correctness of Java applications. The JML compiler (jmlc)... more
It is claimed in the literature that the contracts of a system present crosscutting structure during its realization. In this context, there has been attempts to improve separation of crosscutting contracts, e.g. by aspect-oriented... more
Assertions are a basic programming ingredient. If the language you use does not support them in a proper way, at least you must use some kind of standardized comments, to express things like preconditions for functions. The comments can... more
Learning object design by contract is a proposal for formalization of learning object metadata in order to enhance the design of Web-based educational contents by augmenting their reusability. It basically consists of a formal notation... more
Sulu is a programming language designed with automated unit testing specifically in mind. One aim of Sulu is to demonstrate how automated software testing can be more integrated into current software development processes. Sulu's runtime... more
The Java Modeling Language (JML) is a behavioral interface specification language (BISL) designed for Java. It was developed with the aim of improving the functional software correctness of Java applications. The JML compiler (jmlc)... more
Non-functional requirements such as performance, program size, and energy consumption significantly affect the quality of software systems. Small devices like PDAs and mobile phones have little memory, slow processors, and energy... more
Aspect oriented programming is a way of reducing the complexity of software development, in the sense that it is easier to reason about isolated concepts. The complexity of web applications has been increasing in the last few years,... more
Assertions or formal program specifications are fundamental to build more reliable software. One of the most important applications of assertions is found in the Design by Contract metaphor: pre-conditions, invariants and postconditions.... more
We present an approach for testing Java implementations of abstract data types (ADTs) against their specifications. The key idea is to reduce this problem to the run-time monitoring of contract annotated classes, which is supported today... more
... Index TermsObject-oriented design methods, programming by contract, diagnostics, metrics. Ç 1 INTRODUCTION SEVERAL works advocate the use of assertions to improve software quality [1], [2], [3], [4], [5], but very few are actually... more
Abstract Design by contract is the principle that the interfaces between modules of a software system-especially a mission-critical one-should be governed by precise specifications. The contracts cover mutual obligations (pre-conditions),... more