Software Engineering, Exam, March 17, 2010.
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!
- Given a fixed budget, explain
the benefits of incremental development on
- usability
- functionality
- presence of faults
in the delivered product (4 points, 1.5 page)
- What
reasons could the customer have to impose process requirements?
(3 points, 1 page)
- What are the purposes of making system models
during requirements engineering? Distinguish between informal and
formal models. (5 points, 2 pages)
- System development can be divided into requirements
engineering, design, implementation, and so on.
- In this context, what are the steps of designing a software
system? (5 points, 1.5 page)
- Why is there no hard border between requirements specification
and design?
(2 points, 0.5 page)
- How is the design process altered if many reusable components
are available?
(3 points, 1 page)
- Give three examples of tasks that are usually performed
by the middle layer in a logical three-tier architecture. (3 points, 1
pages)
Turn!
- It is sometimes a requirement for a safety critical system that
certain features of the programming language are not used. Give 4 examples
of such features and motivate for each feature why it can cause a
hazard or make the system impossible to verify. (4 points, 1.5 pages)
- In some safety-critical systems, there are several (N) copies of
the same hardware. In software, the corresponding concept is N-version
programming. Explain how the differences between hardware and software
cause differences in the application/behaviour/effectivity of
redundant hardware versus N-version programming. (4 points, 1 page)
- 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, 3 pages)
- Give
three examples of requirements that cannot be tested, but that can be verified
by inspection. (3 points, 1 page)
- Give a brief description of the Scrum process.
(4 points, 1.5 page)
- Describe four different methods
to estimate the cost of a project. What input does each
method need (i.e., what information do you need in order to apply each
method)? (4 points, 1.5 page)
- Describe the tasks associated to securing the
quality of a project, and by who, how and when they are carried out in
relation to the project. (6 points, 2 pages)