Software Engineering, Exam, March 18, 2005.
Duration 15:00 - 20:00.
- Start by reading all the questions, to see if anything is
unclear. I plan to visit around 17: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 11 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!
- During the course we discussed some
software engineering processes (waterfall, V-model, etc.). They all
have advantages and disadvantages. What are desirable properties
for a process? (5 points, 2 pages)
- Consider the Cleanroom process.
- What is its philosophy (goal, slogan)?
- What are its 5 ingredients (principles, methods)?
(3 points, 1 page)
- If a change is made to a requirements
specification, then what about this change should be traceably,
and why? (3 points, 1 page)
- 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)
- Describe how different forms of prototyping can reduce different
risks for a starting project. Give at least 3 examples. (6
points, 2 pages)
- System design:
- What are the steps of designing a system?
- Why is there no hard border between requirements specification
and design?
- How is the design process altered if many reusable components
are available?
(10 points, 3 pages)
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)
- It is sometimes a requirement for a safety critical system
that certain features of the programming language are not used. Give
5 examples of such features and motivate for each feature why it can
cause a hazard. (5 points, 2 pages)
- Describe (at least) five different test methods.
For each method, mention
- its goal, and
- (briefly) how it is done, and
- what CASE-tools are useful, or even necessary.
(10 points, 4 pages)
- The following lines of code compute the sum of the positive elements
of the array A.
i = A.length();
sum = 0;
while i > 0 do
if A[i] > 0 then
sum = sum+A[i] fi;
i = i-1;
done;
return sum;
- Give an example of a single test input (an array A)
that gives full branch coverage. Explain clearly how you found this
test. (5 points, 2 pages)
- This code is correct if the programming language indexes an
array of length n from 1 to n, but it is incorrect if it indexes from 0 to
n-1 (or in any other way). Give two methods of verification that you
would expect to catch errors of this kind. Motivate your answer. (2 points,
1 page)
- Describe three different methods to estimate the cost
of a project. What input does each method need (i.e., what
do you need in order to apply each method)? (3 points, 1 page)