Software Engineering, Exam, June 17 2000.

Duration 9:00 - 14:00.



  1. In the beginning of the course we discussed some process models (waterfall, V-model, etc.). They all have advantages and disadvantages. What are desirable properties for a process model? (4 points, 1.5 page)

  2. Requirements can be formulated in various languages: natural languages, semi-formal languages and formal languages. For each class of languages:
    1. what are its two most important advantages?
    2. what is the most important risk of using such a language?
    (6 points, 2 pages)

  3. Give two examples of:
    1. functional product requirements
    2. non-functional product requirements
    3. process requirements
    (3 points, 1 page)

  4. Why cannot formal methods guarantee "perfect" software? (4 points, 1 page)

  5. Define the concepts cohesion and coupling in software design. Use an example. (5 points 1.5 page)

  6. How can the existence of a safe state be of use in the programming of a safety critical system? (2 points, 0.5 page)

  7. Relate and contrast the following concepts: failure, fault, mishap, hazard, risk. Use a concrete example in which these concepts occur. (4p, 1 page).

  8. Consider a system such as the ticket system of assignment 1, or the system recently installed in Uppsala, or something similar. For each of the following tests,
    1. a black-box test using equivalence partitioning
    2. a statistical test
    3. an acceptance test
    describe how you choose test data, give an example, and give the goal of performing such a test. (6 points, 2 pages)

  9. What steps must be taken to create a reusable component from a component that was created inside a particular system? (3 points, 1 page)

  10. Describe (at least) three different methods to determine the price of a project. (3 points, 1 page)

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

  11. Give arguments for and against the statement that "Reuse is the Silver Bullet". (4 points, 1.5 page)

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