Midterm Qs : Theory Flashcards

1
Q

What is legacy code?

A

code that continues to meet needs of the customers but is difficult to evolve

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

What is beautiful code?

A

Long-lasting code that is easy to evolve and meets customers needs.

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

Why is it important to deal with legacy code?

A

It might be difficult to rewrite old software

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

What is quality assurance?

A

Process or standards that result in high quality products and improve the manufacturing process

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

What is quality software?

A

Software that meets the costumers needs and is easy to evolve
Quality == “fitness for use”

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

What does verification mean?

A

Did you build the thing right? (Did you meet the specification?)

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

What does validation mean?

A

Did you build the right thing? (Is this what the customer wants? That is, is the specification correct?)

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

What do we do to assure software quality?

A

Testing!

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

What is the approach that makes exhaustive teaching feasible? Divide and?

A

Divide and Conquer. We can significantly cut down the number of test cases by approaching the problem hierarchically.

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

What are the different types of tests?

A

Unit testing: makes sure a single procedure does what was expected
module testing: tests across individual units, classes
integration testing: ensures that the interfaces between the units have consistent assumptions and communicate correctly
system/acceptance testing: tests to see if the integrated program meets its specifications

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

What is test coverage?

A

The percentage of code lines that were run by the test suite.
100% test coverage != no bugs.
Not 100% test coverage != bugs are present.

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

What does regression testing mean?

A

automatically rerunning old tests so new changes don’t break old code.

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

How did software engineering originate?

A

Margaret hamilton used the term to distinguish it from hardware and other kinds of engineering

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

What is Continuous Integration Testing?

A

regression testing every time new code is added

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

What does Plan-and-Document mean?

A

Extensive planning upfront

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

The concept behind the P and D models.

A

extensive planning before you ever start coding and write detailed documentation

17
Q

Why don’t P and D models work well?

A
  • changes require extensive changes in the documentations
    -went over timelines
    -changes occur during production
18
Q

What was a model that tried to fix it by using prototypes?

A

Spiral.
Uses 4 large iterations
1) Determine objectives and constraints of this iteration.
2) Evaluate alternatives and identify and resolve risks.
3) Develop and verify the prototype for this iteration.
4) Plan the next iteration.

19
Q

What’s in the Agile Manifesto?

A
  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following plans
20
Q

What is the bad part of Spiral?

A

Iterations were too long apart from each other(months and years vs days and weeks)

21
Q

Who created the concept of Extreme Programming?

A

Kent Beck.

22
Q

Does XP advocate shorter or longer iterations?

A

Shorter iterations. One- to two-week iterations.

23
Q

Does XP advocate writing tests before code or tests after code?

A

Write tests before code, either using Behavior Driven Design or Test Driven Design. “Write the tests before you write the code.”

24
Q

Does XP advocate working alone or working in pairs?

A

Working in pairs.

25
Q

What does Agile emphasize to reduce mistakes?

A

Test-driven development(TDD)

26
Q

What does Agile emphasize to validate customer requirements?

A

User Stories.

27
Q

What does Agile emphasize to measure progress?

A

Velocity.

28
Q

Does Agile emphasize refining a working but incomplete prototype?

A

Yes. “Developers should continuously refine a working but incomplete prototype until the customer is happy with the result, with the customer offering feedback on each iteration.”

29
Q

How often in Agile do you get feedback from the customer/boss?

A

Each iteration; 1 - 2 weeks

30
Q

Is Agile an accepted practice?

A

It wasn’t at first but now it is because of its success rate.

31
Q

What’s in the Agile Manifesto?

A
  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following plans