Test1_Chapter28.2 Flashcards

(23 cards)

1
Q

Rigidity

A

The tendency for software to be difficult to change, even in simple ways.

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

Fragility

A

The tendency of software to break in many places every time it is changed.

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

Immobility

A

the inability to reuse code in other parts of your project because the code in question has
too much baggage.

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

Needless complexity

A

It occurs when developers anticipate changes to the requirements and put facilities in the
software to deal with those potential changes.

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

Needless repetition

A

It occurs when developers miss an abstraction.

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

Opacity

A

the tendency of a module to be difficult to understand.

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

DRY

A

Duplication is a waste of time and effort

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

KISS

A

Complexity should be avoided

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

YAGNI

A

Functionality should only be added if needed.

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

MVP – Minimum viable product

A

Limit requirements to a manageable amount that can be designed, developed, tested and delivered.

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

Software Module

A

A software module should show tight cohesion and low coupling

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

Encapsulate what varies

A

If the business logic of some piece of code is likely to change often, that piece of code should be
isolated from the rest of the system.

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

Refactoring

A

a systematic process of improving code without creating new functionality

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

Program to an interface

A

Objects should not be instantiated as members of a concrete class.

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

Favour object composition over inheritance

A

We should rather have “has a” relations between classes than “is a”.

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

-Single responsibility principle (SRP)

A

A class should have only one reason to change.

17
Q

Open/Closed principle (OCP)

A

It should be possible to extend classes and methods but not modify them.

18
Q

Liskov substitution principle (LSP)

A

It should be possible to instantiate an object as a member of a child class but declare it as a
member of its parent class.

19
Q

Interface segregation principle (ISP)

A

No derived class should be forced to implement methods that it will never use.

20
Q

Dependency inversion principle (DIP)

A

Modules in a system should depend on an abstraction and not on each other.

21
Q

Creational Patterns

A

Mechanisms that increase flexibility and reuse.

22
Q

Structural Patterns

A

Objects and classes can be assembled into larger units

23
Q

Behavioural Patterns

A

Take care of communication between objects.