Friday, September 3, 2010

What is Software Architecture

The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships between them.

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 post-deployment 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.

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
* provides insight into how quality goals interact—that is, how they trade off
* plan your staffing needs

Hope this is useful!

No comments:

Post a Comment