Recap
Software architecture
- Heavy-weight design, with an eye towards ensuring specific properties over families of systems
Patterns
- Mini-architectures, allows effective chunking of small combinations of classes/objects
Frameworks
- Sharing the “top” of a family of applications (as opposed to the bottom, like in layering)
Open implementation/AOP
- Overcoming problems in separation of concerns