Why is Software Architecture Important (2.14 Summary)
Software architecture is important for a wide variety of technical and nontechnical reasons. Our list includes the following:
- An architecture will inhibit or enable a system’s driving quality attributes.
- The decisions made in an architecture allow you to reason about and man- age change as the system evolves.
- The analysis of an architecture enables early prediction of a system’s qualities.
- A documented architecture enhances communication among stakeholders.
- The architecture is a carrier of the earliest and hence most fundamental, hardest-to-change design decisions.
- An architecture de nes a set of constraints on subsequent implementation.
- The architecture dictates the structure of an organization, or vice versa.
- An architecture can provide the basis for evolutionary prototyping.
- An architecture is the key artifact that allows the architect and project man- ager to reason about cost and schedule.
- An architecture can be created as a transferable, reusable model that forms the heart of a product line.
- Architecture-based development focuses attention on the assembly of com- ponents, rather than simply on their creation.
- An architecture channels the creativity of developers, reducing design and system complexity.
- An architecture can be the foundation for training of a new team member.