or
Sign in to turn on 1-Click ordering.
More Buying Choices
Have one to sell? Sell yours here
Sorry, this item is not available in
Image not available for
Colour:
Image not available

 
Tell the Publisher!
I’d like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Foundations of Algebraic Specification and Formal Software Development (Monographs in Theoretical Computer Science. An EATCS Series) [Hardcover]

Donald Sannella , Andrzej Tarlecki
5.0 out of 5 stars  See all reviews (1 customer review)
RRP: £72.00
Price: £56.16 & this item Delivered FREE in the UK with Super Saver Delivery. See details and conditions
You Save: £15.84 (22%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 1 left in stock (more on the way).
Dispatched from and sold by Amazon. Gift-wrap available.
Want delivery by Thursday, 23 May? Choose Express delivery at checkout. See Details
Amazon.co.uk Trade-In Store
Did you know you can trade in your old books for an Amazon.co.uk Gift Card to spend on the things you want? Visit the Books Trade-In Store for more details. Learn more.

Book Description

30 Dec 2011 3642173357 978-3642173356 2012
This book provides foundations for software specification and formal software development from the perspective of work on algebraic specification, concentrating on developing basic concepts and studying their fundamental properties. These foundations are built on a solid mathematical basis, using elements of universal algebra, category theory and logic, and this mathematical toolbox provides a convenient language for precisely formulating the concepts involved in software specification and development. Once formally defined, these notions become subject to mathematical investigation, and this interplay between mathematics and software engineering yields results that are mathematically interesting, conceptually revealing, and practically useful.   The theory presented by the authors has its origins in work on algebraic specifications that started in the early 1970s, and their treatment is comprehensive. This book contains five kinds of material: the requisite mathematical foundations; traditional algebraic specifications; elements of the theory of institutions; formal specification and development; and proof methods.   While the book is self-contained, mathematical maturity and familiarity with the problems of software engineering is required; and in the examples that directly relate to programming, the authors assume acquaintance with the concepts of functional programming. The book will be of value to researchers and advanced graduate students in the areas of programming and theoretical computer science.

Product details

  • Hardcover: 581 pages
  • Publisher: Springer; 2012 edition (30 Dec 2011)
  • Language: English
  • ISBN-10: 3642173357
  • ISBN-13: 978-3642173356
  • Product Dimensions: 15.6 x 3.3 x 23.4 cm
  • Average Customer Review: 5.0 out of 5 stars  See all reviews (1 customer review)
  • Amazon Bestsellers Rank: 655,290 in Books (See Top 100 in Books)
  • See Complete Table of Contents

More About the Author

Discover books, learn about writers, and more.

Product Description

From the Back Cover

This book provides foundations for software specification and formal software development from the perspective of work on algebraic specification, concentrating on developing basic concepts and studying their fundamental properties. These foundations are built on a solid mathematical basis, using elements of universal algebra, category theory and logic, and this mathematical toolbox provides a convenient language for precisely formulating the concepts involved in software specification and development. Once formally defined, these notions become subject to mathematical investigation, and this interplay between mathematics and software engineering yields results that are mathematically interesting, conceptually revealing, and practically useful.   The theory presented by the authors has its origins in work on algebraic specifications that started in the early 1970s, and their treatment is comprehensive. This book contains five kinds of material: the requisite mathematical foundations; traditional algebraic specifications; elements of the theory of institutions; formal specification and development; and proof methods.   While the book is self-contained, mathematical maturity and familiarity with the problems of software engineering is required; and in the examples that directly relate to programming, the authors assume acquaintance with the concepts of functional programming. The book will be of value to researchers and advanced graduate students in the areas of programming and theoretical computer science.

About the Author

The first author is a professor of computer science at the University of Edinburgh. His key research area is foundations for specification and formal development of modular software systems from specifications, with applications to computer security and programming languages; among other responsibilities, he is the Editor-in-Chief of the journal Theoretical Computer Science and Vice President of the European Association for Theoretical Computer Science. The second author is a professor of computer science at the University of Warsaw, and also at the Institute of Computer Science of the Polish Academy of Sciences. His research mainly concerns foundations for specification and formal development of modular software systems from specifications, semantics, and relevant aspects of logic, universal algebra and category theory; among other responsibilities, he is the Editor-in-Chief of the journal Information Processing Letters. They have each chaired major conferences in software engineering and theoretical computer science, and have served on the steering and program committees of the main events related to the topic of this book.

Inside This Book (Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index
Search inside this book:

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Customer Reviews

4 star
0
3 star
0
2 star
0
1 star
0
5.0 out of 5 stars
5.0 out of 5 stars
Most Helpful Customer Reviews
5.0 out of 5 stars I wish I had this before 27 Jan 2013
Format:Hardcover
This is an important book. It is big and ambitious, but some things must be done carefully, or they can't be done at all. Building a big software system is one such thing. Describing a method how to build a big software system is another such thing. Writing a book about the foundations of the methods to build big software systems is yet another such thing. Reading such a book also requires some care and ambition. But if you want to learn how to build big software systems, and to know what you are doing while you are doing it, then you are already quite ambitious. I think that this book can help. I read most of it although I don't work in software specifications any more. It would have been easier if I had it in the time when I worked in the area.

It would be nice if Amazon could get a more reasonable discount from the publisher Springer, so that some students can get the book.
Comment | 
Was this review helpful to you?
Most Helpful Customer Reviews on Amazon.com (beta)
Amazon.com: 5.0 out of 5 stars  3 reviews
1 of 1 people found the following review helpful
5.0 out of 5 stars Everything I ever wanted to know about algebraic specifications! 15 Aug 2012
By Martin Wirsing - Published on Amazon.com
Format:Hardcover
This is a great book, very well and concisely written, containing everything I ever wanted to know about algebraic specifications!

It gives a very nice introduction to universal algebra, category theory and equational specifications; it presents all about structured and parameterised specifications and their proof techniques, shows how to work within arbitrary institutions and multiple logical systems, and discusses formal program development and behavioural specifications. All concepts are well illustrated by small instructive examples, and I like also the precise bibliographical remarks at the end of chapter.

The "Foundations of Algebraic Specifications and Formal Software Development" are a must for everybody interested in learning about algebraic methods in software development.
1 of 1 people found the following review helpful
5.0 out of 5 stars Important compendium in the field of axiomatic specifications 14 Aug 2012
By Till Mossakowski - Published on Amazon.com
Format:Hardcover
The book gives a detailed and comprehensive overview of both algebraic specification and formal program development. This is remarkable, because many related works from the area of formal methods treat either only the specification side (which remains a bit fruitless since no relation to real computer programs is given) or only the formal program development side (which remains quite pragmatic, since only the behaviour of programs is specified, e.g. using a Hoare style logic, but without a possibility to specify the concepts that are modeled by the program). Hence, the value of the present work cannot be overestimated.

After a general motivation in chapter 0, algebraic specification is developed in chapters 1 and 2. Indeed, the term "algebraic" is a bit misleading here, since the general topic is axiomatic specification. This becomes even clearer in chapter 4, where (using a nice preparatory chapter 3 about category theory) the theory is generalised to an arbitrary logical system, formalised as institution. Here, the authors introduce a multitude of logical formalisms, notably first-order logic and a simple functional programming language called FPL, these two being at the heart of many examples in later chapters, and indeed, first-order logic is used for the specification part, while the functional programming language is used for the program development part. Indeed, this book is the second one providing an introduction to the theory of institutions, the first one being R. Diaconescu's "Institution-independent model theory". While Diaconescu's book takes more the perspective of a logician (although it also has many connections to computer science), the present book is more cleary grounded in and motivated by computer science.

Chapter 5 introduces structured specifications in the context of an arbitrary institution, and presents a moderately-sized example illustrating the practical use. Chapter 6 extends this with (higher-order) parameterisation, and carefully illustrates the difference between specification of parameterised programs and parameterised specification of programs. Chapter 7 then uses this to build the machinery for formal program development, which is illustrated with some larger example involving hash functions on two levels. The example is nicely chosen, although the notation for higher-order constructors is sometimes difficult to read. The authors eventually introduce the "given" notation, which is much more readable.

Chapter 8 extends the previous work to behavioural specifications, first for standard algebraic specifications, then for the programming language/logic FPL, and then for an arbitrary institution. This requires considerable technical effort, but the reader gets presented a formalism that both subsumes the many diverse existing approaches in the literature and that captures the relevant problems of data abstraction and behavioural encapsulation. Again, this is illustrated with the above mentioned example.

Chapter 9 provides proof systems at the various levels introduced so far, and (after a certain bias to particular institutions in chapter 8) continues the institution independent approach of the preceding chapters. Soundness and completeness is discussed and proved at the various levels, as well as illustrative examples are given.

Chapter 10 opens the perspective of working with multiple logical systems using institution morphisms and comorphisms, which gives rise to new heterogeneous specification constructs, that can e.g. be used for a more systematic relation of specification and programming languages.

The ten chapters provide quite a lot of material, leading to a quite thick book which most people probably won't read sequentially, but more selectively, or use it as a reference. The authors give some hints for selective reading and also for using the material in university classes.

The book benefits from lots of carefully chosen examples (specification and programs) at various places that click together at later stages. This makes the book really a computer science book, although it is quite mathematical. Still, it should be made clear that the book takes the perspective of *theoretical* computer science, and the examples, although some go beyond the size of small toy examples, are still far away from industrial case studies (and no link to such case studies is given in the book). Now such an application perspective heavily depends on the availability of good tool support. Many of the numerous example specifications provided in the book have been formulated in the Common Algebraic Specification Language and therefore can be processed by tools. It would be helpful to have a website where the specifications are available for download.

To conclude, the book is well written and carefully motivated. The book provides useful literature surveys in the bibliographical at the end of each chapter. There is a helpful notational index, as well as a concept index. The number of cross references within the book is impressive. All the material is technically correct with surprisingly few errors. The material is presented with numerous exercises that serve for the further development of the theory; and the further material often depends in these exercises (although hints are given in these cases). Altogether, this book is an important compendium in the field of axiomatic specifications.
5.0 out of 5 stars I wish I had this before 1 Feb 2013
By Dusko Pavlovic - Published on Amazon.com
Format:Hardcover
This is an important book. It is big and ambitious, but some things must be done carefully, or they can't be done at all. Building a big software system is one such thing. Describing a method how to build a big software system is another such thing. Writing a book about the foundations of the methods to build big software systems is yet another such thing. Reading such a book also requires some care and ambition. But if you want to learn how to build big software systems, and to know what you are doing while you are doing it, then you are already quite ambitious. I think that this book can help. I read most of it although I don't work in software specifications any more. It would have been easier if I had it in the time when I worked in the area.

It would be nice if Amazon could get a more reasonable discount from the publisher Springer, so that more students can get the book.
Were these reviews helpful?   Let us know
Search Customer Reviews
Only search this product's reviews

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 

Search Customer Discussions
Search all Amazon discussions
   


Listmania!

Create a Listmania! list

Look for similar items by category


Feedback


Amazon.co.uk Privacy Statement Amazon.co.uk Delivery Information Amazon.co.uk Returns & Exchanges