Software Architecture in Practice
2. What is Software Architecture?
Architecture
Plan for constructing a building
Software Architecture
Plan for implementing software applications
Software Architecture Principles
- Language that helps team communicate better with the same terminology
- Structure for the application to align the team to implement features on the application
Software Architecture Concepts
1. Separation of concerns - the right components to divide the abstractions
2. Principle of least knowledge - the less knowledge an object have another object decreases coupling
3. DRY - don't repeat yourself, if something is repeated; caveat: be sure to make sure its also within the same domain