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. Only the concepts in the software architecture may be used when designing a piece of software, 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 is an example generic reference model of concepts forming a software total concept.
All of these concepts are common in most modern software.
Software Architecture Reference Architecture.
Creating a Software Architecture
Suppose you must create an organization's software architecture. 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.
This model does not provide all software concepts, but it gives you a start. Any piece of software with all these concepts would be the most perfect piece of software ever.
Designing Software Applications
Suppose you must create an organization's software design. You might want to use a reference model created by the organization's architects and apply the concepts to the software.