Author_Institution :
Lab. de Recherche en Inf., Univ. Paris Sud, Orsay, France
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 :
formal specification; software engineering; Ada; Horn clauses; abstract modules; bottom-up development strategies; concrete modules; development; executable specifications; large modular software; logic computation; prototyping; specification; systematic stepwise refinement schemes; top-down development; Computer science; Concrete; Equations; Formal specifications; Life testing; Logic; Programming; Prototypes; Software prototyping; Software testing; Testing;