Out of the Tar Pit Flashcards

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 ___.

A

essential

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
Q

Object-Oriented Programming mitigates complexity by ___.

A

coupling state and behaviour

26
Q

Functional Programming mitigates complexity by ___.

A

avoiding state & side-effects entirely (in its pure form)

27
Q

Normal approach to testing is:

A
  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
Q

The flaw in the normal approach to testing is that ___.

A

it ignores hidden internal state

29
Q

The same problem (that testing in one state reveals nothing about the system in another state) also applies to ___.

A

test inputs

30
Q

Testing shows ___, but not ___.

A

bugs

a lack of bugs

31
Q

The more powerful a language is (e.g. manual memory management, permitting state), the harder it is to ___.

A

understand systems constructed in it

32
Q

Encapsulation allows the programmer to control and enforce ___ by ___.

A

integrity constraints over an object’s state

regulating access to that state through its methods

33
Q

Code volume should be ___.

A

reduced to an absolute minimum

34
Q

Most systems’ complexity exhibit a nonlinear increase with ___.

A

the amount of code

35
Q

Objects consist of: (2)

A

state

a set of procedures for accessing and manipulating that state

36
Q

Extensional identity

A

items are considered the same if their attributes are the same

37
Q

Essential complexity

A

Complexity that is inherent in, and the essence of, the problem (as seen by the users)

38
Q

Input data that may be required to refer to in the future corresponds to ___ state.

A

essential

39
Q

Immutable Essential Derived Data (3 qualities)

A
  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
Q

Ideal World has 3 steps:

A
  1. Gather informal requirements
  2. Formalize these requirements
  3. Execute the formal requirements on the underlying general purpose infrastructure