Written examination TDDB62 Software Engineering for I

advertisement
Linköpings Universitet
IDA
SaS PELAB
Kristian Sandahl
2001-10-17
Written examination TDDB62 Software Engineering for I
Date: Friday 2001-10-19
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 2001-11-02 at 12:00-15:00 in
conference room Elogen, E-huset, 1tr, F.449.
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 1(one) credit.
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 5(five) credits.
Grading:
Credits
20
17-20
14-16,5
10-13,5
<10
Good luck!
Grade
Max
5
4
3
No pass
Questions:
Answer as many as possible of questions 1-10. Each questions gives maximally 1 credit. The
answers should be focused and short.
1. Write down the name of the levels of CMM. Give a one-sentence characteristic of each
level. The characteristics do not have to completely define the levels.
2. Explain why high cohesion and low coupling is good.
Please note that the 2nd definition of Coupling in the Glossary in Peters and Pedrycz is
wrong.
3. Give two arguments against using formal methods when specifying software.
4. Describe the major characteristics of a layered software architecture?
5. Construct a diagram, for instance a sequence diagram or collaboration diagram, realising
the dynamics of the following use-case description:
The teacher enters his courses with number of hours
and preferred scheduling constraints into a database.
The administrator fetches all teachers’ data and feeds
it to the optimisation algorithm. The result from the
optimisation algorithm is sent back to the
administrator who makes some manual corrections and
stores the approved schedule in the database. The
students navigate in the database aided by an applet
to find out their schedule for their courses.
6. List three arguments for buying components instead of developing the functions your
customers’ need.
7. What is a design pattern?
8. Describe the work of writing a requirements specification in terms of a process consisting
of:
Entry criteria of the process
Task to be performed
Verification of the task
Exit criteria of the process
Measures taken for future process improvements
9. You are developing control software for a car. Totally you plan to develop 100.000 lines
of code whereof 20.000 are for the internal tests. Normally you write 20% comments in
the code. Derive an expression calculating the development schedule in the basic
COCOMO model as a function of the facts mentioned above.
10. What is the cyclomatic complexity of the flowchart below?
Answer no more than two of the questions 11-15. Each question gives maximally 5 credits. The
answers should be thorough and complete.
11. Create your own catalogue of at least four software life-cycle models. For each model,
give a brief description and a list of benefits and drawbacks for development
organisations using the models.
12. You have agreed to give a talk on software reliability for a group of junior programmers.
Create 4-5 OH slides together with supporting notes for yourself. You have been asked to
cover most of the following issues:
Definition of reliability
Metrics for reliability
Input domain equivalence classes
Reliability growth
Fault classification
Make sure that you put these issues in a coherent context. Simply defining the issues is
not enough.
13. 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.
14. For each of the applications in the list below, select a suitable software architecture and
motivate your choice. The applications are:
A data conversion application which takes a file of students on the format
<firstname1>,<familyname1>,<loginid1>@student.liu.se,
<firstname2>,<familyname2>,<loginid2>@student.liu.se,
etc.
for example
Kalle,Anka,kalan313@student.liu.se
and generates a file on the format
<loginid1>,<familiyname1>,<firstname1>,<loginid1>@student.liu.se,<password>,
<loginid2>,<familiyname2>,<firstname2>,<loginid2>@student.liu.se,<password>,
etc.
for example
kalan313,Anka,Kalle,kalan313@student.liu.se,sune
A cruise control system for a car. If you invoke the system while driving faster than
50 km/h the car will automatically keep the current speed. If you touch the brake or
clutch pedal you will turn the control system off. If you resume the system it will
maintain the previously maintained speed.
A platform for collaborative software design. The programmers work at different
offices in Sweden, but need to cooperate an hour a day when trying to integrate and
test their individual components on a common server.
15. Plan a lab-exercise in maintenance. Invent a software application of your own choice and
describe the base-line system the students can download. Give them tasks that cover all
types of maintenance and a majority of the process steps. Plan for work in 2 passes of 4
hours each.
Download