Tools and Behavioral Abstraction: A Direction for Software Engineering
- 1.1k Downloads
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.
KeywordsSoftware Engineering Software Engineer Development Environment Program Element Abstraction Level
Unable to display preview. Download preview PDF.
- 0.Abrial, J.-R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press (1996)Google Scholar
- 1.Abrial, J.-R.: Modeling in Event-B: System and Software Engineering. Cambridge University Press (2010)Google Scholar
- 2.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
- 3.Back, R.-J.: On the Correctness of Refinement Steps in Program Development. PhD thesis, University of Helsinki (1978) Report A-1978-4.Google Scholar
- 4.Back, R.-J., von Wright, J.: Refinement Calculus: A Systematic Introduction. Graduate Texts in Computer Science. Springer-Verlag (1998)Google Scholar
- 5.Barnett, M., F¨ahndrich, M., Logozzo, F.: Embedded contract languages. In ACM SAC - OOPS. ACM (March 2010)Google Scholar
- 6.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
- 7.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.Gries, D., Volpano, D.: The transform — a new language construct. Structured Programming, 11(1):1–10 (1990)Google Scholar
- 10.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
- 11.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.Jackson, D.: Software Abstractions: Logic, Language, and Analysis. MIT Press (2006)Google Scholar
- 14.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
- 15.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.Meyer, B.: Object-oriented Software Construction. Series in Computer Science. Prentice- Hall International (1988)Google Scholar
- 18.Microsoft: Silverlight. http://www.microsoft.com/silverlight/.
- 19.Microsoft: Axum. http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx (2010)
- 21.Morgan, C.: Programming from Specifications. Series in Computer Science. Prentice-Hall International (1990)Google Scholar
- 23.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