Title: Specifications Author's names: Eric Evans and Martin Fowler Email address: evans@acm.org Postal address: 3133 Frontera Way, #405, Burlingame, CA 94010 Phone number: 415-692-6305 Key words: domain model, constraint Abstract: In development of the domain model of business applications, often you need to constrain or specify an object without referring to it. You may need to select a subset of objects based on some criteria. You may need to check that only suitable objects are used for a certain role. You may need to describe the requirements for an object in such a way that an object might be built-to-order to fulfill the requirements. The specification pattern solves this problem by creating a separate object for describing such requirements and giving it the behavior needed to compare itself with candidate objects and with other specifications.