Author: Emil Sekerinski
Publisher: Springer Science & Business Media
ISBN: 1447105850
Category : Computers
Languages : en
Pages : 352
Book Description
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
Author: Emil Sekerinski
Publisher: Springer Science & Business Media
ISBN: 1447105850
Category : Computers
Languages : en
Pages : 352
Book Description
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.
Publisher: Springer Science & Business Media
ISBN: 1447105850
Category : Computers
Languages : en
Pages : 352
Book Description
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.
Pioneers and Their Contributions to Software Engineering
Author: Manfred Broy
Publisher:
ISBN: 9783642483554
Category :
Languages : en
Pages : 576
Book Description
Publisher:
ISBN: 9783642483554
Category :
Languages : en
Pages : 576
Book Description
Programming from Specifications
Author: Carroll Morgan
Publisher:
ISBN:
Category : Computers
Languages : en
Pages : 360
Book Description
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.
Publisher:
ISBN:
Category : Computers
Languages : en
Pages : 360
Book Description
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.
Program Development Using Refinement Logic
Author: Peter Vanderbilt
Publisher:
ISBN:
Category : Computer programming
Languages : en
Pages : 368
Book Description
Publisher:
ISBN:
Category : Computer programming
Languages : en
Pages : 368
Book Description
The grand unified theory of software engineering
Author:
Publisher: Industrial Info Systems
ISBN: 9197462012
Category :
Languages : en
Pages : 260
Book Description
Publisher: Industrial Info Systems
ISBN: 9197462012
Category :
Languages : en
Pages : 260
Book Description
Software Development, Design, and Coding
Author: John F. Dooley
Publisher: Springer Nature
ISBN:
Category : Computers
Languages : en
Pages : 521
Book Description
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
Publisher: Springer Nature
ISBN:
Category : Computers
Languages : en
Pages : 521
Book Description
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
6th Refinement Workshop
Author: David Till
Publisher: Springer Science & Business Media
ISBN: 1447132408
Category : Mathematics
Languages : en
Pages : 315
Book Description
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.
Publisher: Springer Science & Business Media
ISBN: 1447132408
Category : Mathematics
Languages : en
Pages : 315
Book Description
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.
On the Refinement Calculus
Author: Carroll Morgan
Publisher: Springer Science & Business Media
ISBN: 1447132734
Category : Mathematics
Languages : en
Pages : 169
Book Description
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.
Publisher: Springer Science & Business Media
ISBN: 1447132734
Category : Mathematics
Languages : en
Pages : 169
Book Description
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.
Refinement in Z and Object-Z
Author: John Derrick
Publisher: Springer Science & Business Media
ISBN: 1447153553
Category : Mathematics
Languages : en
Pages : 498
Book Description
Refinement is one of the cornerstones of the formal approach to software engineering, and its use in various domains has led to research on new applications and generalisation. This book brings together this important research in one volume, with the addition of examples drawn from different application areas. It covers four main themes: Data refinement and its application to Z Generalisations of refinement that change the interface and atomicity of operations Refinement in Object-Z Modelling state and behaviour by combining Object-Z with CSP Refinement in Z and Object-Z: Foundations and Advanced Applications provides an invaluable overview of recent research for academic and industrial researchers, lecturers teaching formal specification and development, industrial practitioners using formal methods in their work, and postgraduate and advanced undergraduate students. This second edition is a comprehensive update to the first and includes the following new material: Early chapters have been extended to also include trace refinement, based directly on partial relations rather than through totalisation Provides an updated discussion on divergence, non-atomic refinements and approximate refinement Includes a discussion of the differing semantics of operations and outputs and how they affect the abstraction of models written using Object-Z and CSP Presents a fuller account of the relationship between relational refinement and various models of refinement in CSP Bibliographic notes at the end of each chapter have been extended with the most up to date citations and research
Publisher: Springer Science & Business Media
ISBN: 1447153553
Category : Mathematics
Languages : en
Pages : 498
Book Description
Refinement is one of the cornerstones of the formal approach to software engineering, and its use in various domains has led to research on new applications and generalisation. This book brings together this important research in one volume, with the addition of examples drawn from different application areas. It covers four main themes: Data refinement and its application to Z Generalisations of refinement that change the interface and atomicity of operations Refinement in Object-Z Modelling state and behaviour by combining Object-Z with CSP Refinement in Z and Object-Z: Foundations and Advanced Applications provides an invaluable overview of recent research for academic and industrial researchers, lecturers teaching formal specification and development, industrial practitioners using formal methods in their work, and postgraduate and advanced undergraduate students. This second edition is a comprehensive update to the first and includes the following new material: Early chapters have been extended to also include trace refinement, based directly on partial relations rather than through totalisation Provides an updated discussion on divergence, non-atomic refinements and approximate refinement Includes a discussion of the differing semantics of operations and outputs and how they affect the abstraction of models written using Object-Z and CSP Presents a fuller account of the relationship between relational refinement and various models of refinement in CSP Bibliographic notes at the end of each chapter have been extended with the most up to date citations and research
Stepwise Refinement of Distributed Systems
Author: Jaco W. de Bakker
Publisher: Springer Science & Business Media
ISBN: 9783540525592
Category : Computers
Languages : en
Pages : 832
Book Description
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.
Publisher: Springer Science & Business Media
ISBN: 9783540525592
Category : Computers
Languages : en
Pages : 832
Book Description
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.