skip to main content
article
Free access

Pragmatic problems with step-wise refinement program development

Published: 01 April 1984 Publication History

Abstract

This paper presents a generalization of two fundamental programming concepts, LOCAL ABSTRACTIONS and GLOBAL ABSTRACTIONS, and a survey of several mechanisms for implementing them. Global abstractions are semantic definitions (of objects) used throughout a program, whereas Local abstractions are refinement steps generated by the subdivision of a problem into subproblems. Global abstractions are very well supported in today's programming languages, but there is no mechanism entirely satisfactory for the "natural" development of programs using top-down step-wise decomposition techniques. Current languages lack means of expressing the hierarchical tree structure of programs. The structure of the program <u>must be retained explicitly</u>, and with varying degrees of detail at different levels corresponding to the way the program was developed. There is an important deficiency in the process of refining the solution to a problem: local abstractions, which describe intermediate stages of the solution, are replaced by their corresponding refinements.In particular, we discuss some inadequacies of "the facto" structuring constructs in modern languages, showing that, for instance, procedures should not be used for represeting refinements, since these are intended to control the "static" program structure (refinements may well represent non-executable pieces of code!). Finally, we propose the introduction of two new DESIGN constructs for developing structured programs which can show and maintain the solutions's structure as produced during the development process.

References

[1]
Booch, G. (1982) "Naming subprograms with clarity" (SIGPLAN Notices vol. 17, no. 1, pp 18--22)
[2]
Booch, G. (1983) "Software Engineering with Ada" (Benjamin-Cummings 1983)
[3]
Bowles, K. L. (1978) "UCSD Pascal: a (nealry) Machine Independent Software System" (Byte, May 1978, p3).
[4]
Dahl, O-J., Dijstra, E. W. and Hoare, C. A. R. (1972) "Structured Programming" (Academic Press)
[5]
Diaz-Herrera, J. L. and R. C. Flude (1980) "pascal/HSD: a graphical programming system" (IEEE, COMPSAC conf. Chicago, pp 723--728)
[6]
Diaz-Herrera, J. L. (1981) "An interactive graphical program development system" (PhD Thesis, University of Lancaster, U.K.)
[7]
Diaz-Herrera, J. L. (1983) "Abstraction Mechanisms" (SUNY Binghamton, Watson school, technical report CS-83-07)
[8]
Dijkstra, E. W. (1976) "A discipline of programming" (Prentice-Hall)
[9]
DoD (1983) "Reference manual for tha Ada programming language" (#008-000-00394-7, Goverment Printing Office, Washington, D.C. 20402, Feb. 1983)
[10]
Groves, L. J. (1982) "Using simple english sentences to call procedures" (SIGPLAN Notices vol. 17, no. 11, pp 31--38)
[11]
Waugh, D. W. (1980) "Ada as Design Language" (IBM Software Engineering Exchange, Oct. 1980, pp 8--12)
[12]
Welsh, J. and B. W. Bustard (1979) "Pascal-Plus: another language for modular multiprogramming" (Software-practice and experience, vol 9, pp 947--957)
[13]
Welsh, J. and M. McKeag (1980) "Structured System Programming" (Prentice-Hall international).
[14]
Wirth, N. (1971) "Program development by stepwise refinement" (C. ACM vol. 14, no. 4, pp 221--227)
[15]
Wirth, N. (1983) "The Programming Language Modula-2" (Springer-Verlag, 1983)

Cited By

View all

Index Terms

  1. Pragmatic problems with step-wise refinement program development
    Index terms have been assigned to the content through auto-classification.

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGSOFT Software Engineering Notes
    ACM SIGSOFT Software Engineering Notes  Volume 9, Issue 2
    April 1984
    120 pages
    ISSN:0163-5948
    DOI:10.1145/1010925
    Issue’s Table of Contents

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 April 1984
    Published in SIGSOFT Volume 9, Issue 2

    Check for updates

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)50
    • Downloads (Last 6 weeks)11
    Reflects downloads up to 16 Oct 2024

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media