Software Architecture in Practice

Read this section to learn about the main elements, patterns, quality attributes, and principles of software architecture, including encapsulation, polymorphism, and dependencies. Pay attention to design patterns and their importance in software design.

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