The Importance of Software Architecture
systemdesign architecture
The Importance of Software Architecture
- An architecture will inhibit or enable a system's driving quality attributes.
- The decisions made in an architecture allow you to reason about and manage 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 defines a set of constraints on subsequent implementation.
- The architecture influences the structure of an organization, an vice versa.
- An architecture can provide the basis for evolutionary, or even throwaway, prototyping.
- An architecture is the key artifact that allows the architect and the project manager to reason about cost and schedule.
- An architecture can be created as transferable, reusable model that forms the heart of a product line.
- Architecture-centric development focuses attention on the assembly of components, rather than simply on their creation.
- By restricting design alternatives, architecture channels the creativity of developers, reducing design and system complexity.
- An architecture can be foundation for training a new team member.
References
- Designing Software Architectures: A Practical Approach SECOND EDITION / Rick Kazman