Approaches to executable specifications
Stephen W. Smoliar · 1982
At the final panel discussion of the 5th International Conference on Software Engineering, the following obr~rvations were offered by Robert Balzer
Cited by 0Open access
Read the abstract, see who wrote it and who cites it, and get the citation in APA, MLA, Chicago or Harvard.
About 1,520 papers for “executable specifications”
Stephen W. Smoliar · 1982
At the final panel discussion of the 5th International Conference on Software Engineering, the following obr~rvations were offered by Robert Balzer
Cited by 0Open access
Fraer, Ranan, Bertot, Yves, Institut National de Recherche en Informatique et en Automatique (INRIA), 06 - Valbonne (France). Unite de Recherche de Sophia-Antipolis · OpenGrey (Institut de l'Information Scientifique et Technique) · 1996
Cited by 0
Matti Nieminen · Trepo - Institutional Repository of Tampere University · 2015
In software projects, where formal specifications are utilized, programmers usually need to know separate languages and tools for tasks related to programming and formal specifications. To remedy this situation, this thesis proposes a Clojure-based formal specification method consisting of a library and tool for writing and executing formal specifications. \n\nThe library and the tool are targeted for Clojure programmers: the library enables programmers to write formal specifications with Clojure, which allows the usage of the same language for formal specifications and the implementation. The tool, that is used together with the library, allows simulating the specifications by executing them. The method presented in this thesis does not aim for formal verification with mathematical proving. Instead, the goal of the method is to offer support for formal specifications without intimidating the developers. \n\nThe developed method eases the adoption of formal specifications in projects, where Clojure is used but formal specifications are still considered too costly to adopt; the library and the tool enable Clojure programmers to adopt formal specifications in their software projects without additional costs, as the language for the formal specification and the implementation is the same. The author's method also allows working iteratively from the specification to implementation because the models created with the author's library and tool can be transformed into implementation straightforwardly.
Cited by 0Open access
Merik Meriste, Jaan Penjam · Lecture notes in computer science · 1995
Cited by 2
José Ghislain Quenum, Samir Aknine · 2018
This paper presents an empirical approach for microservice automated testing. With the rise of the agile methodology, automated testing has gained momentum in software development, including using microservices as an architectural style. However, the tests are not always related to the core specifications of the system being developed. In this paper, we discuss an approach to derive the tests, especially the acceptance tests, from the specifications of the systems. To avoid any ambiguity in the specifications, we focus on the formal specifications of the system. To this end, we introduce intelligent agents as a conceptual unit to encapsulate the formal specifications of services. Indeed, a comparison of microservice tenets and the general characterization of agents reveals that both can be thought of as autonomous software entities, driven by goals and evolving within a distributed environment and communicating with one another. Using a real-world application we show how agent formal specifications can be linked to microservice automated testing.
Cited by 7
Hee, KM Kees van, Houben, GJPM Geert-Jan, Somers, LJAM Lou et al. · TU/e Research Portal (Eindhoven University of Technology) · 1988
Cited by 0
Angel Herranz, Noelia Maya, Juan Jose Moreno-Navarro · 2003
In this paper the authors study a pair of constructs in a formal specification language that can be directly translated into readable and relatively efficient code. Those constructs are algebraic types and (an extended concept of logical) quantification. The translation is guided by object oriented design patterns that makes the synthesised code easily understandable by ordinary developers.
Cited by 0
Robert B. Terwilliger, Roy H. Campbell · 1986
Article Free Access Share on PLEASE:Predictable Logic based ExecutAble SpeCifications Authors: Robert B. Terwilliger Department of Computer Science, University of Illinois at Urbana-Champaign, 252 Digital Computer Laboratory, 1304 West Springfield Avenue, Urbana, IL Department of Computer Science, University of Illinois at Urbana-Champaign, 252 Digital Computer Laboratory, 1304 West Springfield Avenue, Urbana, ILView Profile , Roy H. Campbell Department of Computer Science, University of Illinois at Urbana-Champaign, 252 Digital Computer Laboratory, 1304 West Springfield Avenue, Urbana, IL Department of Computer Science, University of Illinois at Urbana-Champaign, 252 Digital Computer Laboratory, 1304 West Springfield Avenue, Urbana, ILView Profile Authors Info & Claims CSC '86: Proceedings of the 1986 ACM fourteenth annual conference on Computer scienceFebruary 1986 Pages 349–358https://doi.org/10.1145/324634.325453Published:01 February 1986Publication History 12citation166DownloadsMetricsTotal Citations12Total Downloads166Last 12 Months3Last 6 weeks1 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
Cited by 11
Cau, Antonio, Kuhn, Stefan, Hoey, James · arXiv (Cornell University) · 2021
In this paper the reversibility of executable Interval Temporal Logic (ITL) specifications is investigated. ITL allows for the reasoning about systems in terms of behaviours which are represented as non-empty sequences of states. It allows for the specification of systems at different levels of abstraction. At a high level this specification is in terms of properties, for instance safety and liveness properties. At concrete level one can specify a system in terms of programming constructs. One can execute these concrete specification, i.e., test and simulate the behaviour of the system. In this paper we will formalise this notion of executability of ITL specifications. ITL also has a reflection operator which allows for the reasoning about reversed behaviours. We will investigate the reversibility of executable ITL specifications, i.e., how one can use this reflection operator to reverse the concrete behaviour of a particular system.
Cited by 0Open access
Rafael Ramirez, Roland H.C. Yap, Joxan Jaffar et al. · 2007
this paper, we use as a basis a new concurrent programming model called Open Constraint Programming. Its roots are in Concurrent Constraint Programming where there is a shared constraint store, and synchronization is achieved via constraint entailment. The key advantages here are (a) the concurrent behavior of agents is formalized and explicitly represented as constraints, (b) the specification is executable, that is, agents run only as permitted, (c) there is a clear separation of the concurrent aspects of the agents' behavior from the rest of the code, and (d) agents are programming language independent.
Cited by 0
Aleksandar Milicevic, Daniel N. Jackson · DSpace@MIT (Massachusetts Institute of Technology) · 2010
In this thesis, we present a unified environment for running declarative specifications in the context of an imperative object-oriented programming language. Specifica-tions are Alloy-like, written in first-order relational logic with transitive closure, and the imperative language for this purpose is Java. By being able to mix imperative code with executable declarative specifications, the user can easily express constraint problems in-place, i.e. in terms of the existing data structures and objects on the heap. After a solution is found, our framework will automatically update the heap to reflect the solution, so the user can continue to manipulate the program heap in the usual imperative way, without ever having to manually translate the problem back and forth between the host programming environment and the solver language. We show that this approach is not only convenient, but, for certain problems, like puzzles or NP-complete graph algorithms, it can also outperform the manual implementation. We also present an optimization technique that allowed us to run our tool on heaps
Cited by 0Open access
Uwe Kastens · Lecture notes in computer science · 1993
Cited by 4
Jie Gong, Daniel D. Gajski, Sanjiv M. Narayan · eScholarship (California Digital Library) · 1994
Previous work in software/hardware codesign has addressed issues in system modeling, partitioning, and mixed module simulation and integration. Software estimation, which provides software metrics to assist the software/hardware partitioning, has not been studied. In order to rapidly explore large design space encountered in software/hardware systems, automatic software estimation is indispensable in software/hardware partitioning in which designers or partitioning tools must trade off a hardware with a software implementation for the whole or a part of the system under design. In this report we present a software estimator that provides three software metrics --- execution time, program-memory size and data-memory size for a specific executing on a given processor. Experiments have shown that our estimator has less than 20% estimation errors on different designs spanning from straight line code to code with branches and loops and even to hierarchical specifications. Experiments also show that our estimator is fast and can provide rapid feedback to the designers or partitioning tools to quickly evaluate different design alternatives.
Cited by 40Open access
David A. Turner · Philosophical Transactions of the Royal Society of London Series A Mathematical and Physical Sciences · 1984
Abstract To write specifications we need to be able to define the data domains in which we are interested, such as numbers, lists, trees and graphs. We also need to be able to define functions over these domains. It is desirable that the notation should be higher order, so that function spaces can themselves be treated as data domains. Finally, given the potential for confusion in specifications involving a large number of data types, it is a practical necessity that there should be a simple syntactic discipline that ensures that only well typed applications of functions can occur. A functional programming language with these properties is presented and its use as a specification tool is demonstrated on a series of examples. Although such a notation lacks the power of some imaginable specification languages (for example, in not allowing existential quantifiers), it has the advantage that specifications written in it are always executable. The strengths and weaknesses of this approach are discussed, and also the prospects for the use of purely functional languages in production programming.
Cited by 29
José Ghislain Quenum, Aknine, Samir · HAL (Le Centre pour la Communication Scientifique Directe) · 2018
International audience
Cited by 0
Pieter Koopman · Radboud Repository (Radboud University) · 1990
Cited by 21
Ian J. Hayes, Cliff B. Jones · Software Engineering Journal · 1989
Specifications can be written in languages which have formal semantics. Their very formality, and the similarities with some aspects of implementation languages, invites the idea that specifications might be executed. This paper presents a number of arguments against that idea. The aim is to warn of the dangers of limiting specification languages to the point where all of their constructs can be executed. While conceding the difficulties of relating specifications to an understanding of the ‘requirements’ for a system, it is argued that other solutions should be sought than ‘executable specification languages’.
Cited by 197
Ian J. Hayes, Cliff B. Jones · Queensland's institutional digital repository (The University of Queensland) · 1999
Cited by 2
Péter Müller, Jörg Meyer, Arnd Poetzsch‐Heffter · Informatik aktuell · 1999
Cited by 7
K. Drosten · Lecture notes in computer science · 1984
Cited by 7