Sunday, June 26, 2011

What is a Software Architecture


Overview

Architecture serves as the blueprint for both the system and the project developing it, defining the work assignments that must be carried out by design and implementation teams. The architecture is the primary carrier of system qualities, such as performance, modifiability, and security, none of which can be achieved without a unifying architectural vision. Architecture is an artifact for early analysis to make sure that the design approach will yield an acceptable system. Architecture holds the key to postdeployment system understanding, maintenance, and mining efforts. In short, architecture is the conceptual glue that holds every phase of the project together for all its many stakeholders.
“Architecture is the linchpin for the highly complex, massively large-scale, and highly interoperable systems that we need now and in the future"
—Rolf Siegers, Raytheon

Software Architecture Benefits

When you take the time to properly design, implement, document, and evaluate a software architecture, you can
  • predict, achieve, and control quality attribute behavior and make practical tradeoffs early
  • greatly reduce the failure rates of software projects
  • produce a rationale for certain architectural decisions made or not made
  • communicate with your stakeholders
  • reason about and manage change
  • enable more accurate cost and schedule estimates
  • create evolutionary prototypes
  • predict and mitigate risks
  • understand the tradeoffs inherent in the architectures of software-intensive systems
  • provide insight into how quality goals interact—that is, how they trade off
  • plan your staffing needs

No comments:

Post a Comment