An automated tool for analyzing completeness of equational specifications

  • Authors:
  • Deepak Kapur

  • Affiliations:
  • The Univ. of Albany, Albany, NY

  • Venue:
  • ISSTA '94 Proceedings of the 1994 ACM SIGSOFT international symposium on Software testing and analysis
  • Year:
  • 1994

Quantified Score

Hi-index 0.00

Visualization

Abstract

Books on software engineering methodologies talk about the significance and need for designing consistent and complete specifications during the requirement analysis and design stages of a software development cycle. There is, however, little (or at best very limited) discussion of methods for ensuring these structural properties of specifications. In this paper, we discuss methods for checking completeness of equational specifications. Some of these methods were earlier proposed in somewhat different form in the context of developing the so-called inductionless induction method for automating proofs by induction using completion procedures. These methods are implemented in our theorem prover Rewrite Rule Laboratory (RRL), and have been tried on a number of examples of specifications of data abstractions. In case a specification is incomplete, these methods can aid in making them complete by generating templates which are not specified. Templates can also be helpful in distinguishing between intentional and unintentional incompleteness in specifications. Further, these methods can be used to generate test cases for checking specifications and verifying implementations of specifications. These methods are illustrated on examples which exhibit their power as well as limitations.