Out of the Tar Pit Flashcards

(40 cards)

1
Q

The system must retain input data when ___

A

there is a possibility that the system may be require to refer to it in the future.

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

Input data corresponds to ___ state.

A

essential

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

In the ideal world, control ___.

A

can be completely omitted

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

In the ideal world, concurrency is ___ state.

A

accidental

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

In the ideal world, concurrency is considered accidental because ___.

A

finite computations take zero time, regardless of parallel or sequential ordering

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

Two cases to consider regarding input data:

A
  1. There exists a possibility the system may be required to refer to the data in the future.
  2. There is no such possibility.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

In the ideal world, control is ___ state.

A

accidental

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

In the ideal world, ___ should not appear in the formal requirements.

A

control

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

Control should not appear in the ideal world’s formal requirements because ___.

A

they are derived with no consideration of execution

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

It is recommended to avoid ___ in a system.

A

Accidental Useless Complexity (state / control)

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

It is recommended to separate ___, ___, and ___ in a system.

A

Essential Logic
Essential Complexity (state)
Accidental Useful Complexity (state / control)

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

Definition: Referential Transparency

A

When supplied with a given set of arguments, a function will always return exactly the same result.

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

In the ideal world, all state in the system is visible to the user because ___.

A

inputs can reasonably be expected to be visible in ways that internal cached state is not

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

Referential transparency guarantees elimination of one weakness of testing: ___

A

a system that is in one state reveals nothing about its behaviour in a different state

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

Because the ideal world removes all non-essential state, ___.

A

all the state in the system is visible to the user

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

Derived data is either ___ or ___.

A

immutable

mutable

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

Immutable derived data

A

Data that is intended only for display

18
Q

Mutable derived data

A

Explicit requirements specify that users must be able to update the data

19
Q

All data mentioned in users’ informal requirements is ___.

20
Q

Essential data specified in informal requirements do not necessarily correspond to ___.

A

essential state

21
Q

“Have you tried rebooting?” is advice that attempts to solve errors by ___.

A

returning the system to a ‘known’ / ‘good’ state (probably)

22
Q

If a stateless procedure uses any stateful procedures, even indirectly, then it ___.

A

can only be understood in the context of state

23
Q

You will only ever discover that you did not ___ when the system breaks.

A

write the correct tests with the correct inputs

24
Q

Complexity is primarily contributed to by (3)

A

state
flow of control
volume of code

25
Object-Oriented Programming mitigates complexity by ___.
coupling state and behaviour
26
Functional Programming mitigates complexity by ___.
avoiding state & side-effects entirely (in its pure form)
27
Normal approach to testing is:
1. begin with a clean / initial / known state 2. run desired tests with test inputs 3. assume system will perform the same way every time the tests run with those inputs
28
The flaw in the normal approach to testing is that ___.
it ignores hidden internal state
29
The same problem (that testing in one state reveals nothing about the system in another state) also applies to ___.
test inputs
30
Testing shows ___, but not ___.
bugs | a lack of bugs
31
The more powerful a language is (e.g. manual memory management, permitting state), the harder it is to ___.
understand systems constructed in it
32
Encapsulation allows the programmer to control and enforce ___ by ___.
integrity constraints over an object's state | regulating access to that state through its methods
33
Code volume should be ___.
reduced to an absolute minimum
34
Most systems' complexity exhibit a nonlinear increase with ___.
the amount of code
35
Objects consist of: (2)
state | a set of procedures for accessing and manipulating that state
36
Extensional identity
items are considered the same if their attributes are the same
37
Essential complexity
Complexity that is inherent in, and the essence of, the problem (as seen by the users)
38
Input data that may be required to refer to in the future corresponds to ___ state.
essential
39
Immutable Essential Derived Data (3 qualities)
1. can always be re-derived from input data / essential state whenever required 2. no need to store it in ideal world 3. corresponds to accidental state
40
Ideal World has 3 steps:
1. Gather informal requirements 2. Formalize these requirements 3. Execute the formal requirements on the underlying general purpose infrastructure