Demonstrates how category theory can be used for formal software development. The mathematical toolbox for the Software Engineering in the new age of complex interactive systems.
This book provides a gentle, software engineering oriented introduction to category theory. Assuming only a minimum of mathematical preparation, this book explores the use of categorical constructions from the point of view of the methods and techniques that have been proposed for the engineering of complex software systems: object-oriented development, software architectures, logical and algebraic specification techniques, models of concurrency, inter alia. After two parts in which basic and more advanced categorical concepts and techniques are introduced, the book illustrates their application to the semantics of CommUnity – a language for the architectural design of interactive systems.
"For computer scientists, this unique book presents Category Theory in a manner tailored to their interests and with examples to which they can relate." Ira Forman, IBM
"This book applies little-known yet quite powerful formal tools from category theory to software structures: designs, architectures, patterns, and styles. Rather than focus on issues at the level of computational models and semantics, it instead applies these tools to some of the problems facing the sophisticated software architect. The terminology and mind set (Parts 1 and 2), while different from many common approaches, can provide startlingly concise expression of key properties of software systems (Part 3), and give rigorous meaning to entire families of box-and-line architecture drawings. It is applicable to the formal specification, decomposition, and composition of service-oriented architectures." Desmond D'Souza, Kinetium
Professor at the University of Leicester; Visiting Scientist at Imperial College, King’s College London, SRI International and the University of Pisa; Chairman of the IFIP WG1.3 – Foundations of System Specification; Chairman of the Steering Committee of the European Joint Conferences on Theory and Practice of Software; Winner of an IBM Award in 1996 for his work on Emergence in Complex Software Systems