Week 2- SOLID Design Principles Flashcards

Design Principals (19 cards)

1
Q

What is software design?

A

A creative activity identifying software components and their relationships based on customer requirements.

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

What is the process of realizing the design as a program called?

A

Implementation.

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

What does COTS stand for in the context of software systems?

A

Commercial Off-The-Shelf systems.

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

What are Software Design Principles?

A

A set of guidelines that helps developers make a good system design.

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

What does the Single Responsibility Principle state?

A

A class should have one and only one reason to change, meaning it should have only one job.

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

What is the Open/Closed Principle?

A

Objects should be open for extension but closed for modification.

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

What does Liskov Substitution Principle entail?

A

Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.

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

What is the Interface Segregation Principle?

A

Many client-specific interfaces are better than one general-purpose interface.

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

What does the Dependency Inversion Principle state?

A

Entities must depend on abstractions, not on concretions.

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

What does the DRY principle stand for?

A

Don’t Repeat Yourself.

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

What is the KISS principle?

A

Keep it simple, stupid!

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

What does YAGNI stand for?

A

You Ain’t Gonna Need It.

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

Fill in the blank: A class should have ______ reason to change.

A

one and only one.

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

True or False: The Open/Closed Principle allows modification of existing code.

A

False.

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

What should clients not be forced to implement according to the Interface Segregation Principle?

A

A function they do not need.

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

What is the main focus of the Dependency Inversion Principle?

A

High-level modules should not depend on low-level modules but on abstractions.

17
Q

According to the DRY principle, how often should small pieces of knowledge occur in the system?

A

Exactly once.

18
Q

What is the main message of the KISS principle?

A

Avoid unnecessary complexity.

19
Q

Fill in the blank: According to YAGNI, implement things when you actually ______ them.