Program Development by Refinement

Program Development by Refinement
Author: Emil Sekerinski
Publisher: Springer Science & Business Media
Total Pages: 352
Release: 2012-12-06
Genre: Computers
ISBN: 1447105850

The Idea of Program Refinement Programs are complex. They are typically so complex, that they go beyond the full comprehension even of the programmer or team who designed them, with all the consequences this has. How can we cope with such complexity in a satisfactory way? An approach, advocated for a long time, is to separate a concise specification of a program - the "what" - from a possibly involved implementation - the "how". Once a specification is obtained from the set of requirements on the program, there can still be a large gap to an efficient implementation. The development from specification to implementation can then proceed by a succession oflayers, such that each layer is a refinement of the previous one. Design decisions can be introduced in refinement steps one at a time. By this, the refinement steps can be kept small and manageable. Still, the set of all requirements can be far too large to be taken completely into account in the initial specification. Even if they could, they might obscure issues more than clarify them. For example: • An information system for stored goods needs to produce an error message on il legal input. Yet, the exact wording - and even the language - of those messages is irrelevant for an understanding of the essence of the system. • A banking application interacts with customers with a graphical interface. Yet the specification of the graphical layout is secondary compared to the specification of the possible transactions.

A Theory and Practice of Program Development

A Theory and Practice of Program Development
Author: Derek J. Andrews
Publisher: Springer Science & Business Media
Total Pages: 421
Release: 2012-12-06
Genre: Mathematics
ISBN: 1447109872

A Theory and Practice of Program Development provides a comprehensive introduction to a software development method based on VDM-SL. Each development step is rigorously justified, and the strategies and transformations used are justified and explained ma thematically. The approach provides the formal semantics of a simple, but powerful, wide-spectrum programming language and gives a formal definition of both algorithmic and data refinement. Unlike other texts, it covers both the theory and practice of program development. Although based on VDM-SL, no knowledge of this language is assumed, thus making it widely accessible. A Theory and Practice of Program Development is intended for 3rd/4th year undergraduate and postgraduate students taking formal methods and software engineering; software developers involved in the production of provably correct computer systems and reusa ble design and the problems of reusable code.

On the Refinement Calculus

On the Refinement Calculus
Author: Carroll Morgan
Publisher: Springer Science & Business Media
Total Pages: 169
Release: 2012-12-06
Genre: Mathematics
ISBN: 1447132734

On the Refinement Calculus gives one view of the development of the refinement calculus and its attempt to bring together - among other things - Z specifications and Dijkstra's programming language. It is an excellent source of reference material for all those seeking the background and mathematical underpinnings of the refinement calculus.

4th Refinement Workshop

4th Refinement Workshop
Author: Joseph M. Morris
Publisher: Springer Science & Business Media
Total Pages: 488
Release: 2013-03-14
Genre: Mathematics
ISBN: 1447137566

This volume contains the proceedings ofthe 4th Refinement Workshop which was organised by the British Computer Society specialist group in Formal Aspects of Computing Science and held in Wolfson College, Cambridge, on 9-11 January, 1991. The term refinement embraces the theory and practice of using formal methods for specifying and implementing hardware and software. Most of the achievements to date in the field have been in developing the theoretical framework for mathematical approaches to programming, and on the practical side in formally specifying software, while more recently we have seen the development of practical approaches to deriving programs from their speCifications. The workshop gives a fair picture of the state of the art: it presents new theories for reasoning about software and hardware and case studies in applying known theory to interesting small-and medium-scale problems. We hope the book will be Of interest both to researchers in formal methods, and to software engineers in industry who want to keep abreast of possible applications of formal methods in industry. The programme consisted both of invited talks and refereed papers. The invited speakers were Ib S0rensen, Jean-Raymond Abrial, Donald MacKenzie, Ralph Back, Robert Milne, Mike Read, Mike Gordon, and Robert Worden who gave the introductory talk. This is the first refinement workshop that solicited papers for refereeing, and despite a rather late call for papers the response was excellent.

Stepwise Refinement of Distributed Systems

Stepwise Refinement of Distributed Systems
Author: Jaco W. de Bakker
Publisher: Springer Science & Business Media
Total Pages: 832
Release: 1990-04-25
Genre: Computers
ISBN: 9783540525592

