Written examination TDDB62 Software Engineering for I

advertisement
Linköpings Universitet
IDA
SaS PELAB
Kristian Sandahl
2005-10-17
Written examination TDDB62 Software Engineering for I
Date: Saturday 2005-10-22
Time: 14:00-18:00
Allowed aids: One textbook of the Student’s choice. Hand-written notes in the book pages are
allowed. Dictionaries from English to another language without notes are allowed.
(Tentamensvakter, det finns studenter som antecknar otroligt mycket på alla lediga ytor i boken.
Det är OK så länge man håller sig till de sidor som finns i boken och inte klistrar in fler. Vi måste
dra gränsen på ett sätt som är lätt att verifiera)
Explicitly forbidden aids: Electronic equipment, separate sheets of papers even if they are glued
in the book.
Writing: Please write or print clearly. We will not give credit for unreadable solutions. You may
write solutions in English or Swedish. Problems should be solved on separate sheets of A4 paper.
Write only on one side of the paper and label all papers with name and personal number. When
grading the solution we will split on problems, so if we find more than one problem on the paper
grading will be delayed.
Results: The graded exams are shown and handed out Friday November 4th between 11:0013:00 in conference room Donald Knuth, B-house, entrance 29, 1st floor, corridor B.
Questions: Kristian Sandahl can be reached at 0706-68 19 57 or 013-12 42 53.
Solve as many as possible of the problems 1-10. They probably require only a few lines solution.
Each of the problems can give you 2 (two) credits.
Solve no more than two of the problems 11-15. They require a thorough solution of a few pages
each. Each of the problems can give you 10 (ten) credits.
Grading:
Credits
40
34-40
31-33
28-30
24-27
20-23
<20
Good luck!
Grade
Max
5
4
4
3
3
No pass
ECTS
Max
A
B
C
D
E
F
Problems:
Solve as many as possible of problems 1-10. Each problem gives a maximum of 2 credits.
The solutions should be focused and short.
1. In the student projects we have given you the advice to enumerate all
requirements. Write down two reasons for this advice. Motivate your answer.
2. Below you find a record from failure occurrences of a system. We can assume
that once a failure is found, it is corrected.
Failure
number
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
3.
4.
5.
6.
7.
8.
9.
Failure time
[hours
execution
time]
300
570
960
1290
1740
2100
2640
3090
3750
4500
5070
5970
6930
7680
8880
Calculate an approximation of the failure intensity per 1000-hour interval from 0
and 9000 hours. Draw a table. According to your experience, write down a rough
estimate of the failure intensity of a light bulb. Is the system better or worse than
the light bulb according to your estimate? Write down a short answer.
Suppose your customers are sending you ideas to new requirements continuously.
Select a life-cycle model that is appropriate for this situation. Write down the lifecycle model together with a motivation.
What is the difference between an architectural style and a design pattern? Write
down an answer with a short motivation.
Write down a definition of Sandwich testing. Write down an example where the
method is advantageous. Explain why.
Write down a definition of multiple inheritance. Write down a problem that might
arise if you allow multiple inheritance when designing a piece of software.
In his guest lecture Mr Pettersson talked about the “anatomy of changes”, that is a
graph showing dependencies of changes suggested to software. Write down an
explanation of how this graph can be used to facilitate development of software in
small steps.
Draw a loop-free flow graph with cylomatic complexity 6.
Write down at least 4 different use-cases for at least 2 different actors for a
railroad ticket system.
10. A mature system has been used for many years without any failure reported. Can
this information be used to draw any conclusion about the expected number of
future failures? Write down your answer with a motivation?
Solve no more than two of the problems 11-15. Each problem gives a maximum of
10 credits. Try to formulate with your own wording. We will be reluctant to give
more than 7 credits to solutions that mostly cite sections of the book. The
solutions should be thorough and complete.
11. Nowadays most libraries use information systems to keep track of their books and
loans. The requirements of such systems often follow these principles:
a. The system must allow employees of the library to search the book
database. It should also provide extended information about the books, e.g.
where it was bought, the price and who has borrowed it. The extended
information must only be available to library employees.
b. The book database must be available on the Web where every one can
perform simple search on title, author or publication year
c. Library employees can register new users and issue library cards. It should
also be possible to unregister users or change their contact information
(address and phone number)
d. Employees can add new books and remove old ones.
e. A registered user, who has a library card, can view her/his loans on the
Web. This function requires that the user has logged in. The user can also
extend the loan period while logged in.
f. An employee can register new loans, returned books and extend loans.
Start designing this system by writing down:
a. At least 5 use-cases
b. A class diagram with at least 5 classes
c. A state diagram with at least 3 states
d. A sequence diagram with at least 5 messages
e. An activity diagram with at least one decision and one horizontal
synchronization bar.
12. There are many different principles of “good design” and you have gotten the task
to make a summary for the intranet of your company. So, write down a list of at
least 5 “good design” principles. For each of the principles write about:
a. A definition
b. An illustrating example (may be simple, if possible)
c. Advantages that can be expected or problems that might be avoided
d. Any potential drawbacks or compromises of the principle.
13. There are also many techniques for validating software. Write down a list of at
least 5 techniques, whereof maximally 3 are variants of executing testing. For
each of the techniques write about:
a. A definition
b. How the technique contributes to validation
c. In your student project, how many hours would you think are necessary to
use the technique in validating your system? Motivate your answer.
d. What types of defects and faults can the technique remove?
e. Given the cost you estimated in sub-task c., would it be worthwhile
implementing this technique in your project? Motivate your answer.
14. Some knowledge in mathematics is an important prerequisite to studies in
software engineering. Any text-book contains references to mathematical models,
both continuous and discrete mathematics. If you were designing a mathematics
course for software engineers at their first year at the university, what parts of
mathematics would you like to include? Write down some sub areas and make
examples for how software engineers and/or software engineering researchers can
apply the mathematics. This should result in at least five different examples. Also
make a rough plan by distributing 1000 study-hours on the different sub-areas.
Write the time plan in a small table. Finish by writing down a motivation for your
distribution of hours.
15. Write down a list of at least 10 different requirements on quality attributes for a
railroad ticket booking system. For each of the requirements explain in detail how
you would measure the quality attributes and verify the requirements. A person
participating in the development or testing of the system should be able to verify
the requirement according to your explanation of how to measure the quality
attribute. You might thus assume that the person know much about the system but
not so much about measuring quality.
Download