ITFN3314 Sample Final
Exam Questions
1. Describe the different approaches to software development as defined by the "cathedral" and "bazaar" models.
2. Why is it important to have many users testing your software? I.e., what is meant by the term "when many people are examining the code, all bugs become shallow?"
3. Why was the cheap internet a necessary precondition for the Linux model of software development to evolve?
4. List four reasons why testing is typically inadequately done.
5. Explain the term "regression testing."
6. Give an example of a class diagram in UML. Your diagram should contain at least 3 classes with methods and attributes/properties.
7. Give an example of a sequence diagram in UML. Your example should contain at least 3 lifelines and 6 communication events.
8. Define 'Test Driven Development" (TDD).
9. Define "Unit Testing".
10. How can unit testing be applied to graphical user interface (GUI) applications? Provide an example.
11. What is the difference between a bug and an exception?
12. What are breakpoints within the IDE, and how are they used to find bugs?
13. What is the "locals window" used for in debugging?
14. How can assertions be useful in debugging?
15. Define "configuration management."
16. What happens when a user "checks out" a file from Visual Source Safe (VSS)?
17. What happens when a user "checks in" a file in Visual Source Safe (VSS)?
18. List four good practices in developing secure code.
19. In the short paper entitled “The Mindset of Dependability,” Michael Lesk uses the Japanese high-speed rail lines as an example of quality. How is this related to quality in computer systems development?
20. Define the terms “real work,” “necessary friction,” and “optional chaos” and give examples of each.
21. Why are source lines of code (SLOC) not necessarily a good measurement for software development costs? What would be a better metric to use when estimating the cost to develop a computer system?
22.
What does the following figure demonstrate?

23.
What does the following figure demonstrate?

24. Define the Capability Maturity Model (CMM). What purpose does it serve?
25. List the five levels of the Capability Maturity Model (CMM) and give examples of activities performed at each level.
26.
What does the following figure demonstrate (as
related to the CMM)?

27.
What does the following figure demonstrate (as
related to the CMM)?

28. Why is it not a good idea (or even possible) to skip levels within the CMM?
29. List the eight foundational principles at the core of the Microsoft Solutions Framework (MSF) and how each helps in assuring quality and success on computer systems development teams.
30. What are the six roles of the MSF Team Model? What purpose does each serve?
31. What is the difference between “product management” and “program management” within the MSF Team Model?
32.
What does the following figure (from the MSF
Process Model) demonstrate?
