Why is software architecture important?
Provides a high-level structure of the system, guides design decisions, improves communication, affects system qualities (performance, maintainability, scalability)
What are architectural patterns?
Reusable solutions for common design problems. Examples:
* Layered,
* Client-server,
* MVC,
* Pipe-and-filter,
* Microservices.
Describe the Layered architecture pattern.
System divided into layers (presentation, business logic, data). Each layer only communicates with the one below. Good for maintainability.
Describe the MVC pattern.
Separates Model (data), View (UI), Controller (logic). Improves separation of concerns and maintainability.