Quality-Driven Multi-Objective Optimization Of Software Architecture Design: Method, Tool, And Application