Software Engineering, Exam, December 11, 2002.

Duration 9:00 - 14:00.

  1. Given a fixed budget, explain the benefits of incremental development on
    1. usability
    2. functionality
    3. presence of faults
    (3 points, 1 page)

  2. 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)

  3. Explain why a software designer could be interested in tracing a requirement back to its stakeholder(s).
    (3 points, 1 page)

  4. 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)

  5. Sometimes the safety of a system requires its availability. Sometimes safety and availability are conflicting requirements.
    1. Give an example of each case.
      (2 points, 1 page)
    2. Point out the crucial difference between the two cases.
      (2 points, 2 lines)

  6. Discuss the concept of N-version programming. What is the idea behind it? What are the problems?
    (4 points, 1 page)

  7. Consider the following program that given i, computes n, the square of i.

    if i < 0 then i := -i;
    n := 0                                endif;
    while i > 0 do
       i := i-1;
       n := n + 2*i + 1
    endwhile

    1. Give a set of test data (values for i) that constitute a branch coverage test. Show clearly what steps you take to arrive at these values.
      (4 points, 1 page)
    2. Using this program as an example, explain the concept infeasible path.
      (2 points, 0.5 page)
    3. Is the potential error in this program most likely to be discovered by inspection, by a branch coverage test, or by a black box test? Why?
      (3 points, 0.5 page)

  8. What are the advantages and disadvantages of using statistical testing with the purpose of finding faults?
    (4 points, 1 page)

  9. Discuss the advantages and risks of algorithmic cost modelling (such as the COCOMO model).
    (4 points, 1 page)

  10. Describe the relation between software metrics and external quality attributes.
    (4 points, 1 page)

  11. Many of the articles argue in favour of creating software in a more orderly fashion than today's practice.
    1. Why do all the "more orderly" techniques move work from the later stages of a project to the earlier stages?
    2. What can be the problems of shifting the work balance in this way?
    (6 points, 2 pages)