Written examination TDDB62 Software Engineering for I

advertisement
Linköpings Universitet
IDA
SaS PELAB
Kristian Sandahl
2006-01-11
Written examination TDDB62 Software Engineering for I
Date: Tuesday 2006-01-17
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 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 Tuesday 31 January between 12:00-14:00
in conference room Donald Knuth, B-house, entrance 29, 1st floor, corridor B.
Questions: Kristian Sandahl will visit you about an hour after the start of the exam and 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. Write down one example of a functional requirement and one example of a nonfunctional requirement of a travel booking system. Write down a motivation for
why you think they are functional and non-functional.
2. In the student projects we have given you the advice to inspect the requirements
specification, even though we know that inspections are costly in person-hours.
Write down two reasons for this advice. Motivate your answer.
3. In a travel booking system we need to have both free seats consistent with the
customer’s wishes and having checked the validity of the customer’s credit card
before we can process the booking. Specify this requirement by drawing a Petrinet with textual explanation. Specify the same requirement by drawing a UMLdiagram.
4. Write down two examples of how the end-users’ attitude to a travel booking
system can be measured.
5. Last year many students said that the façade design pattern implemented a layered
architectural style. Write down a description of the relation between the façade
design pattern and the layered architectural style that justifies this statement. Is it
possible to implement a layered architecture without using the façade design
pattern? Write down your answer with motivation.
6. Write down a definition of Big-bang testing. Write down an example where the
method is advantageous. Explain why.
7. Even professional software engineers can defend using a certain programming
language on only emotional grounds. Select a programming language, for
instance, Java and write down two relevant advantages and two disadvantages of
the language. If you want to, you can exemplify with a certain type of software
system.
8. Write down a description of Microsoft’s daily build model. Write down two
advantages of using the model.
9. Write down two relevant reasons for reporting individual working-hours during a
software development project.
10. A system generates statistics from variables from n different geographically
distributed nodes according to the figure below. Suppose the Statistics module can
generate real-time statistics for x MBit data per second, and that then transfer
capacity for each connection from the nodes is 1 MBit per second. If we further
assume that all nodes send y MBit of data per second all the time, write down
values for x and y such that the statistics module can generate real-time statistics
for n=100, but not for n=1000. Write down a suggestion of what you can do if the
customer demands n=1000.
Statistics
data
Node 1
data
Node 2
data
…………..
Node n
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. For each type of coupling, write an example of a component exhibiting that kind
of coupling. The examples shall describe a piece of concrete software, for
instance, a word processor, mail system, ticket-booking system etc. It is not
sufficient to redraw figures 5.13-5.15 in Pfleeger or to use abstract notation as is
done in the figures. You need at least five sensible examples.
12. The Cyclomatic number is very often used for measuring structural properties of
code, and is worthwhile to know well. Write down the following:
a. A suggestion of a data structure to represent flowgraphs.
b. An algorithm written in imperative pseudo-language that takes a
flowgraph represented in your data structure as input and generates the
cyclomatic number as output. You may assume that it is single, connected
flowgraph.
c. Draw the flowgraph of your algorithm and calculate its cyclomatic
number.
13. Compare at least 5 life-cycle models or process models by writing down the
following information for each of the models:
a. A description of the model.
b. At least one benefit of the model for developing an information system
administration interface for well-educated computer users.
c. At least one potential drawback of using the model in developing an
information system administration interface for well-educated computer
users.
d. A suggestion of how the drawback in c. can be alleviated.
14. You have been assigned to introduce reliability prediction in your organization
that is developing systems for automated telephone directory enquiries for three
different markets, EU, USA and China. The idea is that the reliability prediction
should be used to inform you when enough testing is done for each release. Write
down a complete and detailed process for making these estimations. Be careful to
account for which data that needs to be collected, how it might be collected and
how data collection can be (partially) automated. Don’t forget to select the correct
analysis methods and describe what needs to be done initially. Finally, also write
down how the data and the process itself should be maintained over the years.
15. The standard for a large organization is to have a matrix organisation with lines
providing educated and happy work-force to projects that are initiated by people
with market responsibility. The lines are also responsible for the maintenance of
the product. Instead, many people claim that it is better to organize smaller teams
with an end-to-end responsibility for a function or feature. For instance, our guest
lecturer suggested the following prerequisites for such teams:
[start quote]
• Form teams that really have an end-to-end scope (from “needed change”
to “new system version”)
• State clear boundaries in terms of criteria that must be fulfilled before an
assignment can start and before a delivery can be made
• Give teams the possibility to make a true commitment, that is, time for
analysis, planning, and negotiation
• Let the teams decide how to do the work, and do everything to provide
them with the environment and support they ask for
• Encourage and ease communication within and among teams (“team
rooms“, “daily stand-up meetings”, “coordination meetings” etc.)
[end quote]
Write down as many advantages and drawbacks of this arrangement as you can
imagine. Make sure you motivate each statement. If you want to, you can take
examples from your student project.
Download