The glossary our use of many of the terms that are used frequently throughout the book. All the terms are related to specific aspects of software architecture. We have omitted many terms that we only use in one context, for example the terms borrowed from Artificial Intelligence in the Blackboard pattern. When we felt that such terms needed an explanation we gave it in context rather than including them in the Glossary. We have also omitted central terms such as ‘pattern’, ‘software architecture’ or ‘idiom’—these are explained in length in dedicated sections of the book.
A class that does not implement all the methods that are defined in its interface. An abstract class defines a common abstraction for its subclasses.
A component that specifies an interface for other components. An abstract component can either be given explicitly, like an abstract class, or implicitly by using its interface within another component, such as a class parameter of a C++ template function. Abstract components form the basis for exploiting polymorphism and implementing flexible systems. This term is used in the same way as abstract class, to avoid restricting patterns to an object-oriented implementation.
An interface for an operation of a class that must be defined by a subclass.
Application programming interface. The external interface of a software platform, such as an operating system, that is used by systems or applications built on ...