This paper discusses a technique to model software patternsfor supporting pattern based software development. Software development can be considered as the evolution of the artifacts to be produced. Software patterns are general structures that frequently appear in the artifacts and the patterns are also being evolved as the artifacts are being done. By specifying how to evolve software patterns as software processes progress, we can get a support for developing an artifact from the artifacts that were produced in the previous steps. In our approach, we consider that a software pattern consists of a pattern structure (a class diagram and/or an object diagram) and manipulation operations on the pattern structure. These operations are for pattern instantiation (applying a pattern to an actual problem) and for pattern evolution (evolving the artifacts of the previous steps into a new one). We model them with object-oriented technique encapsulating these operations into patterns. Keyword:...