Software Architecture Definition by IEEE
“Software Architecture is the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.”
— The definition of Software Architecture as per IEEE Recommended Practice for Architectural Description of Software Intensive Systems (IEEE 1471-2000)
- Logical View (or Structural View) - an object model of the design
- Process View (or Behavioral View) - concurrency and synchronization aspects
- Development View (or Implementation View) - static organization (subset) of the software
- Physical View (or Deployment View) - mapping of the software to the hardware
- Use-cases View ( or Scenarios) - various usage scenarios
Summary is explained in following image prepared by myself after compilation from various sources: