Written examination TDDC01 Software Engineering theory

advertisement
Linköpings Universitet
IDA
SaS PELAB
Kristian Sandahl
2006-08-18
Written examination TDDC01 Software Engineering
theory
Date: Tuesday 2006-08-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.
Explicitly forbidden aids: Electronic equipment, separate sheets of papers even if they are glued
in the book.
Writing: Please write or print clearly. We cannot 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.
Results: The graded exams are shown and handed out Wednesday 6 September between 11:3012:30 in conference room SaS Grupprum 2, B-house, entrance 29, 1st floor, corridor B. Close to
SU 14.
Questions: The examiner will visit you about an hour after the start of the exam. He can be
reached at 013-28 19 57 or 0706-68 19 57during the examination.
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. Suppose you have written a requirements specification, write down at least two
methods with which the requirements can be validated. Also write down a
description of how the methods work.
2. Write down a definition of Software Configuration Management. Illustrate the
benefit of Software Configuration Management with a small example. Please do
not mix this up with document change management.
3. Write down a description of “fault seeding” (also called “error seeding”). Also
write down what can be gained by using “fault seeding”.
4. Write down two advantages of developing or maintaining a system built with help
of software implementing the CORBA-standard. Motivate your answer.
5. Write down two drawbacks of using a layered architecture. Motivate your answer.
6. Write down two examples of contents of a program file that are NOT included in
the metric “Delivered Non-Commented Lines of Code”.
7. Below we give an example template of the notation of a state machine with
orthogonal states. Draw your own example of a state-machine with at least two
orthogonal regions. Write down a short description of the intended system.
state machine
name
name
state
state
orthogonal region
orthogonal state
action
action
state
action
state
action
state
8. Write down definitions of the constituents of usability:
a. Relevance
b. Efficiency
c. Attitude
d. Learnability
For each of the constituents, write down the definition of a measurement that can
be used in evaluating a prototype of a system.
9. You have created an early prototype of a system calculating the value for an
effector in an electro-mechanical product. During the evaluation you notice that
you calculate values that are within the allowed range of values, but you get
different values when running the system with exactly the same input. Write
down the name and definition of the quality factor your system is lacking.
10. Write down two examples of how a software developing software can earn money
by using design patterns. Indicate and motivate if you think the pay-off period is
short or long.
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 not give more than 7 credits to
solutions that mostly cite sections of the book. The solutions should be thorough and
complete.
11. Imagine a system for management of large engines with the following features:
- Real-time control and monitoring of more than 100 variables
- Configuration support for different operator views
- Routines for automatic start-up and turn-off
- Alarm handling and emergency prioritising
- Routines for moving to safest possible state
- Statistics of fuel, oil, steam and water consumption and production
- Automatic maintenance schedule warning system
- Management of maintenance documentation and reports
- Configuration support for optimizing run conditions
- Voice, picture and data communication amongst personnel through hand-held
devices.
Start designing a part of this system by writing down the following UML
diagrams. Write down which features you intend to cover.
a. At least 5 use-cases
b. A class diagram with at least 5 classes
c. A state diagram with at least 5 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. Write down a list of at least 10 different things that you as a developer can do to
make software more maintainable. Rank the three most important things and
motivate your choice.
13. Write down descriptions of five life-cycle or process models, OTHER THAN the
waterfall model. For each of the models write down:
a. A problem with the waterfall model that is solved by the described model.
b. An example of a document from the waterfall model that becomes less
important, or can even be eliminated if you change to the described model
c. An advantage and a disadvantage for the students if we would change to
the described model in your student project courses.
14. Write down a manual for writing a project plan. Divide the document in different
major sections. For each section write down a description of information that
should be considered in the writing. Also describe how the project can benefit
from documenting this information.
15. Write down five ethical issues that you might encounter as a professional software
engineer. You can describe a detailed example if you like to. We will give credits
for unique issues that are relevant for software engineering. For each of the issues,
write down a motivation of your own standpoint. We will give credit if the
description has relevance for the ethical issue and if the motivation supports the
standpoint. If you have never thought about ethics in professional engineering
before, you should consider solving another problem.
Download