Program Development by Refinement

Program Development by Refinement

Author: Emil Sekerinski

Publisher: Springer Science & Business Media

Published: 2012-12-06

Total Pages: 352

ISBN-13: 1447105850

DOWNLOAD EBOOK

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.


Program Development in Computational Logic

Program Development in Computational Logic

Author: Maurice Bruynooghe

Publisher: Springer Science & Business Media

Published: 2004-06-17

Total Pages: 546

ISBN-13: 3540221522

DOWNLOAD EBOOK

1 The tenth anniversary of the LOPSTR symposium provided the incentive for this volume. LOPSTR started in 1991 as a workshop on logic program synthesis and transformation, but later it broadened its scope to logic-based program development in general, that is, program development in computational logic, and hence the title of this volume. The motivating force behind LOPSTR has been the belief that declarative paradigms such as logic programming are better suited to program development tasks than traditional non-declarative ones such as the imperative paradigm. Speci?cation, synthesis, transformation or specialization, analysis, debugging and veri?cation can all be given logical foundations, thus providing a unifying framework for the whole development process. In the past 10 years or so, such a theoretical framework has indeed begun to emerge. Even tools have been implemented for analysis, veri?cation and speci- ization. However,itisfairtosaythatsofarthefocushaslargelybeenonprogrammi- in-the-small. So the future challenge is to apply or extend these techniques to programming-in-the-large, in order to tackle software engineering in the real world. Returning to this volume, our aim is to present a collection of papers that re?ect signi?cant research e?orts over the past 10 years. These papers cover the wholedevelopmentprocess:speci?cation,synthesis,analysis,transformationand specialization, as well as semantics and systems.


A Theory and Practice of Program Development

A Theory and Practice of Program Development

Author: Derek J. Andrews

Publisher: Springer Science & Business Media

Published: 2012-12-06

Total Pages: 421

ISBN-13: 1447109872

DOWNLOAD EBOOK

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.


Program Development by Specification and Transformation

Program Development by Specification and Transformation

Author: Bernd Krieg-Brückner

Publisher: Springer Science & Business Media

Published: 1993-08-30

Total Pages: 650

ISBN-13: 9783540567332

DOWNLOAD EBOOK

This volume gives a coherent presentation of the outcome of the project PROSPECTRA (PROgram development by SPECification and TRAnsformation) that aims to provide a rigorous methodology for developing correct software and a comprehensive support system. The results are substantial: a theoretically well-founded methodology covering the whole development cycle, a very high-level specification and transformation language family allowing meta-program development and formalization of the development process itself, and a prototype development system supporting structure editing, incremental static-semantic checking, interactive context-sensitivetransformation and verification, development of transformation (meta-) programs, version management, and so on, with an initial libraryof specifications and a sizeable collection of implemented transformations. The intended audience for this documentation is the academic community working in this and related areas and those members of the industrial community interested in the use of formal methods.


A Practical Theory of Programming

A Practical Theory of Programming

Author: Eric C.R. Hehner

Publisher: Springer Science & Business Media

Published: 2012-09-08

Total Pages: 257

ISBN-13: 1441985964

DOWNLOAD EBOOK

There are several theories of programming. The first usable theory, often called "Hoare's Logic", is still probably the most widely known. In it, a specification is a pair of predicates: a precondition and postcondition (these and all technical terms will be defined in due course). Another popular and closely related theory by Dijkstra uses the weakest precondition predicate transformer, which is a function from programs and postconditions to preconditions. lones's Vienna Development Method has been used to advantage in some industries; in it, a specification is a pair of predicates (as in Hoare's Logic), but the second predicate is a relation. Temporal Logic is yet another formalism that introduces some special operators and quantifiers to describe some aspects of computation. The theory in this book is simpler than any of those just mentioned. In it, a specification is just a boolean expression. Refinement is just ordinary implication. This theory is also more general than those just mentioned, applying to both terminating and nonterminating computation, to both sequential and parallel computation, to both stand-alone and interactive computation. And it includes time bounds, both for algorithm classification and for tightly constrained real-time applications.


Programming from Specifications

Programming from Specifications

Author: Carroll Morgan

Publisher:

Published: 1994

Total Pages: 360

ISBN-13:

DOWNLOAD EBOOK

Providing a thorough treatment of most elementary program development techniques, this revised edition covers topics such as procedures, parameters, recursion and data refinement, with the integration of specification, development and coding, based on ordinary (classical) logic.


Refinement Techniques in Software Engineering

Refinement Techniques in Software Engineering

Author: Ana Cavalcanti

Publisher: Springer

Published: 2006-10-11

Total Pages: 402

ISBN-13: 3540462546

DOWNLOAD EBOOK

This tutorial book presents an augmented selection of the material presented at the First Pernambuco Summer School on Software Engineering, PSSE 2004, held in Receife, Brazil in November/December 2004, jointly with the Brazilian Symposium on Formal Methods (SBMF 2004). The seven tutorial lectures presented are the thoroughly revised versions of the contributions from the invited lecturers. The courses cover a wide spectrum of topics.


Stepwise Refinement of Distributed Systems

Stepwise Refinement of Distributed Systems

Author: Jaco W. de Bakker

Publisher: Springer Science & Business Media

Published: 1990-04-25

Total Pages: 832

ISBN-13: 9783540525592

DOWNLOAD EBOOK

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.