Automatic derivation of formal software specifications from informal descriptions
- 1 January 1991
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 17 (10) , 1126-1142
- https://doi.org/10.1109/32.99198
Abstract
SPECIFIER, an interactive system which derives formal specifications of data types and programs from their informal descriptions, is described. The process of deriving formal specifications is viewed as a problem-solving process. The system uses common problem-solving techniques such as schemas, analogy, and difference-based reasoning to derive formal specifications. If an informal description is a commonly occurring operation for which the system has a schema, then the formal specification is derived by instantiating the schema. If there is a no such schema, SPECIFIER tries to find a previously solved problem which is analogous to the current problem. If the problem found is directly analogous to the current problem, it applies an analogy mapping to obtain a formal specification. On the other hand, if the analogy found is only approximate, it solves the directly analogous part of the problem by analogy and performs difference-based reasoning using the remaining (unmatched) parts to transform the formal specification obtained by analogy to a formal specification for the entire original problem.Keywords
This publication has 17 references indexed in Scilit:
- Deriving specification from requirementsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- The Requirements Apprentice: automated assistance for requirements acquisitionIEEE Transactions on Software Engineering, 1991
- Detecting interference when merging specification evolutionsPublished by Association for Computing Machinery (ACM) ,1989
- Constructing specifications by combining parallel elaborationsIEEE Transactions on Software Engineering, 1989
- The requirements apprentice: an initial scenarioPublished by Association for Computing Machinery (ACM) ,1989
- Top-down synthesis of divide-and-conquer algorithmsArtificial Intelligence, 1985
- The Programmer's Apprentice: Knowledge Based Program EditingIEEE Transactions on Software Engineering, 1982
- Theorem proving with abstractionArtificial Intelligence, 1981
- Program ConstructionLecture Notes in Computer Science, 1979
- Program synthesis by analogyPublished by Association for Computing Machinery (ACM) ,1977