Software Engineering, Exam, April 16, 2009.

Duration 08:00-13:00.

  1. In this course, we have used the V-model. Accenture and Prevas also use models close to the V-model. What are the disadvantages of the V-model, compared to agile development? (4 points, 1.5 page)

  2. Describe how different forms of prototyping can reduce different risks for a starting project. Give at least 3 different examples, in which you clearly describe the risk, the kind of prototype, and how that prototype reduces the risk. (6 points, 2 pages)

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

  4. What benefits can the making of a formal requirements specification have? Name at least three benefits and motivate why they can be achieved through formal specification.
    (3 points, 1 page)

  5. System development can be divided into requirements engineering, design, implementation, and so on.
    1. In this context, what are the steps that constitute design? (5 points, 1.5 page)
    2. Why is there no hard border between requirements engineering and design?
      (2 points, 0.5 page)
    3. How is the design process altered if many reusable components are available?
      (3 points, 1 page)

      Turn!



  6. Suppose that you want to offer a ray tracer over the Internet (operations are: adding a world to the shared database, and ray tracing a world in the database with certain parameters). What kind of requirements influence the choice between a fat client and a thin client  architecture?
    (5 points, 2 pages)

  7. Explain by concrete examples how the reliability metrics MTTF (Mean Time To Failure) and ROCOF (Rate of  OCcurrence Of Failure) are used for different purposes.
    (3 points, 1 page)

  8. Consider a system where humans and computers together try to achieve optimal operation (e.g., a power station trying to meet a fluctuating demand). The system is also safety-critical: in some states, some actions will lead to a severe hazard. What high-level architectural design is appropriate? Motivate it. (4 points, 1.5 page)

  9.  How can the following kinds of test be applied to a ray tracer (give concrete examples):
       1. a black box unit test,
       2. a branch coverage test,
       3. an acceptance test,
       4. a regression test?
    State also the goal of each of these tests. (8 points, 2 pages)

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

  11. Give examples of internal and external attributes of software products. Compare their role in quality assessment. (5p, 1.5 page).

  12. Discuss how you can measure the productivity of your team of programmers, and what problems make it hard to achieve an accurate measure. (3 points, 1 page)