This paper aims to show the usefulness of attaching attributes to pieces of software architectures, in order to direct a transformation and refinement process. These attributes are properties that can be considered as abstract ways to express architectural structures, and characteristics that constrain the refinement process. Then we define a methodology that consists in refining and transforming an architecture on the basis of the attributes attached to it. The methodology will be illustrated on a case study.