A Definition of Software Architecture
Software Architecture, as in the field of the Architecture of Software-intensive systems, is the total concept of those software-intensive systems.
Note: A total concept is a set of coherent concepts. A concept is an approach abstracted from its implementation.
Software Architecture consists of many software concepts. And when designing a piece of software, only the concepts in the software architecture may be used, or at least the software must comply with them. In this way, software architecture will guide the way software is designed and built [Dragon1].
Software Architecture, as in the field of Software Architecture, is the design and construction of high-quality (like stable, functional and secure) software-intensive systems or applications [Dragon1].
A Software Architecture Reference Model
Below you see an example generic reference model of concepts forming a software total concept.
All of these concepts are common in most modern software.
Software Reference Architecture.
Creating a Software Architecture
Suppose you need to create a software architecture for an organization, you can use this reference model to check and uncheck what software concepts you think you need to answer all the goals and requirements of the owner/client and stakeholders.
Of course, this model does not provide all software concepts, but it gives you a start. Any piece of software where all of these concepts are used would be the most perfect piece of software ever.
Designing Software Applications
Suppose you need to create a software design for an organization, you might want to use a reference model like this, created by the architects of the organization and apply the concepts onto the software.