A Methodology for Evaluating System Architectures