Skip to content

Instantly share code, notes, and snippets.

@SMoni
Last active August 29, 2015 14:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SMoni/dac632e5d153811d2788 to your computer and use it in GitHub Desktop.
Save SMoni/dac632e5d153811d2788 to your computer and use it in GitHub Desktop.

Software architecture encompasses the set of significant decisions about the organization of a software system including the selection of the structural elements and their interfaces by which the system is composed; behavior as specified in collaboration among those elements; composition of these structural and behavioral elements into larger subsystems; and an architectural style that guides this organization. Software architecture also involves functionality, usability, resilience, performance, reuse, comprehensibility, economic and technology constraints, tradeoffs and aesthetic concerns.

Philippe Kruchten, Grady Booch, Kurt Bittner, and Rich Reitman

The highest-level breakdown of a system into its parts; the decisions that are hard to change; there are multiple architectures in a system; what is architecturally significant can change over a system's lifetime; and, in the end, architecture boils down to whatever the important stuff is.

Patterns of Enterprise Application Architecture, Martin Fowler

The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. Architecture is concerned with the public side of interfaces; private details of elements—details having to do solely with internal implementation—are not architectural.

Software Architecture in Practice (2nd edition), Bass, Clements, and Kazman

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment