skip to main content
article
Free Access

Abstraction-based software development

Published:01 May 1986Publication History
Skip Abstract Section

Abstract

A five-year experience with abstraction-based software-development techniques in the university environment indicates that the investment required to support the paradigm in practice is returned in terms of greater ability to control complexity in large projects—provided there exists a set of software tools sufficient to support the approach.

References

  1. 1 Albrecht, A.}., and Gaffney, I.E., Jr. Software function, source lines of code, and development effort prediction: A software science validation. IEEE Trans. Sofrzu. Eng. SE-g, 6 (Nov. 1963), 639-647.Google ScholarGoogle Scholar
  2. 2 Alford, M.W. A requirements engineering methodology for real-time processing requirements. IEEE Trans. Sofrw. Eng. SE-3, 1 (Jan. 1977), 60-68.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3 Alford, M.W. SREM at the age of eight: The distributed computing design system. Computer 18.4 (Apr. 1985), 36-46.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4 Atkinson, R.R. Optimization techniques for a structured programming language. M.S. thesis, Dept. of Electrical Engineering and Computer Science, MIT, Cambridge, May 1976.Google ScholarGoogle Scholar
  5. 5 Berzins, V., and Gray, M. Analysis and design in MSG.84: Formalizing functional specifications. IEEE Trans. .%@I. Eng. SE-II, 8 (Aug. 1985). 657-670. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 Berzins, V., and Keefe, T. DB user manual. Tech. Rep. 85-6, Dept. of Computer Science, Univ. of Minnesota, Minneapolis, Mar. 1985.Google ScholarGoogle Scholar
  7. 7 Boehm, B.W. Software Engineering Economics. Prentice-Hall, Englewood Cliffs, N.J., 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8 Booth. G. Soffware Engineering with Ada. Benjamin/Cummings, Menlo Park, Calif. 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 Budd. T.A., DeMillo, R.A. Lipton, R.J., and Sayward, F.G. Theoretical and empirical studies on using program mutation to test the functional correctness of programs. In Proceedings of the ACM Symposium on Principles of Programming Languages (Las Vegas, Nev. Jan. 28-30). ACM, New York, 1980, pp. 220-233. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10 Caine. S.H. and Gordon, E.K. PDL-A tool for software design. In Proceedings of the National Computer Conference (Anaheim, Calif. May 19-22). AFIPS Press. Arlington, Va., 1975.Google ScholarGoogle Scholar
  11. 11 Cho. C.K. An Introduction to Software Quality Control. Wiley, New York, 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12 Davis, A.M. The design of a family of application-oriented requirements languages. Computer 15,5 {May 1982), 27-28.Google ScholarGoogle Scholar
  13. 13 Dennis, J.B. Modularity. In Software Engineering: An Advanced Course, vol. 30. F.L. Bauer. Ed. Springer-Verlag. New York, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14 Dept. of Defense. Ada programming language. ANSI/MIL-STD- 1815A, Dept. of Defense. Washington, D.C. 1983.Google ScholarGoogle Scholar
  15. 15 Dijkstra, E.W. A Discipline of Programming. Prentice-Hall, Englewood Cliffs, N.J., 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16 Galbraith. J.R. Organizational Design: An Information Processing View. Addison-Wesley. Reading, Mass., 1973.Google ScholarGoogle Scholar
  17. 17 Goguen, }.A. Thatcher, J.W. and Wright. E.G. An initial algebra approach to the specification, correctness, and implementation of abstract data types. In Current Trends in Programming Methodology Vol. 4. R.T. Yeh, Ed. Prentice-Hall, &&wood Cliffs, N.J., 1978.Google ScholarGoogle Scholar
  18. 18 Goguen. J.A., Thatcher, J.W., Wagner, E.G., and Wright, J.B. Abstract data types as initial algebras and the correctness of data representations. In Proceedings of the Conference on Computer Graphics, Pattern Recognition, and Data Structures (Los Angeles, Calif., May 14-16). IEEE Service Center, Piscataway, N.J., 7975, pp. 89-93.Google ScholarGoogle Scholar
  19. 19 Goldberg, A., and Robinson, D. Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading, Mass., 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20 Good, D. Mechanical proofs about computer programs. Tech. Rep. 41. Institute for Computing Science, Univ. of Texas at Austin, Mar. 1981.Google ScholarGoogle Scholar
  21. 21 Gries. D. The Science of Programming. Springer-Verlag. New York, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22 Guttag. J.V. Horowitz, E., and Musser, D.R. Abstract data types and software,validation. Commun. ACM 21, 12 (Dec. 1978), 1048-1064. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23 Herlihy. M., and Liskov, B. A value transmission method for abstract data types. ACM Trans. Program. Lang. Syst. 4.4 (Oct. 1982). 527-551. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24 Hewitt, C.E. and Baker, H. Actors and continuous functionals. In FormaI Description of Programming Concepts, Elsevier North-Holland, New York, 1978. pp. 367-387.Google ScholarGoogle Scholar
  25. 25 Hoare. C.A.R. Proof of correctness of data representations. Acta Inf. I, 4 (Nov. 1972), 271-281.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 26 Ichbiah. I.D. Heliard, ).C., Roubine. O., Barnes, J.G.P. Krieg- Brueckner. B., and Wichmami, B.A. Rationale for the design of the Ada programming language. SIGPLAN Not. 14, 6B {June 1979). Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 27 IEEE Computer Society. Standard for software test documentation. ANSI/IEEE Std 829-1983. IEEE Service Canter, Piscataway. N.J., 1983.Google ScholarGoogle Scholar
  28. 28 Katz. R.H. Managing the chip design database. Computer 16, 12 (Dec. 1983). 26-36.Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 29 Ketabchi, M. On the management of computer aided design databases. Ph.D. thesis, Dept. of Computer Science. Univ. of Minnesota, Minneapolis, Nov. 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 30 Ketahchi. M., and Berzins, V. Generalization per category: Theory and application. Tech. Rep. 85-29, Computer Science Dept., Univ. of Minnesota, Minneapolis.Google ScholarGoogle Scholar
  31. 31 Levene. A.A. and Mullery. G.P. An investigation of requirements specification languages: Theory and practice. Computer 25, 5 (May 1982). 50-59.Google ScholarGoogle Scholar
  32. 32 Liskov. B. and Eierzins. V. An appraisal of program specifications. In Research Directions in Software Technology, P. Wegner. Ed. MIT Press, Cambridge, Mass., 1979.Google ScholarGoogle Scholar
  33. 33 Liskov. B. and Guttag, J.V. Abstraction and Specification in Program Development. MIT Press. Cambridge, Mass., and McGraw-Hill. New York, Mar. 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. 34 Liskov. B., and Zilles, S. Programming with abstract data types. Proc. ACM SlGPL4N Not. Conf. Very High Level Lang. 9,4 (Apr. 1974), 50-59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. 35 Liskov. B., Snyder, A., Atkinson, R. and Schaffert. C. Abstraction mechanisms in CLU. Commun. ACM 20,8 (Aug. 1977), 564-576. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. 36 Liskov, B. Atkinson, R., Bloom, T., Moss, E., Schaffert, I., and Scheifler. R. CLU Reference ManuaL Springer-Verlag. New York, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. 37 Martin, 1. The design of a language based editor for MSG. Master's thesis, Dept. of Computer Science, Univ. of Minnesota, Minneapolis, 1985.Google ScholarGoogle Scholar
  38. 38 Muchnick. S.S., and }ones, N.D. Program Flow Analysis: Theory and Applications. Prentice-Hall, Englewood Cliffs, N.J., 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. 39 Musser. D. Abstract data type specification in the AFFIRM system. IEEE Trans. Softw. Eng. SE-6 1 (June 1980), 24-31.Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. 40 Nakajima. R. IOTA. IEEE Trans. Softw. Eng. SE-II, 2 (Feb. 1985), 179-187.Google ScholarGoogle Scholar

