Software Engineering, Exam, April 16, 2009.
Duration 08:00-13:00.
- Start by reading all the questions, to see if
anything is unclear. I plan to visit around 9:30 to clarify
questions.
- Answers may be written in Swedish or English,
or any reasonable mixture of those.
Dictionaries may be used.
- Start each answer on a new page. Please hand
in the pages in the correct order.
- For each question, I give its points and a maximal
length of the answer. The optimal length is usually
around half of this maximum. (This does not include drawings.)
- A checklist of common mistakes that cost points:
- Answer all 12 questions. A bad answer
never gives less points than no answer.
- Read the question again after you have
written the answer. Verify that you have actually answered
the question. Verify that you answered all parts.
Verify that you have not hidden the answer
between many other irrelevant comments about the topic.
- In particular, don't forget to give an
example if that is requested, and make it a concrete one.
- When a question asks you to compare two
things A and B, make sure to highlight the contrasts: their
differences. I do not want a full description
of A and a full description of B, leaving it to me to find the
differences.
- Good luck!
- 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)
- 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)
- Who are the expected readers of a requirements specification
and what properties do they want the specification to have? (5 points, 1
page)
- 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)
- System development can be divided into requirements engineering,
design, implementation, and so on.
- In this context, what are the steps that constitute design? (5
points, 1.5 page)
- Why is there no hard border between requirements engineering
and design?
(2 points, 0.5 page)
- How is the design process altered if many reusable components are
available?
(3 points, 1 page)
Turn!
- 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)
- 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)
- 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)
- 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)
- What are the advantages and disadvantages of using statistical
testing with the purpose of finding faults? (4 points, 1 page)
- Give examples of internal and external attributes
of software products. Compare their role in quality assessment. (5p, 1.5
page).
- 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)