1,815 research outputs found
Recommended from our members
Using formal methods to support testing
Formal methods and testing are two important approaches that assist in the development of high quality software. While traditionally these approaches have been seen as rivals, in recent
years a new consensus has developed in which they are seen as complementary. This article reviews the state of the art regarding ways in which the presence of a formal specification can be used to assist testing
AN EXECUTABLE SPECIFICATION FORMALISM REPRESENTING ABSTRACT DATA TYPES
It has been proved to be very useful and necessary to give formal specifications of software
systems to be developed. The specifications should help to avoid the necessity of creating
prototypes by offering direct executability. A useful specification language aiming the
description of abstract data types - while maintaining abstractness - should also support
the representation of states of objects, as well as support the transformation of declarative
specifications into efficiently executable code.
The present paper is intended to give an informal description of a specification language
aimed to offer the features discussed above. Although the development of the language
has mainly been motivated by the object-oriented language (OMOHUNDRO, 1993),
it is intended to function as a specification formalism at a much broader field
A Historical Perspective on Runtime Assertion Checking in Software Development
This report presents initial results in the area of software testing and analysis produced as part of the Software Engineering Impact Project. The report describes the historical development of runtime assertion checking, including a description of the origins of and significant features associated with assertion checking mechanisms, and initial findings about current industrial use. A future report will provide a more comprehensive assessment of development practice, for which we invite readers of this report to contribute information
A Survey of Languages for Specifying Dynamics: A Knowledge Engineering Perspective
A number of formal specification languages for knowledge-based systems has been developed. Characteristics for knowledge-based systems are a complex knowledge base and an inference engine which uses this knowledge to solve a given problem. Specification languages for knowledge-based systems have to cover both aspects. They have to provide the means to specify a complex and large amount of knowledge and they have to provide the means to specify the dynamic reasoning behavior of a knowledge-based system. We focus on the second aspect. For this purpose, we survey existing approaches for specifying dynamic behavior in related areas of research. In fact, we have taken approaches for the specification of information systems (Language for Conceptual Modeling and TROLL), approaches for the specification of database updates and logic programming (Transaction Logic and Dynamic Database Logic) and the generic specification framework of abstract state machine
State-Based Formal Methods for Distributed Processing: From Z to Object-Z
In this paper, we look at state-based specification notations and how they may be extended with concepts from object orientation. In particular, we focus on the Z specification language and one of its object-oriented extensions Object-Z. The state-based paradigm is introduced by specifying an ODP trader object in Z. The paper provides an overview of other state-based notations and discusses how such notations have been extended to support object orientation. Finally, we present a specification of the ODP trading function in Object-Z
- …