Software Architecture
This post is an abstract of some chapters in the book 'Software Systems Architecture' by Eoin Woods and Nick Rozanski Software Architecture Definition Software elements that you need to specify and or design in order to meet a particular set of requirements, plus the hardware required to run those software elements on Key Parts of the definition Structure - System’s elements, pieces that can be constructed, and their relationships Static structure Software classes, Relational entities, Network, Hardware etc Dynamic structure System response to an external stimulus Information flow, parallel/serial execution of tasks, effects on data (create, update, delete) Properties - Fundamental properties of a system Externally visible properties Functional behavior Quality properties Scalability, Performance, Security etc Principles - of its design and evolution Fundamental beliefs, approach or intent - that guides the architecture Conventions that