This blog uses the term “architecture” to mean “software architecture”. Simple, right?
But, what is “software architecture”? The term seems somewhat squishy, and has many definitions. The book, Software Architecture for Developers, by Simon Brown, provides a thorough and pragmatic treatment of the topic. Simon sums up his definition as:
“… anything and everything related to the significant elements of a software system; from the structure and foundations of the code through to the successful deployment of that code into a live environment.” 1) Software Architecture for Developers, by Simon Brown, 2015-04-01, http://leanpub.com/software-architecture-for-developers
Peter Eeles of IBM presents another comprehensive, if slightly older, definition. Here, the author builds upon a standard definition taken from IEEE Std 1472000, the IEEE Recommended Practice for Architectural Description of Software-Intensive Systems, referred to as IEEE 1471.
“Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution.” 2)IEEE Computer Society, IEEE Recommended Practice for Architectural Description of Software-Intensive Systems: IEEE Std 1472000. 2000.
(NOTE: IEEE 1471 has since been superseded by 42010-2011 – ISO/IEC/IEEE Systems and software engineering — Architecture description. However, purchase prices of this standards document is slightly out of reach of this blog’s meager budget.)
Finally, the fine community at Wikipedia provides a reasonably functional definition, extracted from partly from the book, Documenting Software Architectures: Views and Beyond, Second Edition:
“Software architecture refers to the high level structures of a software system, the discipline of creating such structures, and the documentation of these structures. It is the set of structures needed to reason about the software system. Each structure comprises software elements, relations among them, and properties of both elements and relations.” 3)Clements, Paul; Felix Bachmann; Len Bass; David Garlan; James Ivers; Reed Little; Paulo Merson; Robert Nord; Judith Stafford (2010).Documenting Software Architectures: Views and Beyond, Second Edition. Boston: Addison-Wesley. ISBN 0-321-55268-7.
We attempt to adhere as much as possible to the spirit of these three sources for its definition of “architecture”, with perhaps a slight bias towards Simon Brown’s version, for its succinctness.« Back to Glossary Index