Software Engineering, Exam, April 16, 2008.

Duration 09:00-14:00.

  1. In this course, we have used the V-model. Accenture also uses the V-model. What are the advantages of the V-model, compared to other software engineering process models?
    (4 points, 1.5 page)

  2. Explain 
    1. the concepts validation and verification,
    2. which methods typically are used for validation
    3. which methods typically are used for verification.
      (6 points, 2 pages)

  3. Give three reasons why an engineer could be interested in tracing a requirement back to its stakeholder(s). (3 points, 1 page)

  4. Some software is made for a single customer, while other software is developed to be sold on an open market. Explain the resulting differences in the requirements elicitation phase.
    (4 points, 1 page)

  5. A logical three-tier architecture is to be implemented. What kind of requirements influence the choice between a physical three-tier architecture and a client-server architecture with a thin client? (5 points, 2 pages)

  6. You are asked to develop a system with safety critical functions. What are the central design issues w.r.t. safety? In other words: what would you discuss with the customer (domain expert) regarding a safe design? (4 points, 1.5 pages)

    Turn!



  7. Give an example of a system that has different requirements for ROCOF (Rate of  OCcurrence Of Failure) for different kinds of failures. Give a concrete example of the system, the failures, and why they should have different ROCOF. (3 points, 1 page)

  8. Describe (at least) five different test methods. For each method, mention
        * its goal, and
        * (briefly) how it is done, and
        * what CASE-tools are useful, or even necessary.
    (10 points, 4 pages)

  9. Consider the following piece of program (bubble sort):

    repeat
       sorted = true;
       for i = 1 to n-1 {
          if a[i] >= a[i+1] {
             tmp = a[i];
             a[i] = a[i+1];
             a[i+1] = tmp;
             sorted = false
          }
       }
    until sorted


    1. Show what steps you take in order to perform a branch coverage test for this program.
    2. Explain the following terms (in relation to your answer in a): "basic block", "infeasible path", "oracle problem".
    3. The program contains a fault: the comparison ">=" should be ">". Coverage testing can easily miss this error. What alternative verification method(s) are likely to reveal the error? Explain why.
    (4+3+2 points, 3 pages)

  10. Name at least five parameters that are likely to influence the cost of a software project.
    (3 points, 1 page)

  11. Discuss the concepts of "quality planning", "quality control" and "quality assurance" in relation to a project: when, who, how? (4 points, 1 page)

  12. Consider the CMMI model.
    1. What are the 5 (or 6) stages of the model?
    2. What is the model supposed to measure?
    3. Why is it sometimes preferable to remain at "level 3" instead of aspiring to "level 5"?
    (2+1+2 points, 2 pages)