2 Principles of architecture Flashcards
What is information hiding?
Implementation decisions should be cointained within a single architectural element.
It should leak as little information as possible about a realization to other elements.
What is coupling?
Coupling refers to how much one architectural element depends on another.
Higher coupling increases architectural complexity.
What is cohesion?
Cohesion refers to how closely related the subcomponents within an architectural element are.
The cohesion within a module should be stronger than the coupling between different modules.
The goal is not to maximize cohesion but to minimize dependencies, then divide elements to maintain high cohesion.
What is separation of concerns?
Each concern should have only one responsibility.
What is the open-closed principle?
The modules should be open for extension and close for changes (on what already exists).