Service-centric systems are driven more and more towards self-adaptation in order to satisfy QoS in highly dynamic environments. However, the young age and immaturity of this domain, combined with the increasing size and complexity of these systems, hinder the architects from designing effectively self-adaptive systems. This paper addresses the main problems that architects face with respect to high level issues such as monitoring, evaluation of QoS, and dynamic re-configuration. All patterns relate their solutions partially to wellestablished architectural patterns, adapted to the domain of service-centric systems. The aim is to compose a unified framework in the form of a pattern language that will help architects in taking the major design decisions.