Index Terms

  1. Abstraction-based software development

        Recommendations

        Reviews

        Boumediene Belkhouche

        This paper describes the experience of the authors in conducting a class project in software engineering. The goal of this project was to apply state-of-the-art software engineering principles through integration of technical as well as managerial concepts. The informal experiment, repeated over a five-year period, involved the development of a large and complex software project by teams of students. Each team was required to use the abstraction paradigm and to follow the conventional software life cycle. Initially, each team was involved in the analysis and refinement of the requirements. Afterwards, the system requirements were divided along independent categories and assigned to individual teams. The development process covered requirements definition, functional specification, architectural design, module design, and implementation. Abstraction and formal tools were used in each phase to express the design. The analysis of the results, though informal, is quite revealing. The major problems were integration, decomposition, tool availability, and testing. There was a failure to integrate separately implemented portions of the system. The authors attributed the failure to poor communication among design teams and noted that “. . . incomplete and conflicting product interfaces were found in the latter stages of the life cycle when parts of the system were distributed among teams for design and implementation.” A possible solution to this problem may be to provide a formal and independent definition of the interfaces at the specification stage only, and automatically transform these interfaces for the subsequent stages. Decomposition of the system was performed so as to achieve “. . . relatively homogeneous implementation size . . .” of the modules in order to be able to predict the amount of effort required to implement each unit and, thus, aid in planning. We suggest that this artificial segmentation itself may have contributed to the problem encountered in the interfaces between units. The decomposition should have been functional, for example, by abstract data type. The authors did observe, in fact, that this arbitrary decomposition resulted in integration problems not encountered by teams working on modules based on complete abstractions. Analysis of the models produced at different stages was hampered by the lack of automated tools. Special and PSL/PSA were initially selected, but were found inadequate for the task. A central database to coordinate the team efforts was built by the authors. In addition, a broad-spectrum language (MSG) was used to express the design. However, it seems that pseudocode was employed in module design. This fact suggests that the development moved from a formal to an informal description, thus implying a loss of valuable information and possible reintroduction of ambiguities which were eliminated at the specification stage. This informal experiment uncovers many issues concerning the use of abstraction in software development. As such, it provides a good and provocative basis for further research in this area.

        Access critical reviews of Computing literature here

        Become a reviewer for Computing Reviews.

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image Communications of the ACM
          Communications of the ACM  Volume 29, Issue 5
          May 1986
          71 pages
          ISSN:0001-0782
          EISSN:1557-7317
          DOI:10.1145/5689
          Issue’s Table of Contents

          Copyright © 1986 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 May 1986

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader