Software Engineering, Exam, May 15 2000.

Duration 9:00 - 14:00.

  1. Consider the construction of software for the market versus software ordered by a customer. Describe briefly how this distinction influences each phase of a project in the waterfall model.
    (5 points, 1.5 page)

  2. Who are the expected readers of a requirements specification and what properties do they want the specification to have?
    (5 points, 1 page)

  3. Suppose that you own a number of shares in different companies and funds. Your bank offers you a www-service that shows you on a daily basis what your investment is worth now, how its value has fluctuated over time, etc. You can also use the system to send buy- and sell-orders to the bank. The system has a 3-tier architecture.
    a) Describe briefly, using examples, the tasks performed by each tier.
    (3 points, 0.5 page)
    b) Describe how the three tiers cooperate to implement the necessary security measures.
    (2 points, 0.5 page)

  4. A railway signalling system consists of two parts: the traffic direction system (allowing operators to send trains to their correct destinations) and the control system (that prevents collisions and derailments).
    a) Why are these systems separated?
    b) The control system is obviously safety-critical. Argue why the traffic direction system also can be safety-critical.
    (a+b: 3 points, 0.5 page)

  5. What is missing from the following reliability requirement on a machine that changes bank notes into coins:
    "The rate of occurrence of failure (ROCOF) is at most 1 in 100 requests."
    (2 points, 0.5 page)

  6. Consider the following piece of program, which assumes a large integer C and an array A(0..C). It is intended to assign the maximum of A to the variable max.

    max := A(0);
    i := 1;
    while i < C loop
    i := i+1;
    ifA(i) > max
    then max := A(i);
    end if;
    -- max is the maximum of A(0..i)
    end loop

    a) Show what steps must be taken to find test cases for coverage testing, using this program as an example. Show the distinction between node-coverage and branch-coverage.
    (5 points, 1.5 page)
    b) What method(s) of verification are both practical and would likely reveal the error? Note that C is large. Motivate your answer!
    (3 points, 0.5 page)

  7. A serious, non-trivial bug is detected in a program. A version that works around the bug is installed the next day. What further steps have to be taken?
    (5 points, 1.5 page)

  8. Would you want to work in a company that fully applies the Cleanroom model in every project, and that only accepts projects for which the Cleanroom model is suitable? Motivate your answer. (Since both "yes" and "no" and even "it depends" are correct answers, points are given for motivation only. Your motivation must show that you know what Cleanroom is.)
    (4 points, 1.5 page. I will take into account that some students have read only Sommerville, while others have read an article about Cleanroom too.)

  9. Describe (at least) three different methods to estimate the cost of a project.
    (3 points, 1 page)

    Software Engineering, Exam, May 15 2000.

    The following questions should be answered only by those taking the 4- and 5-point course.

  10. The requirements engineering and architectural design phase of a project have taken longer than expected. During the interface design phase, it is therefore decided to assign 8 programmers to the coding phase, instead of 4 as was planned.
    a) Which arguments from "the mythical man-month" apply in this scenario; which ones don't?
    b) Does it make any difference to know that the system is divided into two subsystems of about equal size, with little interaction between them?
    (a+b: 3 points, 0.5 page)

  11. Higher management is impressed with the quality of the software that is produced in your department. You are now asked to
    - obtain certification (such as ISO 9000) for your department, and
    - assist other departments in obtaining the same quality and, eventually, certification.
    a) What steps do you need to take to achieve these goals? (As part of your answer, you must write down assumptions about why your department produces high quality software.)
    b) What pitfalls/mistakes are to be avoided?
    (a+b: 7 points, 2 pages)