The stepwise refinement method postulates a system construction route that starts with a high-level specification, goes through a number of provably correct development steps, and ends with an executable program. The contributions to this volume survey the state of the art in this extremely active research area. The world's leading specialists in concurrent program specification, verification, and the theory of their refinement present latest research results and surveys of the fields. State-based, algebraic, temporal logic oriented and category theory oriented approaches are presented. Special attention is paid to the relationship between compositionality and refinement for distributed programs. Surveys are given of results on refinement in partial-order based approaches to concurrency. A unified treatment is given of the assumption/commitment paradigm in compositional concurrent program specification and verification, and the extension of these to liveness properties. Latest results are presented on specifying and proving concurrent data bases correct, and deriving network protocols from their specifications.

The Correctness-by-Construction Approach to Programming

The Correctness-by-Construction Approach to Programming
Author: Derrick G. Kourie
Publisher: Springer Science & Business Media
Total Pages: 273
Release: 2012-04-10
Genre: Computers
ISBN: 3642279198

The focus of this book is on bridging the gap between two extreme methods for developing software. On the one hand, there are texts and approaches that are so formal that they scare off all but the most dedicated theoretical computer scientists. On the other, there are some who believe that any measure of formality is a waste of time, resulting in software that is developed by following gut feelings and intuitions. Kourie and Watson advocate an approach known as “correctness-by-construction,” a technique to derive algorithms that relies on formal theory, but that requires such theory to be deployed in a very systematic and pragmatic way. First they provide the key theoretical background (like first-order predicate logic or refinement laws) that is needed to understand and apply the method. They then detail a series of graded examples ranging from binary search to lattice cover graph construction and finite automata minimization in order to show how it can be applied to increasingly complex algorithmic problems. The principal purpose of this book is to change the way software developers approach their task at programming-in-the-small level, with a view to improving code quality. Thus it coheres with both the IEEE’s Guide to the Software Engineering Body of Knowledge (SWEBOK) recommendations, which identifies themes covered in this book as part of the software engineer’s arsenal of tools and methods, and with the goals of the Software Engineering Method and Theory (SEMAT) initiative, which aims to “refound software engineering based on a solid theory.”

Mathematics of Program Construction

Mathematics of Program Construction
Author: Bernhard Möller
Publisher: Springer Science & Business Media
Total Pages: 488
Release: 1995-07-10
Genre: Computers
ISBN: 9783540601173

This volume constitutes the proceedings of the Third International Conference on the Mathematics of Program Construction, held at Kloster Irsee, Germany in July 1995. Besides five invited lectures by distinguished researchers there are presented 19 full revised papers selected from a total of 58 submissions. The general theme is the use of crisp, clear mathematics in the discovery and design of algorithms and in the development of corresponding software and hardware; among the topics addressed are program transformation, program analysis, program verification, as well as convincing case studies.

The Design of Well-Structured and Correct Programs

The Design of Well-Structured and Correct Programs
Author: Suad Alagic
Publisher: Springer Science & Business Media
Total Pages: 303
Release: 2013-11-11
Genre: Computers
ISBN: 1461262720

The major goal of this book is to present the techniques of top-down program design and verification of program correctness hand-in-hand. It thus aims to give readers a new way of looking at algorithms and their design, synthesizing ten years of research in the process. It provides many examples of program and proof development with the aid of a formal and informal treatment of Hoare's method of invariants. Modem widely accepted control structures and data structures are explained in detail, together with their formal definitions, as a basis for their use in the design of correct algorithms. We provide and apply proof rules for a wide range of program structures, including conditionals, loops, procedures and recur sion. We analyze situations in which the restricted use of gotos can be justified, providing a new approach to proof rules for such situations. We study several important techniques of data structuring, including arrays, files, records and linked structures. The secondary goal of this book is to teach the reader how to use the programming language Pascal. This is the first text to teach Pascal pro gramming in a fashion which not only includes advanced algorithms which operate on advanced data structures, but also provides the full axiomatic definition of Pascal due to Wirth and Hoare. Our approach to the language is very different from that of a conventional programming text.