Definitions for "Software Architecture"
a collection of categories of elements that share the same likelihood of change
a description of a software system at a high level of abstraction, as a composition of computational elements and their interactions
an abstraction of the run-time elements of a software system during some phase of its operation