Software Design Flashcards

1
Q

5 key design principles

A

Separation of concerns, single responsibility, least knowledge, DRY, minimize upfront design

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

1 design principle associated with these terms: distinct features, minimize functional overlap, achieve high cohesion and low coupling

A

Separation of Concerns

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

YAGN, BDUF, what key design principle do these refer to?

A

Minimize upfront design

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What principle states that each component or module should be responsible for only a specific feature or functionality, or aggregation of cohesive functionality?

A

Single Responsibility

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What principle is known as the Law of Demeter (LoD)?

A

Principle of Least Knowledge

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What principle recommends that functionality should not be duplicated in any other component?

A

Don’t Repeat Yourself (DRY)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

5 Design Practices

A
  1. Choose design patterns that are consistent within each layer,
  2. do not duplicate functionality within an application,
  3. choose composition over inheritance,
  4. establish a coding style and naming convention,
  5. maintain system quality measures via automated Q/A techniques.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly