Evaluating alternatives for architecture-oriented refactoring

Refactoring of software systems represents a fundamental way of improving their quality properties. Large-scale refactoring has to be performed at an architectural level to execute such changes for larger systems. Architecture-oriented refactoring requires decisions with multiple, partly contradicting objectives and uncertain consequences. To minimize risks and effort, the decisions about optimal refactoring alternatives have to be performed in a systematic way. In this paper decision theory is adapted to architecture-oriented refactoring. Methods for the evaluation of refactoring alternatives are shown which are applicable even to decisions with multiple and partly uncertain consequences. Furthermore, the complex decision process is structured in a rational way. In an example the effects of an increased quality requirement to architectural evolution are demonstrated