Multiple-Choice Questions
Multiple-Choice Questions
1. What often-false assumption does the waterfall model made about requirements specifications?
2. True or false? It is better to discover defects later in the development process. That way, you can have
more of the system finished before you worry about fixing things.
a. True
b. False
a. True
b. False
5. If your project has unstable requirements (i.e., that are prone to change), you should use a waterfall
process model.
a. True
b. False
a. 1 week
b. 2–6 weeks
c. 2–4 months
d. 6 months to a year
a. A running instance of a program; for example, a UNIX process is a softw. devel. process
b. Something developers do to accomplish a goal during a project; for example, planning poker
is a softw. devel. process for estimation
c. Something developers use to accomplish a goal during a project; for example, Subversion is a
softw. devel. process for configuration management
d. A structure imposed on the development of a software product; for example, developing it-
eratively and incorporating best practices might be ingredients in a softw. devel. process
a. 1 week
b. 2 weeks
c. 4 weeks
d. 6 weeks
e. All of the above
9. Which one of these is appropriate in an agile and iterative development process?
a. Gather a complete set of requirements before designing/building anything.
b. Implement the backend of the system first—that is, before implementing the frontend func-
tionality with which users interact.
c. Generate and maintain complete, detailed design documents, which comprehensively model
all aspects of the design.
d. Implement the system incrementally, building it up bit by bit.
e. Test the code at the end, after the system has been completely implemented.
11. Which of the following problems does iterative development directly address?
a. Design erosion
b. Unstable requirements
c. Program comprehension
12. Which type of process control model is appropriate for software development?
a. iterative
b. waterfall
c. agile
d. spiral
14. True or false? In iterative software development, iterations should be 2 to 6 days in length.
a. True
b. False
15. In software engineering, defects that are discovered ______ are ______ to fix.
a. Tools, such as Git, that developers use to accomplish their software engineering goals
c. A thread of control in a multithreaded computing system, such as the Rails web server
Development of a system through repeated cycles and in smaller portions at a time, allowing software
developers to take advantage of what was learned during development of earlier parts or versions of
the system
a. Configuration management
Development of a system whereby progress is seen as flowing steadily downwards through the phases
of conception, analysis, design, construction, testing, production, and maintenance, and wherein one
should move to a phase only when its preceding phase is reviewed and verified
a. Configuration management
19. Which of the following is an issue associated with the waterfall development process?
a. Falsely assumes that requirements are stable and can be known from the start
c. Can lead to “analysis paralysis” wherein a considerable investment of time and effort is put
into a project before any code is written
1. d
2. b
3. a
4. b
5. b
6. b
7. d
8. a
9. d
10. e
11. b
12. b
13. b
14. b
15. b
16. b
17. b
18. c
19. d
Question:
• What often-false assumption does the waterfall software engineering process make?
• Why does this false assumption cause considerable problems for waterfall?
• How does iterative development overcome these problems?
Solution:
Waterfall software development makes the often-false assumption that requirements are mostly stable and
can be known from the beginning.
This false assumption creates considerable problems for waterfall because the whole system may be de-
veloped before problems with the requirements are discovered. Furthermore, the later defects are discov-
ered in a software product, the more expensive they are to fix (the Defect Cost Increase (DCI) Principle).
Iterative development overcomes these problems by maintaining a tight feedback loop. That is, feedback
on the system is collected at regular intervals, revealing any problems early in the process when they are
less expensive to correct.