Skip to main content

Abstract

Safety-critical software must evolve to reflect changing requirements. This paper argues that such evolution should not be carried out using source codes, but at higher level of abstraction and, therefore, reverse engineering is needed to acquire this more problem-oriented representation for existing systems.

An approach is described, based on formal transformations, to acquire an abstract representation in a domain-specific language. The design criteria for such a language are described, and then a simple language for process control is shown as an example.

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight 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. BP International Limited. B-Tool Version 1.1. 1991.

    Google Scholar 

  2. Benesh, J. and Benesh, R. An Introduction to Benesh Notation. A. and C. Black, Ltd, London, 1956.

    Google Scholar 

  3. Boldyreff, C. A Design framework for Software Concepts in the Domain of Steel Production. In Proceedings of the 3rd International Conference on Information System Developers Workbench Methodologies, Techniques, Tools and Procedures. University of Gdansk, Gdansk, September 1992.

    Google Scholar 

  4. Bull, T. M. Software Maintenance by Program Transformation in a Wide Spectrum Language. University of Durham, Ph.D. Thesis, Durham, 1994.

    Google Scholar 

  5. Bull, T. M. A Language for Expressing Program Transformations. In Proceedings of the ICSE-17 Workshop on Program Transformations. 1995.

    Google Scholar 

  6. Bull, T. M. An Introduction to the WSL Program Transformer. In Proceedings of the International Conference on Software Maintenance. IEEE Computer Society Press, San Diego, California, November 1990.

    Google Scholar 

  7. Bull, T. M., Bennett, K. H. and Yang, H. A Transformation System for Maintenance — Turning Theory into Practice. In Proceedings of the International Conference on Software Maintenance. IEEE Computer Society Press, Orlando, Florida, November 1992.

    Google Scholar 

  8. Bull, T. M., Bennett, K. H., Younger, E. J. and Luo, Z. Bylands: Reverse Engineering Safety-Critical Systems. In Proceedings of the International Conference on Software Maintenance. IEEE Computer Society Press, Nice, France, October 1995.

    Google Scholar 

  9. Buxton, J. N. and Laski, J. G. Control and Simulation Language. Computing Journal vol. 5 (1962), 194–199.

    MATH  Google Scholar 

  10. Dijkstra, E. W. A Discipline of Programming. Prentice-Hall, Englewood Cliffs, New Jersey, 1976.

    MATH  Google Scholar 

  11. Eriksen, K. E. and Prehn, S. RAISE Overview. Esprit Project Report Doc. Id. RAISE/DOC/KEE/5/V1, November 1989.

    Google Scholar 

  12. Eshokl, N. and Wachmann, A. Movement Notation. Weidenfeld and Nicholson, London, 1958.

    Google Scholar 

  13. Gadd, R. J. ReForm — from Assembler to Z using Formal Transformations. In Proceedings of the 4th European Software Maintenance Workshop. Durham, September 1990.

    Google Scholar 

  14. Group, Hood. W. Hood Reference Manual. European Space Agency, Document WME/89-173/JB, 1989.

    Google Scholar 

  15. Hoare, C. A. R. An Axiomatic Basis for Computer Programming. Communications of the ACM vol. 12 no. 10 (1969), 576–580, 583.

    Article  MATH  Google Scholar 

  16. Hoare, C. A. R. Communicating Sequential Processes. Prentice-Hall, En-glewood Cliffs, New Jersey, 1985.

    MATH  Google Scholar 

  17. Hoare, C. A. R. The Emperor’s Old Clothes: The 1980 ACM Turing Award Lecture. Presented at Communications of the ACM (February 1981).

    Google Scholar 

  18. Hutchinson, A. Labanotation. Theatre Arts, 1977.

    Google Scholar 

  19. Jackson, M. A. Principles of Program Design. Academic Press, London, 1975.

    Google Scholar 

  20. Jackson, M. A. The World and the Machine. In Proceedings of the 17th International Conference on Software Engineering. IEEE Computer Society Press, April 1995.

    Google Scholar 

  21. Jones, C. B. Specification and Design of (Parallel) Systems. In Proceedings of IFIP1983, R. E. A. Mason, Ed. North Holland, 1983, 321-32.

    Google Scholar 

  22. Jones, C. B. Systematic Software Development using VDM: 2nd Edition. Prentice-Hall, Englewood Cliffs, New Jersey, 1990.

    Google Scholar 

  23. Knuth, D. E. The T E XBook. Addison-Wesley Publishing Company, Reading, Massachusetts, 1984.

    Google Scholar 

  24. Lehman, M. M. Programs, Life Cycles, and Laws of Software Evolution. Proceedings of the IEEE vol. 68 no. 9 (1980), 1060–1076.

    Article  Google Scholar 

  25. Leintz, B. P. and Swanson, E. F. Software Maintenance Management. Addison-Wesley Publishing Company, 1980.

    Google Scholar 

  26. Leveson, N. G. Software Safety. In Resilient Computing Systems. Collins, London, 1985.

    Google Scholar 

  27. Lewis, G. and Olson, G. Can principles of cognition lower the barrier to programming?. In Proceedings of the 2nd Workshop on Empirical Studies of Programmers. July 1987, 248-263.

    Google Scholar 

  28. Lynch, M. F., Harrison, J. M. and Town, W. G. Computer Handling of Chemical Structure Information. Eisevier, New York, 1971.

    Google Scholar 

  29. MASCOT Users Forum, RSRE. MASCOT 3 User Guide. Malvern, England, 1987.

    Google Scholar 

  30. McDermid, J. Introduction and Overview to Part II. In Software Engineer’s Reference Book, J. McDermid, Ed. Butterworth Heinemann, 1991.

    Google Scholar 

  31. Milner, R. A Calculus of Communicating Systems. Department of Computer Science, University of Edinburgh, ECS-LFCS-86-7, 1986.

    Google Scholar 

  32. Milner, R. Communication and Concurrency. Prentice-Hall, Englewood Cliffs, New Jersey, 1989.

    MATH  Google Scholar 

  33. Ministry of Defence, Directorate of Standardisation. The Procurement of Safety-Critical Software in Defence Equipment. Defence Standard 00-55, Glasgow, UK, 1991.

    Google Scholar 

  34. Nardi, B. A. A Small Matter of Programming — Perspectives on End User Computing. MIT Press, Cambridge, Massachusetts, 1993.

    Google Scholar 

  35. National Research Council Committee on Modern Methods of Handling of Chemical Information. Survey of Chemical Notation Systems. Report of National Academy of Sciences, Washington DC, 1964.

    Google Scholar 

  36. Redmill, F. and Anderson, T., Eds. Achievement and Assurance of Safety: Proceedings of the Safety-Critical Systems Symposium, Brighton, UK. Springer-Verlag, 1995.

    Google Scholar 

  37. Robson, D. J., Bennett, K. H., Cornelius, B. J. and Munro, M. Approaches to Program Comprehension. Journal of Systems Software vol. 14 no. 1 (1991).

    Google Scholar 

  38. Simonyi, C. The Death of Computer Languages, The Birth of Intentional Programming. In Proceedings of the Newcastle International Seminar on Computer Science. Deptartment of Computing Science, University of Newcastle, September 1995.

    Google Scholar 

  39. Software Migrations Ltd. An Introduction to FermaT. Durham, 1995.

    Google Scholar 

  40. Sommerville, I. Software Engineering: 4th Edition. Addison-Wesley Publishing Company, 1992.

    Google Scholar 

  41. Spivey, J. M. The Z Notation: A Reference Manual: 2nd Edition. Prentice-Hall, Englewood Cliffs, New Jersey, 1992.

    Google Scholar 

  42. Talbot, S. and Oram, A. Managing Projects with Make. O’Reilly and Associates Inc, Sebastopol, California, 1991.

    Google Scholar 

  43. Ward, M. Proving Program Refinements and Transformations. Oxford University, D.Phil. Thesis, Oxford, 1989.

    Google Scholar 

  44. Ward, M. Foundations for a Practical Theory of Program Refinement and Transformation. Centre of Software Maintenance, University of Durham, Technical Report, Durham, 1993.

    Google Scholar 

  45. Ward, M. Language Oriented Programming. Software — Concepts and Tools vol. 15 no. 19 (1994), 147–161.

    Google Scholar 

  46. Ward, M. and Bennett, K. H. Formal Methods for Legacy Systems. Journal of Software Maintenance: Research and Practice vol. 7 no. 3 (1995), 203–219.

    Article  Google Scholar 

  47. Ward, M. and Bennett, K. H. A Practical Program Transformation System for Reverse Engineering. Presented at Working Conference on Reverse Engineering, May 1993, Baltimore, Massachusetts (May 1993).

    Google Scholar 

  48. Ward, M., Calliss, F. W. and Munro, M. The Maintainer’s Assistant. In Proceedings of the International Conference on Software Maintenance. IEEE Computer Society Press, Miami, Florida, October 1989.

    Google Scholar 

  49. Ward, P. T. and Mellor, S. J. Structured Development for Real-Time Systems. Yourdon Press, 1985.

    Google Scholar 

  50. Watt, D., Wichmann, B. and Finlay, W. Ada: Language and Methodology. Prentice-Hall, Englewood Cliffs, New Jersey, 1987.

    Google Scholar 

  51. Wingender, H. J. Reliability Data Collection and Use in Risk and Availability Analysis. In Proceedings of the 5th EuReDatA Conference. Hiedel-berg, April 1986.

    Google Scholar 

  52. Yang, H. The Supporting Environment for a Reverse Engineering System — The Maintainer’s Assistant. In Proceedings of the International Conference on Software Maintenance. IEEE Computer Society Press, Sorento, Italy, 1991.

    Google Scholar 

  53. Younger, E. J. and Ward, M. Understanding Concurrent Programs using Program Transformations. In Proceedings of the 2nd Workshop on Program Comprehension. Capri, Italy, July 1993.

    Google Scholar 

  54. Younger, E. J. and Ward, M. Inverse Engineering a simple Real Time Program. Journal of Software Maintenance vol. 6 (July 1994), 197–234.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag London Limited

About this paper

Cite this paper

Bull, T., Bennett, K. (1996). System Safety through Formal Domain-Specific Languages. In: Redmill, F., Anderson, T. (eds) Safety-Critical Systems: The Convergence of High Tech and Human Factors. Springer, London. https://doi.org/10.1007/978-1-4471-1480-2_16

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-1480-2_16

  • Publisher Name: Springer, London

  • Print ISBN: 978-3-540-76009-2

  • Online ISBN: 978-1-4471-1480-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics