The challenge in software development is to develop software with the right quality levels. The main problem is not to know if a project is technically feasible concerning functionality, but if a solution exists that meet the software quality requirements. It is therefore desired to get an early indication of the qualities of the resulting software. Software architecture is concerned with what modules are used to compose a system and how these modules are related to each other, i.e. the structure of system. The software architecture of a system sets the boundaries for these qualities. Hence, to design the software architecture to meet the quality requirements is to reduce the risks of not achieving the required quality levels. In this thesis we present the experiences from a software architecture design project with two industry partners. Based on these we propose a method for reengineering architectures and exemplify by an applying the method on a real world example. The method is based on architecture transformations and software quality evaluation of the architecture. Further, we present a method for predicting software maintenance effort from the software architecture, for use in the design and reengineering method. The method uses change scenario profiles to describe future changes to the system and architecture impact analysis provide knowl-edge of the modification volume required for the realization of each sce-nario. The results from a quasi experiment supports that groups consisting of prepared members create better scenario profiles. Also, the results suggest that there is a large room for variation between scenario profiles created by individual persons.