What is architecture?
The highest level of abstraction in your design.
a description of the
subsystems and components of a software
system and the relationships between them
Components and subsystems can be shown from different views
- Topological
- Behavioral/Operational
- Data Flow
- Computing Environment
- Process Environment
Patterns fit into the context of the architecture.
Dictionary definitions:
-
the art or science of building; specifically : the art
or practice of designing and building structures and
especially habitable ones
-
formation or construction as or as if as the result of
conscious act, a unifying or coherent form or structure
-
a method or style of building
-
the manner in which the components of a computer or
computer system are organized and integrated
SEI definitions:
-
Bass, Clements, and Kazman. Software Architecture in
Practice, Addison-Wesley 1997:
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 among them.
-
Booch, Rumbaugh, and Jacobson, 1999:
An architecture is the set of significant decisions
about the organization of a software system, the
selection of the structural elements and their
interfaces by which the system is composed, together
with their behavior as specified in the collaborations
among those elements, the composition of these
structural and behavioral elements into progressively
larger subsystems, and the architectural style that
guides this organization---these elements and their
interfaces, their collaborations, and their composition
(The UML Modeling Language User Guide, Addison-Wesley,
1999).
-
Software Architecture: An abstract system specification
consisting primarily of functional components described
in terms of their behaviors and interfaces and
component-component interconnections. The
interconnections define provide by which components
interact.
Architectural Patterns are like the Software patterns we have
been studying, except they are on a higher level
An architectural pattern is the fundamental structural organization
of the system
Deals with subsystems and their interactions - the rules and
guidelines for how they interact.


