Software Architecture #
1. Given an architecture diagram or description, identify the architecture style. #
2. Know 1 advantage and disadvantage of: #
-
Client-Server
-
Layered & Mutli-tiered
-
Model-View-Controller
-
Pipe and filter
3. Given a class diagram, answer some questions about relationships/properties. #
4. Name and explain(brief) some symptoms of poor design. #
5. Name and explain(brief) three general design principles. #
6. Given a design that breaks a SOLID principle, identify a solution. #
7. Define Coupling and Cohesion. Know the ideal levels of each (low coupling, high cohesion.) #
8. What and why of design patterns, in general. #
9. Design pattern types (Creational, Structural, Behavioral) #
10. A problem solved by a design pattern and how the design pattern provides a solution. For example, given a problem what design pattern(s) would be most appropriate. Only select from set of patterns covered in class. #
Singleton
Factory
Composite
Iterator
Observer
Strategy
11. The difference between Static & Dynamic analysis #
e.g. SonarQube
12. Strengths & Weaknesses of manual and automated static analyses. #
13. Identify/define measurements done by Static Analysis tool #
14. Define Refactoring & its purpose #
15. The refactoring process #