Questions

  1. What aspects can you distinguish with respect to software quality?
  2. Give an example demonstrating how inheritance may affect tested code.
  3. Between what levels of testing can you distinguish? Discuss the influence of errors for each of these levels.
  4. Discuss the problems involved in testing the behavior of an object. What would be your approach?
  5. Discuss how contracts may be employed to test object behavior.
  6. What methods of static testing can you think of? Do you consider them relevant? Explain.
  7. What metrics can you think of for object-oriented design? What is the intuition underlying these metrics?
  8. What evaluation criteria for metrics can you think of? Are these sufficient for applying such metrics in actual software projects? Explain.
  9. Give a formal definition of the following metrics: WMC, DIT. NOC, CBO, RFC and LOC. Explain their meaning from a software engineering viewpoint.
  10. What would be your rendering of the Law of Demeter? Can you phrase its underlying intuition? Explain.
  11. Define the notions of client, supplier and acquaintance. What restrictions must be satisfied to speak of a preferred acquaintance and a preferred supplier?
  12. Characterize the elements that form part of a formal specification.