Software Architecture
From Suhrid.net Wiki
Contents
Introduction to Software Architecture
- Software architecture encompasses the set of significant decisions about the organization of a software system :
- Selection of structural elements and their interfaces by which a system is composed.
- Behaviour as specified in collaborations among those elements.
- Composition of these structural and behavioural elements into larger subsystem.
- Architectural style that guides this organization.
- Definition:
- The structure or structures of the system which comprise of software elements, the externally visible properties of those elements and the relationships among them.
Why Architecture
Communication
- There are different stakeholders (client, user, project manager, developer, maintainer) who want different qualities of the system being built.
- E.g. client is concerned about cost, user about usability, project manager about dividing work, developer about implementation and maintainer about making changes.
- An architecture provides a framework and structure for airing these concerns.