What is Software Architecture
There is no standardised, universally shared definition of what software architecture is. I have therefore compiled a small collection myself on this page. Some of these definitions are serious, others are more of a joke, but with a serious core. The fact that there are so many definitions also shows how broad the spectrum is that we deal with in this area.
For a while, the Software Engineering Institute at Carnegie Mellon University offered a long list of definitions. This is still available in the Internet Archive under Community Software Architecture Definitions.
Barry Boehms Definition of Software Architecture
A software system architecture comprises
A collection of software and system components, connections, and constraints.
A collection of system stakeholders’ need statements.
A rationale which demonstrates that the components, connections, and constraints define a system that, if implemented, would satisfy the collection of system stakeholders’ need statements.
1995
Ralph Johnsons Definition of Software Architecture
[i.e., Software architecture is] the design decisions that need to be made early in a project
Architecture is about the important stuff. Whatever that is.
Rick Hayes-Roth Definition of Software Architecture
..an abstract system specification consisting primarily of functional components described in terms of their behaviors and interfaces and component-component interconnections.
1994