Skip to main content

Tools and Behavioral Abstraction: A Direction for Software Engineering

  • Chapter
  • First Online:
The Future of Software Engineering

Capsule Summary

As in other engineering professions, software engineers rely on tools. Such tools can analyze program texts and design specifications more automatically and in more detail than ever before. While many tools today are applied to find new defects in old code, I predict that more software-engineering tools of the future will be available to software authors at the time of authoring. If such analysis tools can be made to be fast enough and easy enough to use, they can help software engineers better produce and evolve programs.

A programming language shapes how software engineers approach problems. Yet the abstraction level of many popular languages today is not much higher than that of C programs several decades ago. Moreover, the abstraction level is the same throughout the program text, leaving no room for behavioral abstraction where the design of a program is divided up into stages that gradually introduce more details. A stronger arsenal of analysis tools can enable languages and development environments to give good support for behavioral abstraction.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 54.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abrial, J.-R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press (1996)

    Google Scholar 

  2. Abrial, J.-R.: Modeling in Event-B: System and Software Engineering. Cambridge University Press (2010)

    Google Scholar 

  3. Abrial, J.-R., Butler, M., Hallerstede, S., Hoang, T.S., Mehta, F., Voisin, L.: Rodin: An open toolset for modelling and reasoning in Event-B. International Journal on Software Tools for Technology Transfer (April 2010)

    Google Scholar 

  4. Back, R.-J.: On the Correctness of Refinement Steps in Program Development. PhD thesis, University of Helsinki (1978) Report A-1978-4.

    Google Scholar 

  5. Back, R.-J., von Wright, J.: Refinement Calculus: A Systematic Introduction. Graduate Texts in Computer Science. Springer-Verlag (1998)

    Google Scholar 

  6. Barnett, M., F¨ahndrich, M., Logozzo, F.: Embedded contract languages. In ACM SAC - OOPS. ACM (March 2010)

    Google Scholar 

  7. Barnett, M., Leino, K.R.M., Schulte, W.: The Spec# programming system: An overview. In Gilles Barthe, Lilian Burdy, Marieke Huisman, Jean-Louis Lanet, and Traian Muntean, editors, CASSIS 2004, Construction and Analysis of Safe, Secure and Interoperable Smart devices, volume 3362 of Lecture Notes in Computer Science, pages 49–69. Springer (2005)

    Google Scholar 

  8. Baudin, P., Filliatre, J.-C., March´, C., Monate, B., Moy, Y., Prevosto, V.: ACSL: ANSI/ISO C Specification Language, version 1.4 (2009) http://frama-c.com/.

  9. Dijkstra, E.W.: A constructive approach to the problem of program correctness. BIT, 8:174–186 (1968)

    Article  MATH  Google Scholar 

  10. Gries, D., Volpano, D.: The transform — a new language construct. Structured Programming, 11(1):1–10 (1990)

    Google Scholar 

  11. Harel, D., Kugler, H., Marelly, R., Pnueli, A.: Smart Play-out of behavioral requirements. In Mark Aagaard and John W. O’Leary, editors, Formal Methods in Computer-Aided Design, 4th International Conference, FMCAD 2002, volume 2517 of Lecture Notes in Computer Science, pages 378–398. Springer (November 2002)

    Google Scholar 

  12. Hatcliff, J., Leavens, G.T., Leino, K.R.M., M¨uller, P., Parkinson, M.: Behavioral interface specification languages. Technical Report CS-TR-09-011, University of Central Florida, School of EECS (2009)

    Google Scholar 

  13. Hoare, C.A.R.: Proof of correctness of data representations. Acta Informatica, 1(4):271–281 (1972)

    Article  MATH  Google Scholar 

  14. Jackson, D.: Software Abstractions: Logic, Language, and Analysis. MIT Press (2006)

    Google Scholar 

  15. Jackson, E.K., Seifert, D., Dahlweid, M., Santen, T., Bjørner, D., Schulte, W.: Specifying and composing non-functional requirements in model-based development. In Alexandre Bergel and Johan Fabry, editors, Proceedings of the 8th International Conference on Software Composition, volume 5634 of Lecture Notes in Computer Science, pages 72–89. Springer (July 2009)

    Google Scholar 

  16. Jones, C.B.: Systematic Software Development Using VDM. International Series in Computer Science. Prentice Hall, Englewood Cliffs, N.J., second edition (1990)

    Google Scholar 

  17. Leavens, G.T., Baker, A.L., Ruby, C.: Preliminary design of JML: A behavioral interface specification language for Java. ACM SIGSOFT Software Engineering Notes, 31(3):1–38, (March 2006)

    Article  Google Scholar 

  18. Meyer, B.: Object-oriented Software Construction. Series in Computer Science. Prentice- Hall International (1988)

    Google Scholar 

  19. Microsoft: Silverlight. http://www.microsoft.com/silverlight/.

  20. Microsoft: Axum. http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx (2010)

  21. Misra, J., Cook, W.R.: Computation orchestration: A basis for wide-area computing. Software and Systems Modeling, 6(1):83–110, (March 2007)

    Article  Google Scholar 

  22. Morgan, C.: Programming from Specifications. Series in Computer Science. Prentice-Hall International (1990)

    Google Scholar 

  23. Morris, J.M.: A theoretical basis for stepwise refinement and the programming calculus. Science of Computer Programming, 9(3):287–306, (December 1987)

    Article  MathSciNet  MATH  Google Scholar 

  24. Schwartz, J.T., Dewar, R.B.K., Dubinsky, E., Schonberg, E.: Programming with Sets: An Introduction to SETL. Texts and Monographs in Computer Science. Springer (1986)

    Google Scholar 

  25. Smith, D.R.: KIDS: A semi-automatic program development system. IEEE Transactions on Software Engineering, 16(9):1024–1043, (September 1990)

    Article  Google Scholar 

  26. Smith, D.R., Kotik, G.B., Westfold, S.J.: Research on knowledge-based software environments at Kestrel Institute. IEEE Transactions on Software Engineering, 11(11):1278–1295, (November 1985)

    Article  Google Scholar 

  27. Wirth, N.: Program Development by Stepwise Refinement. Communications of the ACM, 14:221–227 (1971)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to K. Rustan M. Leino .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Leino, K.R.M. (2011). Tools and Behavioral Abstraction: A Direction for Software Engineering. In: Nanz, S. (eds) The Future of Software Engineering. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-15187-3_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-15187-3_7

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-15186-6

  • Online ISBN: 978-3-642-15187-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics