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?
Plan for constructing a building
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