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