1. A computer method for providing pattern specification, comprising the steps of: in a computer: defining patterns as a class in a meta model of a target domain resulting in a pattern meta-class, each pattern having one or more pattern roles representing instances of respective interfaces, the pattern roles including any of: a component role representing an instance of an interface in the target domain, a composite role representing an instance of a class in the target domain that implements the component interface and composes instances of that interface, a leaf role representing an instance of the target domain class that implements the component interface, and a compose role representing an instance of the target domain operation defined by the class represented by the composite role; defining the pattern roles as properties of the pattern meta-class resulting in meta-properties; and specifying constraints between pattern roles in context of the pattern meta-class.