Programming languages and their definition
Programming languages and their definition
Communicating sequential processes
Communicating sequential processes
On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
Systematic software development using VDM
Systematic software development using VDM
Software development graphs: a unifying concept for software development?
Proc. of the sixth conference on Foundations of software technology and theoretical computer science
Experience with VDM in Norsk Data
VDM-Europe Symposium 1987 on VDM '87: VDM---a formal method at work
The stepwise development of software development graphs: meta-programming VDM developments
VDM-Europe Symposium 1987 on VDM '87: VDM---a formal method at work
Development and application of a Meta IV compiler
VDM-Europe Symposium 1987 on VDM '87: VDM---a formal method at work
VDM-Europe Symposium 1987 on VDM '87: VDM---a formal method at work
Communications of the ACM
Basic polymorphic typechecking
Science of Computer Programming
Statecharts: A visual formalism for complex systems
Science of Computer Programming
Software—Practice & Experience
The programming language Oberon
Software—Practice & Experience
The VIP VDM specification language
Proceedings of the 2nd VDM-Europe Symposium on VDM---The Way Ahead
Algebraic specification
Communication and concurrency
Proofs and types
Algebraic Specifications in Software Engineering
Algebraic Specifications in Software Engineering
Fundamentals of algebraic specification 2: module specifications and constraints
Fundamentals of algebraic specification 2: module specifications and constraints
The definition of Standard ML
STATEMATE: A Working Environment for the Development of Complex Reactive Systems
IEEE Transactions on Software Engineering
Software engineering mathematics
Software engineering mathematics
Software—Practice & Experience
Programming in Martin-Lo¨f's type theory: an introduction
Programming in Martin-Lo¨f's type theory: an introduction
Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
Specification case studies
The Oberon system: user guide and programmer's manual
The Oberon system: user guide and programmer's manual
Algebraic system specification and development
Algebraic system specification and development
Handbook of theoretical computer science (vol. B)
Essence of generalized partial computation
Theoretical Computer Science - Images of programming dedicated to the memory of Andrei P. Ershov
Project Oberon: the design of an operating system and compiler
Project Oberon: the design of an operating system and compiler
The RAISE specification language
The RAISE specification language
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Using style to understand descriptions of software architecture
SIGSOFT '93 Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering
A mean value calculus of durations
A classical mind
Software requirements & specifications: a lexicon of practice, principles and prejudices
Software requirements & specifications: a lexicon of practice, principles and prejudices
Research directions in software architecture
ACM Computing Surveys (CSUR)
Formalizing style to understand descriptions of software architecture
ACM Transactions on Software Engineering and Methodology (TOSEM)
ACM Computing Surveys (CSUR)
The B-book: assigning programs to meanings
The B-book: assigning programs to meanings
Four dark corners of requirements engineering
ACM Transactions on Software Engineering and Methodology (TOSEM)
Formalizing architectural connection
ICSE '94 Proceedings of the 16th international conference on Software engineering
Software engineering education: Rôles of formal specification and design calculi
Annals of Software Engineering - Special issue on software engineering education
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Initial Algebra Semantics and Continuous Algebras
Journal of the ACM (JACM)
Communicating sequential processes
Communications of the ACM
Guarded commands, nondeterminacy and formal derivation of programs
Communications of the ACM
Program development by stepwise refinement
Communications of the ACM
A correspondence between ALGOL 60 and Church's Lambda-notations: Part II
Communications of the ACM
EULER: a generalization of ALGOL, and its formal definition: Part II
Communications of the ACM
A contribution to the development of ALGOL
Communications of the ACM
Recursive functions of symbolic expressions and their computation by machine, Part I
Communications of the ACM
Communications of the ACM
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Handbook of Theoretical Computer Science: Formal Models and Semantics
Handbook of Theoretical Computer Science: Formal Models and Semantics
Abstract Software Specifications
Abstract Software Specifications
A Calculus of Communicating Systems
A Calculus of Communicating Systems
Algebraic Semantics
Software Development: A Rigorous Approach
Software Development: A Rigorous Approach
Algorithms + Data Structures = Programs
Algorithms + Data Structures = Programs
Systematic Programming: An Introduction
Systematic Programming: An Introduction
A Theory of Objects
A Discipline of Programming
The Theory and Practice of Concurrency
The Theory and Practice of Concurrency
PASCAL user manual and report
Fundamentals of Algebraic Specification I
Fundamentals of Algebraic Specification I
A Theory of Programming Language Semantics
A Theory of Programming Language Semantics
Annals of Software Engineering
Specifying and Verifying Requirements of Real-Time Systems
IEEE Transactions on Software Engineering
Towards a Formal Description of Ada
Towards a Formal Description of Ada
The Vienna Development Method: The Meta-Language
The Vienna Development Method: The Meta-Language
Proceedings of the VDM-Europe Symposium on VDM - A Formal Method at Work
VDM '87 Proceedings of the VDM-Europe Symposium on VDM - A Formal Method at Work
Proceedings of the Europe Symposium on VDM - The Way Ahead
VDM '88 Proceedings of the Europe Symposium on VDM - The Way Ahead
VDM '90 Proceedings of the Third International Symposium of VDM Europe on VDM and Z - Formal Methods in Software Development
FME '94 Proceedings of the Second International Symposium of Formal Methods Europe on Industrial Benefit of Formal Methods
FME '96 Proceedings of the Third International Symposium of Formal Methods Europe on Industrial Benefit and Advances in Formal Methods
FME '97 Proceedings of the 4th International Symposium of Formal Methods Europe on Industrial Applications and Strengthened Foundations of Formal Methods
Formal Approaches to Software Architecture
ICSE '93 Selected papers from the Workshop on Studies of Software Design
A Formal Approach to Software Architectures
Proceedings of the IFIP 12th World Computer Congress on Algorithms, Software, Architecture - Information Processing '92, Volume 1 - Volume I
RTSE '97 Proceedings of the International Workshop on Requirements Targeting Software and Systems Engineering
Domains for Denotational Semantics
Proceedings of the 9th Colloquium on Automata, Languages and Programming
Project Graphs and Meta-Programs. Towards a Theory of Software Development
Proceedings of the CRAI Workshop on Software Factories and Ada: Software Development and Ada
CoFI: The Common Framework Initiative for Algebraic Specification and Development
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Duration Calculi: An Overview (Invited Paper)
Proceedings of the International Conference on Formal Methods in Programming and Their Applications
An Extended Duration Calculus for Hybrid Real-Time Systems
Hybrid Systems
The DDC Ada Compiler Development Project
Towards a Formal Description of Ada
The Semantics of CLEAR, A Specification Language
Proceedings of the Abstract Software Specifications, 1979 Copenhagen Winter School
A Theory of Distributing Train Rescheduling
FME '96 Proceedings of the Third International Symposium of Formal Methods Europe on Industrial Benefit and Advances in Formal Methods
LPF and MPLomega - A Logical Comparison of VDM SL and COLD-K
VDM '91 Proceedings of the 4th International Symposium of VDM Europe on Formal Software Development-Volume I: Conference Contributions - Volume I
Tutorial on the Irish School of the VDM
VDM '91 Proceedings of the 4th International Symposium of VDM Europe on Formal Software Development-Volume 2: Tutorials
A Duration Calculus with Infinite Intervals
FCT '95 Proceedings of the 10th International Symposium on Fundamentals of Computation Theory
Semantics and Completeness of Duration Calculus
Proceedings of the Real-Time: Theory in Practice, REX Workshop
Software Systems EngineeringFrom Domain Analysis Via Requirements Capture to Software Architectures
APSEC '95 Proceedings of the Second Asia Pacific Software Engineering Conference
Formal specification and development of an ada compiler - a vdm case study
ICSE '84 Proceedings of the 7th international conference on Software engineering
Programming with abstract data types
Proceedings of the ACM SIGPLAN symposium on Very high level languages
Requirements for Telecommunications Services: An Attack on Complexity
RE '97 Proceedings of the 3rd IEEE International Symposium on Requirements Engineering
ICFEM '97 Proceedings of the 1st International Conference on Formal Engineering Methods
A Case Study in Architectural Modelling: The AEGIS System
IWSSD '96 Proceedings of the 8th International Workshop on Software Specification and Design
LISP 1.5 Programmer's Manual
Programming in Modula-2
Structured programming
Chapter II: Notes on data structuring
Structured programming
A Triptych Software Development Paradigm: Domain, Requirements and Software
Correct System Design, Recent Insight and Advances, (to Hans Langmaack on the occasion of his retirement from his professorship at the University of Kiel)
Domain Engineering: A Software Engineering Discipline in Need of Research
SOFSEM '00 Proceedings of the 27th Conference on Current Trends in Theory and Practice of Informatics
"What is a method?": an essay on some aspects of domain engineering
Programming methodology
Applying domain engineering using RAISE into a particular banking domain
ACM SIGSOFT Software Engineering Notes
A comparative evaluation of the Z, CSP, RSL, and VDM languages
ACM SIGSOFT Software Engineering Notes
Investigating a new formal model for autonomous virtual organisation using RAISE method
International Journal of Networking and Virtual Organisations
A comparative study of two formal specification languages: Z-notation & B-method
Proceedings of the Second International Conference on Computational Science, Engineering and Information Technology
Hi-index | 0.00 |
In this invited paper we review 25 years of propagating formal specification in software engineering. We will do so through outlining a paradigmatic approach to the practice of software engineering. For the sake of contrasting argument we shall claim that this approach stands in sharp contrast to classical engineering – and that there is little help to be obtained from classical engineering in securing the quality of the most important facets of software engineering! We shall be outlining a software engineering* practice in which formal techniques are applied in capturing the application domain void of any reference to requirements let alone software; and in then capturing requirements: Domain requirements (projected, instantiated, possibly extended and usually initialised from domain descriptions), interface requirements and machine requirements. The software engineering practice then goes on to design the software: First the architecture, then the program structure, etc. Throughout abstraction and modelling, hand‐in‐hand, are used in applicative (functional), imperative and process oriented descriptions, from loose specifications towards concrete, instantiated descriptions, using hierarchical as well as configurational modelling, denotational as well as computational modelling, and in structuring even small scale descriptions using appropriate modularisation concepts: Schemes, classes and objects. All the concepts spelled in this font are software engineering “program” description notions that have been honed over the years, starting in 1973 with VDM [Bekić et al. 1974; Bjørner and Jones 1978, 1982b] and continuing with RAISE [Group 1992, 1995]. The current status of our approach to software engineering, based on extensive, but not exclusive use of formal techniques, developed significantly during my years as UN Director of the UN University's International Institute for Software Technology (UNU/IIST) in Macau, 1992–1997. Many large scale software developments based on the domain/requirements/software design paradigm outlined here were systematically applied to the experimental development of software designs for the computing support of a number of diverse infrastructure components**. Special boxes, scattered throughout the text, highlight ‘pinnacle’ contribution by named computer and computing scientists as well as by specific R&D projects. *The text high‐lighted in ‘this font’ identifies important software development principles and techniques – the main contribution and subject of this quarter century overview. **Railways [Bjørner et al. 1997; George 1995], financial service institutions [Bjørner 1997; Bjørner et al. 1998], manufacturing [Bjørner 1996; Janowski 1996; Janowski and Acebedo 1996; Janowski and Atienza 1997], ministry of finance [Dung et al. 1996; George et al. 1995], airlines [Anh and More 1996], air traffic [Bjørner 1995], etc.