Chapter 29 Flashcards

(20 cards)

1
Q

Rigidity

A

-the tendency for software to be difficult to change, even in simple ways

-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

-Often the
breakage occurs in areas that have no conceptual relationship with the area that was 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

Viscosity

A

the inability of something to flow

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

Two types of software viscosity

A

-viscosity of the design
-viscosity of the environment.

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

High viscosity

A

When the design preserving methods are harder to employ than the hacks

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

When does the viscosity of the environment happen?

A

when the development environment is slow and inefficient.

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

Needless complexity

A

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

-The design becomes littered with constructs that are never used.

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

Needless repetition

A

When the same code appears over and over again, in slightly different forms, the developers are missing an abstraction

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

Opacity

A

-the tendency of a module to be difficult to understand.

-Code can be written in a clear
and expressive manner, or it can be written in an opaque and convoluted manner.

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

Basic design principles

A

-DRY (Dont repeat yourself)

-KISS (Keep it simple, stupid)

-YAGNI ( You ain’t gonna need it)

-MVP (Minimum viable product)

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

KISS – Keep it simple, stupid

A

Simplicity is key. Complexity should be avoided

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

YAGNI – You ain’t gonna need it

A

functionality should only be added when it is required

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

MVP – Minimum viable product

A

the scope of a piece of work is limited to the smallest set of
requirements towards a functioning deliverable

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

High cohesion

A

everything in the module should work towards the same goa

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

Loose coupling

A

independent from other modules (

17
Q

Cohesion

A

-a measure of the degree to which the elements of the module are functionally
related

-It is the internal glue that keeps the module together

18
Q

Functional cohesion

A

Everything that is needed for the task is available inside the
module

19
Q

Sequential cohesion

A

An element outputs some data that becomes the input for other element

20
Q

Communicational cohesion

A

Two elements operate on the same input data or contribute towards the same output data.