Software Architecture Objectives

To improve the state of architecture designs, we need:

Some quality objectives of good software architectures include:

There are several approaches to achieving these objectives. One is a top-down process where architectural principles are derived from the objectives. Another is a bottom-up approach which captures, classifies and catalogs architectural styles, cliches and notations and then synthesizes common abstract principles with reproduce the cataloged artifacts. Both approaches are important.