Abstract
Since the architecture of a software system constrains the quality attributes, the decisions taken during architectural design have a large impact on the resulting system. An architectural design method is presented that employs iterative evaluation and transformation of the software architecture in order to satisfy the quality requirements. Architecture evaluation is performed by using scenarios, simulation, mathematical modelling and experience-based reasoning. The architecture can be transformed by imposing an architectural style, imposing an architectural pattern, using a design pattern, converting a quality requirement to functionality and by distributing quality requirements. The method has evolved through its application in several industrial projects.