Iterating Infusion : Clearer Views of Objects, Classes, and Systems
Iterating Infusion presents comprehensive tools for you to best manage and work with object orientation. These include simplified fundamental concepts, popular language comparisons, advanced designing strategies, a broad usage progression, thorough design notations (interaction algebra), and data-oriented (fundamentally-OO) languages. The title, Iterating Infusion, alludes to the fact that any system has multiple, coexisting functional levels and that new levels—both lower and higher—are continually added to the same functional area. The practical effect is to bring processes into focus, always clarifying the vague. The extreme form of this is when separate but compatible technologies are brought together to create advancements; these can be baby-steps or great leaps, with varying amounts of effort. In more general terms, the same thing in a different context can take on much more power. And actually, this phenomenon is at the heart of object-oriented software.
Categories for software engineering
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.

