Software Engineering, Facit, April 16, 2008.

  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)

  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):

       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)
      • You draw a flow chart (you must actually do this, not write "you do this").
      • Identify paths through the flow chart that cover all branches.
        You can do with one path: in,1,2,3,4,6,7,8,1,2,5,6,7,out
      • Find input that makes the program follow these paths.
        n=2, a[1]=2, a[2]=1
      • A basic block is a piece of code without branching, that is always executed in sequence (like the block between 3 and 4).
      • An infeasible path is a path through the code for which no input exists, for instance 1,7,8
      • The oracle problem is: how to know if the output is correct?
    1. Inspection: checking that the right comparator is used is definitely on the checklist.
      Boundary value testing - a typical boundary case would be a list with identical elements.

  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)
    1. See page 683-685. A "reasonably close" answer that captures the general idea is ok.
    2. Process maturity, i.e. quality of the process
    3. The extra effort (measurements and documentation) to reach level 5 may not pay off.
      Level 5 may reduce the adaptivity of the organisation by regulating too strictly how processes can be changed.