This paper describes the concept of software adaptation patterns and how they can be used in software adaptation of serviceoriented architectures. The patterns are described in terms of a three-layer architecture for self-management. A software adaptation pattern defines how a set of components that make up an architecture pattern dynamically cooperate to change the software configuration to a new configuration. In our approach, adaptation connectors are introduced to encapsulate adaptation state machine models so that the adaptation patterns can be more reusable. A change management model for dynamically evolving service-oriented applications is also described with a case study. Keywords component, service, service-oriented architecture, dynamic adaptation, software adaptation patterns.