Tuesday, November 22, 2005
What is Software Architecture?
There have been some many interpretations and definitions of software architecture. I will attempt to document definitions that I have come across here for reference.
The Unified Modeling Language User Guide - "Architecture is a set of significant decisions about:
- The organisation of a software system.
- The selection of the structural elements and their interfaces by which they system is composed.
- Their behavior, as specified in the collaborations among those elements.
- The composition of these structural and behavioral elements into progressively larger subsystems.
- The architectural style that guides this organisation : the static and dynamic elements and their interfaces, their collaborations, and their composition."
Architecture-Centric Software Project Management - "Software architecture is concerned with capturing the structures of a system and the relationships among the elements ... The structures we found fell into several broad categories: conceptual architecture, module architecture, execution architecture, and code architecture."
Beyond Software Architecture - "A system architecture defines the basic 'structure' of the system (e.g. the high-level modules comprising the major functions of the system , the management and distribution of data, the kind and style of its user interface, what platform(s) will it run on, and so forth"
Beyond Software Architecture - "A system architecture defines the basic 'structure' of the system (e.g. the high-level modules comprising the major functions of the system , the management and distribution of data, the kind and style of its user interface, what platform(s) will it run on, and so forth"