Mixing abstract and concrete modules: specification, development and prototyping
- 4 December 2002
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 173-184
- https://doi.org/10.1109/icse.1990.63620
Abstract
The authors present a methodology for developing large modular software, in which the modules may exist and interact while at different development stages. Each module may be either fully abstract (i.e., an algebraic specification), fully concrete (in which case computations are run directly in the object code) or anywhere in the middle. In the proposed approach, the authors consider executable specifications in which axioms are Horn clauses built over equations or predicates, mixed evaluation with Horn clauses, and computing goals using logic computation rules. For the 'concrete' parts, examples are developed in Ada. An essential aspect of this approach is that prototyping may be performed at every moment, whatever the state of the different modules. This introduces the usual advantages of running a prototype (debug, test, conformity to the requirements, etc.), without the usual drawbacks: having to program stubs and drivers, having to care about the evolution of the module interfaces, etc. The methodology allows for both locally top-down and bottom-up development strategies and stimulates systematic stepwise refinement schemes.<>Keywords
This publication has 14 references indexed in Scilit:
- Formal specifications, prototyping and integration testsPublished by Springer Nature ,2005
- How to make algebraic specifications more understandable: An experiment with the pluss specification languageScience of Computer Programming, 1989
- Abstract rewriting with concrete operatorsLecture Notes in Computer Science, 1989
- A theory of software reusabilityPublished by Springer Nature ,1988
- Report on the larch shared languageScience of Computer Programming, 1986
- Abstract data types with exception handling: An initial approach based on a distinction between exceptions and errorsTheoretical Computer Science, 1986
- Abstract implementations and correctness proofsPublished by Springer Nature ,1986
- Principles of OBJ2Published by Association for Computing Machinery (ACM) ,1985
- Handling function definitions through innermost superposition and rewritingPublished by Springer Nature ,1985
- Foundations of Logic ProgrammingPublished by Springer Nature ,1984