A pattern based approach for developing applications in a Grid computing environment is presented, and is based on the ability to manage components and their interactions. The approach provides a formal way of combining recurrent themes in Grid applications, and provides a set of operators that may be used to manipulate the patterns. The operators may be applied to individual patterns or groups, and may be managed as an independent library. The patterns distinguish between service providers and users, and may be used to also analyse the properties of a collection of components, or to vary these properties subject to a set of predefined constraints. Patterns are expressed in the Unified Modelling Language (UML), and operators correspond to manipulation of components within each pattern.