Software Architecture in Practice

2. What is Software 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