Written examination TDDB62 Software Engineering for I

advertisement
Linköpings Universitet
IDA
SaS PELAB
Kristian Sandahl
2002-08-29
Written examination TDDB62 Software Engineering for I
Date: Saturday 2002-08-31
Time: 14:00-18:00
Allowed aids: One textbook of the Student’s choice. Hand-written notes in the book are allowed.
Dictionaries from English to another language without notes are allowed.
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 answers. You may
write answers in English or Swedish. Questions should be answered 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 answers we will split on questions, so if we find more than one question on the
paper grading will be delayed.
Results: The graded exams are shown and handed out Friday 2002-09-13 between 8:15-10:00 in
Kristian Sandahl’s office, entrance 27 or 29, 1st floor, corridor B.
Questions: Kristian Sandahl can be reached at 28 19 57, 0706-68 19 57 during the examination.
Answer as many as possible of the questions 1-10. They probably require only a few lines
answer. Each of the questions can give you 2(two) credits.
Answer no more than two of the questions 11-15. They require a thorough answer of a few
pages each. Each of the questions can give you 10(ten) credits.
Grading:
Credits
40
34-40
28-33
20-27
<20
Good luck!
Grade
Max
5
4
3
No pass
Questions:
Answer as many as possible of questions 1-10. Each question gives a maximum of 2
credits. The answers should be focused and short.
1. Give two software qualities that can be in conflict with each other. Explain why it is hard
to get both simultaneously.
2. In Peters & Pedrycz the following sentence appears as a definition of both coupling and
cohesion:
The degree to which the methods within a class are related to one another.
Both concepts cannot have the same definition, which is right and which is wrong?
3. Give two reasons for using CMM.
4. Give the name of a formal method for requirements specification. Give an example of a
system where this method is a good choice for specification.
5. What is a traceable requirements specification?
6. Imagine a scheduling system for a university serving students, teachers and
administrators. Describe two design objects of this system with at least one
method each. These objects would be the part of a design specification.
7. What is the difference between performance test and stress test?
8. Why is a high cyclomatic complexity of a software module a bad thing?
9. Explain the basic steps of a Delphi cost estimation process.
10. How can fault injection or seeded faults help you estimating the reliability of your
software?
Answer no more than two of the questions 11-15. Each question gives a maximum
of 10 credits. The answers should be thorough and complete.
11. Thoroughly describe the idea behind a pipeline architecture. Create an example of at least
three filters. What are the advantages of using a pipeline architecture in your example?
12. A development company developing software for home communication with about 30
employees is running projects according to the waterfall process model. Earlier years this
was OK for their 4-month projects, but now projects grown to a year and they want to
take advantages of development methods using the incremental life-cycle model. Your
job is to create an intranet home page explaining what incremental methods are, how they
are used, what can be improved, topics for internal seminars, etc. Make a sketch of the
layout of the pages, and provide the texts that would be the content of your web.
13. Thoroughly describe a software maintenance model. What phases are needed? What
types of maintenance is the model aimed for? You can either select an existing model
from a book or invent your own.
14. A friend of yours learned to program in C++ from a book and a two-week course at a
private institute. She has made some low-level programming on direct supervision of a
senior programmer, who re-wrote some of her stuff and gave her very little feedback.
Due to factors outside her control she is now alone responsible for a project that will take
her about one year to complete. She is worried about the reliability and maintainability of
the software and asks you for your advice. Give her your 5 topmost hints about what she
should do to improve her development methods. Describe things in a concrete style (just
not only refer to a book, website or person). What benefits can be expected from your
ideas?
15. You have become next year’s examiner of the PUM-I course and intend to do a little
experiment on testing. Two of your system groups will use a top-down integration testing
and two system groups will use bottom-up integration testing. Write short instructions to
both categories of system groups and list ideas for data that you can collect to compare
the results of the system groups. Hopefully your experiment may give you a hint about
what testing methods to recommend in the following years.
Download