Program Development by Refinement

Program Development by Refinement PDF

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 by Refinement

Program Development by Refinement PDF

Author: Emil Sekerinski

Publisher: Springer Science & Business Media

Published: 1999

Total Pages: 364

ISBN-13: 9781852330538

DOWNLOAD EBOOK →

This volume contains a collection of case studies in program refinement with the B Method. They show typical program developments from problem analysis to implementation with non-trivial examples. They cover areas for which the B Method was originally conceived as well as the following novel areas: - data structures; - information management; - process control systems; - distributed systems. This volume will primarily be of interest to practitioners who either already use B and want to improve their program refinement techniques, or those who are considering using it and want to learn about its implementation. It will also provide useful background reading for students taking courses in the B Method, Formal Specification, or Refinement.

Refinement

Refinement PDF

Author: John Derrick

Publisher: Springer

Published: 2018-09-03

Total Pages: 269

ISBN-13: 3319927116

DOWNLOAD EBOOK →

Refinement is one of the cornerstones of a formal approach to software engineering. Refinement is all about turning an abstract description (of a soft or hardware system) into something closer to implementation. It provides that essential bridge between higher level requirements and an implementation of those requirements. This book provides a comprehensive introduction to refinement for the researcher or graduate student. It introduces refinement in different semantic models, and shows how refinement is defined and used within some of the major formal methods and languages in use today. It (1) introduces the reader to different ways of looking at refinement, relating refinement to observations(2) shows how these are realised in different semantic models (3) shows how different formal methods use different models of refinement, and (4) how these models of refinement are related.

6th Refinement Workshop

6th Refinement Workshop PDF

Author: David Till

Publisher: Springer Science & Business Media

Published: 2012-12-06

Total Pages: 315

ISBN-13: 1447132408

DOWNLOAD EBOOK →

The Sixth Refinement Workshop took place at City University in London from 5th to 7th January 1994. The present volume includes all of the papers which were submitted and accepted for presentation, together with two papers by invited speakers. The workshops in the series have generally occurred at one year intervals but in this last case a two year period had elapsed. These workshops have established themselves as an important event in the calendar for all those who are interested in progress in the underlying theory of refinement and in the take-up by industry of the methods supported by that theory. One of the proposed themes of the sixth workshop was the reporting of successful adoption in industry of rigorous software development methods. The programme committee was perhaps slightly disappointed by the response from industry to the call in this respect. However, the recent period could be characterised as one of consolidation, when those companies which have made the decision that formal development methods are important to their business have been adopting them where appropriate and finding them to be worthwhile. On the other hand,. the difficult economic climate which exists in most parts of the developed world is perhaps not the context within which companies still dubious about the benefits are goil'\g to opt for making major changes in their working practices.

Refinement Techniques in Software Engineering

Refinement Techniques in Software Engineering PDF

Author: Ana Cavalcanti

Publisher: Springer Science & Business Media

Published: 2006-09-27

Total Pages: 402

ISBN-13: 3540462538

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.

Software Development, Design, and Coding

Software Development, Design, and Coding PDF

Author: John F. Dooley

Publisher: Apress

Published: 2024-06-27

Total Pages: 521

ISBN-13:

DOWNLOAD EBOOK →

Learn the principles of good software design and then turn those principles into great code. This book introduces you to software engineering — from the application of engineering principles to the development of software. You'll see how to run a software development project, examine the different phases of a project, and learn how to design and implement programs that solve specific problems. This book is also about code construction — how to write great programs and make them work. This new third edition is revamped to reflect significant changes in the software development landscape with updated design and coding examples and figures. Extreme programming takes a backseat, making way for expanded coverage of the most crucial agile methodologies today: Scrum, Lean Software Development, Kanban, and Dark Scrum. Agile principles are revised to explore further functionalities of requirement gathering. The authors venture beyond imperative and object-oriented languages, exploring the realm of scripting languages in an expanded chapter on Code Construction. The Project Management Essentials chapter has been revamped and expanded to incorporate "SoftAware Development” to discuss the crucial interpersonal nature of joint software creation. Whether you're new to programming or have written hundreds of applications, in this book you'll re-examine what you already do, and you'll investigate ways to improve. Using the Java language, you'll look deeply into coding standards, debugging, unit testing, modularity, and other characteristics of good programs. You Will Learn Modern agile methodologies How to work on and with development teams How to leverage the capabilities of modern computer systems with parallel programming How to work with design patterns to exploit application development best practices How to use modern tools for development, collaboration, and source code controls Who This Book Is For Early career software developers, or upper-level students in software engineering courses