Abstract
In requirements engineering domain modeling with formal specifications is integrated with informal and pre-formal approaches for the construction of a formal requirements specification of the “functional” properties of the required system. The specifications are used in the modeling and analysis parts of the requirement process and provide means for validation, including early prototyping and theorem-proving.
An evolutionary process model is proposed for system design and program development, whereby the correctness of all development steps is checked by suitable verification tools. The model centers around a development graph which consists of units, e.g. formal specifications, proofs, and programs, and relations between these units. There are three kinds of relations: syntactic relations, semantic relations, and modifications. In each development step units are either created, transformed, or modified.
Program and system development are understood as the development of specifications from the requirement specification to a constructive specification which can then be directly transformed into a program. Main features of the approach are modularity, compositionality, and reusability of specifications, programs, and proofs.
Preview
Unable to display preview. Download preview PDF.
References
Abdelwaheb Ayari, Stefan Friedrich, Ramses A. Heckler, and Jacques Loeckx. Das Fallbeispiel LEX. Working Paper WP92/39, Universität Saarbrücken, Dezember 1992.
C. Ashworth and M. Goodland. SSADM — A Practical Approach. McGraw Hill, 1990.
Ralph Betschko, Sabine Dick, Klaus Didrich, and Wolfgang Grieskamp. Formal Development of an Efficient Implementation of a Lexical Scanner within the Korso methodology framework. Technical Report 93-30, TU Berlin, October 1993.
F.L. Bauer, B. Möller, H. Partsch, and P. Pepper. Formal Program Construction By Transformations-Computer-Aided, Intuition Guided Programming. Technische Universität München, 1988.
T.D. Biggerstaff and A.J. Perlis, editors. Software Reusability, volume 1 & 2. New York: ACM Press, 1989.
F.L. Bauer and H. Wössner. Algorithmic Language and Program Development, Springer-Verlag, Berlin, 1982.
M. Broy and M. Wirsing. Correct Software: From Experiments to Applications. in this volume.
A. Camilleri, M. Gordon, and T. Melham. Hardware Verification Using Higher-Order Logic. In D. Borrione, editor, From HDL Descriptions to Guaranteed Correct Circuit Designs, North-Holland, pages 43–71, 1987.
F. Cornelius, H. Hußmann, and M. Löwe. The Korso Case Study for Software Engineering with Formal Methods: A Medical Information System. in this volume.
I. Claßen, M. Löwe, S. Waßerroth, and J. Wortmann. Static and dynamic semantics of entity-relationship models based on algebraic methods. In B. Wolfinger, editor, Innovationen bei Rechen-und Kommunikationssystemen, Informatik aktuell, pages 2–9. Springer-Verlag, 1994.
J. Darlington and R.M. Burstall. A System which automatically Improves Programs. ACTA Informatica, 6(1), 1973.
Klaus Didrich, Andreas Fett, Carola Gerke, Wolfgang Grieskamp, and Peter Pepper. OPAL: Design and Implementation of an Algebraic Programming Language. In Jürg Gutknecht, editor, Programming Languages and System Architectures, International Conference, Zurich, Switzerland, March 1994, LNCS 782, pages 228–244. Springer, 1994.
E. Dubois, J. Hagelstein, E. Lahou, F. Ponsaert, A. Rifout, E. Stephens, and F. Williams. Model Components for Requirements Engineering. Final report, ESPRIT1 METEOR project, Task1, 1986.
E. W. Dijkstra. A Discipline of Programming. Prentice-Hall, Inc., 1976.
Axel Dold and Martin Strecker. Program development with specification operators — illustrated by a specification of the LEX scanner. Technical report, Universität Ulm, January 1993.
H. Ehrig and B. Mahr. Fundamentals of Algebraic Specifications 1: Equations and Initial Semantics, volume 6 of EATCS Monographs on Theoretical Computer Science. Springer-Verlag, Berlin, 1985.
S. J. Garland and J. V. Guttag. LP: The Larch Prover. In E. Lusk and R. Overbeek, editors, 9th International Conference on Automated Deduction (Argonne, Illinois), pages 748–750. Springer Verlag, 1988.
J. V. Guttag and J. J. Horning. The Algebraic Specification of Abstract Data Types. ACTA Informatica, 10(1):27–52, 1978.
J. V. Guttag and J. J. Horning. Introduction to LCL — A Larch/C Interface Language. In S. Prehn, W. J. Toetenel, G. Goos, and J. Hartmanis, editors, VDM '91 Formal Software Development Methods 4th international Symp. (Noordwijerhout, Nov. 1991) LCNS 552, pages 28–78. Springer Verlag, 1991.
S. Gastinger, R. Hennicker, and R. Stabl. Design of modular software systems with reuse. in this volume.
M. Gordon. Why Higher-Order Logic is a good Formalism for Specifying and Verifying Hardware. In G. J. Milne and P. A. Subrahmanyam, editors, Formal Aspects of VLSI Design (Edinburgh Jan. 1985), pages 153–179. North-Holland, 1986.
D. Gries. The Science of Programming. Springer Verlag, 1981.
J. V. Guttag. The Larch Approach to Specification. In S. Prehn, W. J. Toetenel, G. Goos, and J. Hartmanis, editors, VDM '91 Formal Software Development Methods 4th Intern. Sympos. (Noordwijkerhout, Oct. 1991) LNCS 551. Springer Verlag, 1991.
F.W. von Henke, J.S. Crow, R. Lee, J.M. Rushby, and R.A. Whitehurst. The EHDM verification environment: an overview. In 11th National Computer Security Conference, Baltimore, NBS/NCSC, 1988.
R. Hettler. Zur Übersetzung von E/R-Schemata nach SPECTRUM. Technischer Bericht TUM-I9333, TU München, 1993.
R. Hettler. A Requirement Specification for a Lexical Analyzer. Technical Report TUM-I9409, TU München, 1994.
J. He, C. A. R. Hoare, and J.W.Sanders. Data Refinement refined. In G Goos and J. Hartmanis, editors, European Symposium on Programming, LNCS 213, pages 187–196. ESOP 86, 1986.
C. A. R. Hoare. Developments in Concurrency and Communication. Addison-Wesley Publishing Company, 1990.
H. Hußmann. Zur formalen Beschreibung der funktionalen Anforderungen an ein Informationssystem. Technical Report TUMI-9332, Technische Universität München, 1993.
H. Hußmann. Formal foundations for pragmatic software engineering methods. In B. Wolfinger, editor, Innovationen bei Rechen-und Kommunikationssystemen, Informatik aktuell, pages 27–34. Springer-Verlag, 1994.
C. B. Jones. Systematic Software Development Using VDM. Prentice-Hall, 1986.
K. D. Jones. Support Environments for VDM. In D. Bjorner, C. B. Jones, M. Mac An Airchinnigh, and E. J. Neuhold, editors, VDM '87 — VDM — A Formal Method at Work (Bruessel March 1987), pages 110–118. Springer Verlag, 1987.
B. Krieg-Brückner. Algebraic formalisation of program development by transformation. In H. Ganzinger, editor, European Symposium on Programming 1988, LNCS 300, pages 34–48. Springer, 1988.
L. J. Kolyang and B. Wolff. Transformational Development of the LEX Example. In B. Krieg-Brückner, editor, Programmentwicklung durch Spezifikation und Transformation — Bremer Beiträge zum Verbundprojekt Korso, volume 2 of Informatik Bericht. Universität Bremen, 1994.
C. Lewerentz and T. Lindner. Case Study Production Cell: A Comparative Study in Formal Specification and Verification. FZI Publication, FZI Karlsruhe, January 1994.
E. Mayger, B. Harris, S. Fin, M. Fourman, and M. Francis. Version 4.2 LAMBDA documentation. Technical report, Abstract Hardware Limited, 1992.
Z. Manna and R. Waldinger. The Logic of Computer Programming. IEEE Transactions on Computers, 27(3):199–229, 1979.
F. Nicki. Ablaufspezifikation durch Datenflußdiagramme und Axiome. In B. Wolfinger, editor, Innovationen bei Rechen-und Kommunikationssystemen, Informatik aktuell, pages 10–18. Springer-Verlag, 1994.
Tobias Nipkow and Lawrence C. Paulson. Isabelle-91. In Deepak Kapur, editor, Proc. 11th Int. Conf. Automated Deduction, pages 673–676. LNCS 607, 1992.
E. R. Olderog, S. Rössig, V. Sander, and M. Schenke. ProCoS at Oldenburg: The Interface between Specification Language and occam-like Programming Language. Technical Report 3/92, Universität Oldenburg, 1992.
R. Paige. Transformational programming — applications to algorithms and systems. In 10th ACM POPL Symposium, Austin, Texas, 1983.
H. Partsch. Specification and Transformation of Programs — A Formal Approach to Software Development. Springer-Verlag, Berlin, 1990.
L. C. Paulson. Logic and Computation: Interactive Proof with Cambridge LCF. Computing Reviews, 1987.
P. Pepper, R. Betschko, S. Dick, and K. Didrich. Realizing Sets by Hash Tables. in this volume.
W. Reif. The KIV-Approach to Software Verification. in this volume.
W. Reif and K. Stenzel. Reuse of Proofs in Software Verification. In Shyamasundar, editor, Conference on Foundations of Software Technology and Theoretical Computer Science, LNCS 761, Bombay, India, 1993. Springer.
Wolfgang Reif, Gerhard Schellhorn, and Kurt Stenzel. Developing a verified lexical scanner — a methodological case-study with the KIV System. Technical report, Universität Karlsruhe, 1993.
D. R. Smith. KIDS A Knowledge-Based Software Development System. In M. R. Lowry and R. D. McCartney, editors, Automating Software Design, pages 483–514, 1991.
I. Sommerville. Software Engineering. Addison-Wesley, Mass., 3rd edition, 1992.
N. Wirth. Algorithmen und Datenstrukturen. Teubner, 1983.
Martin Wirsing. Algebraic Specification. In J. van Leeuven, editor, Handbook of Theoretical Computer Science, Amsterdam, 1990. North-Holland.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Pepper, P. et al. (1995). A method for the development of correct software. In: Broy, M., Jähnichen, S. (eds) KORSO: Methods, Languages, and Tools for the Construction of Correct Software. Lecture Notes in Computer Science, vol 1009. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0015454
Download citation
DOI: https://doi.org/10.1007/BFb0015454
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60589-8
Online ISBN: 978-3-540-47802-7
eBook Packages: Springer Book Archive