|
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.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
|
| |
3
|
|
| |
4
|
D. Craigen, S. Gerhart, T. Ralston, An international survey of industrial applications of formal methods. NISTGCR 93/626, National Institute of Standards and Technology, Gaithersburg, MD.
|
| |
5
|
|
 |
6
|
John Gannon , Paul McMullin , Richard Hamlet, Data Abstraction, Implementation, Specification, and Testing, ACM Transactions on Programming Languages and Systems (TOPLAS), v.3 n.3, p.211-223, July 1981
[doi> 10.1145/357139.357140]
|
| |
7
|
|
| |
8
|
|
| |
9
|
J. Guttag and J.J. Horning, "The algebraic specification of abstract data types," Acta Informatica, 10, 27- 52, 1978.
|
 |
10
|
|
| |
11
|
|
| |
12
|
|
| |
13
|
|
| |
14
|
D. Kaput, "Specification and verification of constructible data structures," Manuscript under preparation.
|
| |
15
|
|
| |
16
|
|
| |
17
|
D. Kaput, P. Narendran and H. Zhang, "On sufficientcompleteness and related properties of term rewriting systems," Acta In/ormatica 24, 395-415 1987.
|
| |
18
|
D. Kapur and X. Nie, "Reasoning about numbers in Tecton," Department of Computer Science Technical Report, March 1994. Accepted for presentation at IS- MIS'9d, October 1994.
|
| |
19
|
D. Kapur and M. Subramaniam, "Automated reasoning about parallel algorithms using powerlists," Manuscript under preparation.
|
| |
20
|
|
| |
21
|
R.A. Kemmerer, "Testing formal specifications to detect design errors," {EEE Trans. on Software Engg., 11(1), Jan. 1985, 32-43.
|
| |
22
|
D. Knuth and P. Bendix, "Simple word problems in universal algebras," in Computational Problems in Abstract Algebra (ed. Leech), Pergamon Press, 263-297, 1970.
|
| |
23
|
E. Kounalis and H. Zhang, "A general completeness test for equational specifications," Proc. of Hungarian Conference of Computer Science. Also available as Technical Report {85-R-05}, GRIN, Nancy, France, Jan. 1985.
|
| |
24
|
|
| |
25
|
|
| |
26
|
|
| |
27
|
|
| |
28
|
|
| |
29
|
James Rumbaugh , Michael Blaha , William Premerlani , Frederick Eddy , William Lorensen, Object-oriented modeling and design, Prentice-Hall, Inc., Upper Saddle River, NJ, 1991
|
 |
30
|
|
|