CS131-study-guide-3

Software Architecture #

1. Given an architecture diagram or description, identify the architecture style. #

IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE

2. Know 1 advantage and disadvantage of: #

  • Client-Server

    IMAGE

  • Layered & Mutli-tiered

    IMAGE

  • Model-View-Controller

    IMAGE

  • Pipe and filter

    IMAGE

3. Given a class diagram, answer some questions about relationships/properties. #

IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE

4. Name and explain(brief) some symptoms of poor design. #

IMAGE IMAGE IMAGE

5. Name and explain(brief) three general design principles. #

IMAGE IMAGE

6. Given a design that breaks a SOLID principle, identify a solution. #

IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE IMAGE

7. Define Coupling and Cohesion. Know the ideal levels of each (low coupling, high cohesion.) #

IMAGE

8. What and why of design patterns, in general. #

IMAGE

9. Design pattern types (Creational, Structural, Behavioral) #

IMAGE

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

IMAGE IMAGE IMAGE IMAGE

Factory

IMAGE IMAGE

Composite

IMAGE IMAGE

Iterator

IMAGE IMAGE IMAGE IMAGE

Observer

IMAGE IMAGE

Strategy

IMAGE IMAGE IMAGE

11. The difference between Static & Dynamic analysis #

IMAGE IMAGE IMAGE IMAGE

e.g. SonarQube

IMAGE IMAGE

12. Strengths & Weaknesses of manual and automated static analyses. #

IMAGE

13. Identify/define measurements done by Static Analysis tool #

IMAGE IMAGE

14. Define Refactoring & its purpose #

IMAGE IMAGE IMAGE

15. The refactoring process #

IMAGE IMAGE