Evaluating Software Architectures: Methods and Case Studies