Is this book about patterns?
Yes and no. It is about software reuse and representation of knowledge that can be reapplied in similar situations; however, it does not follow the classic Alexandine conventions of the patterns community--i.e. Problem- solution- forces- context- example, etc. Chapter 6 on claims comes close to classic patterns, and the whole book can be viewed as a patterns language of abstract models for software engineering and HCI.
So what sort of patterns does it contain?
Specifications, conceptual models, design advice, but sorry not code. Plenty of other C++ code pattern books (see PLOP series). Nearest relative in published patterns books are Fowler's (1995) Analysis Patterns: Reusable object models and Coad, North and Mayfield.
What do you mean by a Domain Theory?
Not domains in the abstract mathematical sense, but domains in the knowledge--natural language sense, close to the everyday meaning when we talk about the application domain of a computer system, such as car rental, satellite tracking, whatever. The book is an attempt to answer the question ' what are the abstractions behind car rental, satellite tracking' so good design solutions for those problems can be reused.
I work in industry, so what's in it for me?
A new way of looking at software reuse, ideas for organizing a software and knowledge reuse program, new processes for reusing knowledge in requirements analysis, conceptual modeling and software specification.
I am an academic, should I be interested?
Yes if your research involves software engineering, reuse, requirements engineering, human computer interaction, knowledge engineering, ontologies and knowledge management. For teaching it may be useful for Master courses on reuse, requirements and knowledge engineering. More generally if you are interested in exploring what the concept of abstraction is when you extend it beyond programming languages, formal specification, abstract data types, etc towards requirements and domain knowledge.
Based on more than 10 years of research by the author, this book is about putting software reuse on a firmer footing. Utilizing a multidisciplinary perspective--psychology and management science, as well as software--it describes the Domain Theory as a solution. The domain theory provides an abstract theory that defines a generic, reusable model of domain knowledge.
Providing a comprehensive library of reusable models, practice methods for reuse, and theoretical insight, this book:
*introduces the subject area of reuse and software engineering and explains a framework for comparing different reuse approaches;
*develops a metric-oriented framework to assess the reuse claims of three competing approaches: patterns, ERPs, and the Domain Theory OSMs (object system models);
*explains the psychological background for reuse and describes generic tasks and meta-domains;
*introduces claims that provide a representation of design knowledge attached to Domain Theory models, as well as being a schema for representing reusable knowledge in nearly any form;
*reports research that resulted from the convergence of the two theories;
*describes the methods, techniques, and guidelines of design for reuse--the process of abstraction; and
*elaborates the framework to investigate the future of reuse by different paradigms, generation of applications from requirements languages, and component-based software engineering via reuse libraries.
Table of Contents
Contents: Preface. Foreword. Background and Concepts. Conceptual Foundations for Reuse. Abstraction in the Mind. Domain Theory: Foundations. Generic Tasks and Meta-Domains. Claims and Knowledge Management. The Reuse Process. Reusing Knowledge and Claims. New Concepts. Appendices: Specification of the OSM Library. Generic and Generalized Task Models, Dialogues, and Argumentation Schema. Claims Library.