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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
BP International Limited. B-Tool Version 1.1. 1991.
Benesh, J. and Benesh, R. An Introduction to Benesh Notation. A. and C. Black, Ltd, London, 1956.
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.
Bull, T. M. Software Maintenance by Program Transformation in a Wide Spectrum Language. University of Durham, Ph.D. Thesis, Durham, 1994.
Bull, T. M. A Language for Expressing Program Transformations. In Proceedings of the ICSE-17 Workshop on Program Transformations. 1995.
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.
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.
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.
Buxton, J. N. and Laski, J. G. Control and Simulation Language. Computing Journal vol. 5 (1962), 194–199.
Dijkstra, E. W. A Discipline of Programming. Prentice-Hall, Englewood Cliffs, New Jersey, 1976.
Eriksen, K. E. and Prehn, S. RAISE Overview. Esprit Project Report Doc. Id. RAISE/DOC/KEE/5/V1, November 1989.
Eshokl, N. and Wachmann, A. Movement Notation. Weidenfeld and Nicholson, London, 1958.
Gadd, R. J. ReForm — from Assembler to Z using Formal Transformations. In Proceedings of the 4th European Software Maintenance Workshop. Durham, September 1990.
Group, Hood. W. Hood Reference Manual. European Space Agency, Document WME/89-173/JB, 1989.
Hoare, C. A. R. An Axiomatic Basis for Computer Programming. Communications of the ACM vol. 12 no. 10 (1969), 576–580, 583.
Hoare, C. A. R. Communicating Sequential Processes. Prentice-Hall, En-glewood Cliffs, New Jersey, 1985.
Hoare, C. A. R. The Emperor’s Old Clothes: The 1980 ACM Turing Award Lecture. Presented at Communications of the ACM (February 1981).
Hutchinson, A. Labanotation. Theatre Arts, 1977.
Jackson, M. A. Principles of Program Design. Academic Press, London, 1975.
Jackson, M. A. The World and the Machine. In Proceedings of the 17th International Conference on Software Engineering. IEEE Computer Society Press, April 1995.
Jones, C. B. Specification and Design of (Parallel) Systems. In Proceedings of IFIP1983, R. E. A. Mason, Ed. North Holland, 1983, 321-32.
Jones, C. B. Systematic Software Development using VDM: 2nd Edition. Prentice-Hall, Englewood Cliffs, New Jersey, 1990.
Knuth, D. E. The T E XBook. Addison-Wesley Publishing Company, Reading, Massachusetts, 1984.
Lehman, M. M. Programs, Life Cycles, and Laws of Software Evolution. Proceedings of the IEEE vol. 68 no. 9 (1980), 1060–1076.
Leintz, B. P. and Swanson, E. F. Software Maintenance Management. Addison-Wesley Publishing Company, 1980.
Leveson, N. G. Software Safety. In Resilient Computing Systems. Collins, London, 1985.
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.
Lynch, M. F., Harrison, J. M. and Town, W. G. Computer Handling of Chemical Structure Information. Eisevier, New York, 1971.
MASCOT Users Forum, RSRE. MASCOT 3 User Guide. Malvern, England, 1987.
McDermid, J. Introduction and Overview to Part II. In Software Engineer’s Reference Book, J. McDermid, Ed. Butterworth Heinemann, 1991.
Milner, R. A Calculus of Communicating Systems. Department of Computer Science, University of Edinburgh, ECS-LFCS-86-7, 1986.
Milner, R. Communication and Concurrency. Prentice-Hall, Englewood Cliffs, New Jersey, 1989.
Ministry of Defence, Directorate of Standardisation. The Procurement of Safety-Critical Software in Defence Equipment. Defence Standard 00-55, Glasgow, UK, 1991.
Nardi, B. A. A Small Matter of Programming — Perspectives on End User Computing. MIT Press, Cambridge, Massachusetts, 1993.
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.
Redmill, F. and Anderson, T., Eds. Achievement and Assurance of Safety: Proceedings of the Safety-Critical Systems Symposium, Brighton, UK. Springer-Verlag, 1995.
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).
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.
Software Migrations Ltd. An Introduction to FermaT. Durham, 1995.
Sommerville, I. Software Engineering: 4th Edition. Addison-Wesley Publishing Company, 1992.
Spivey, J. M. The Z Notation: A Reference Manual: 2nd Edition. Prentice-Hall, Englewood Cliffs, New Jersey, 1992.
Talbot, S. and Oram, A. Managing Projects with Make. O’Reilly and Associates Inc, Sebastopol, California, 1991.
Ward, M. Proving Program Refinements and Transformations. Oxford University, D.Phil. Thesis, Oxford, 1989.
Ward, M. Foundations for a Practical Theory of Program Refinement and Transformation. Centre of Software Maintenance, University of Durham, Technical Report, Durham, 1993.
Ward, M. Language Oriented Programming. Software — Concepts and Tools vol. 15 no. 19 (1994), 147–161.
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.
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).
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.
Ward, P. T. and Mellor, S. J. Structured Development for Real-Time Systems. Yourdon Press, 1985.
Watt, D., Wichmann, B. and Finlay, W. Ada: Language and Methodology. Prentice-Hall, Englewood Cliffs, New Jersey, 1987.
Wingender, H. J. Reliability Data Collection and Use in Risk and Availability Analysis. In Proceedings of the 5th EuReDatA Conference. Hiedel-berg, April 1986.
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.
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.
Younger, E. J. and Ward, M. Inverse Engineering a simple Real Time Program. Journal of Software Maintenance vol. 6 (July 1994), 197–234.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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