Written examination TDDC01 Software Engineering theory

advertisement
Linköpings Universitet
IDA
SaS PELAB
Kristian Sandahl
2006-05-30
Written examination TDDC01 Software Engineering
theory
Date: Friday 2006-06-02
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. When
grading the solutions 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 Wednesday August 16th between 11:0013:00 in conference room Donald Knuth, B-house, entrance 29, 1st floor, corridor B.
Questions: Examiner Kristian Sandahl 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 57 during 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. Write down four quality factors that are especially important for critical systems.
For each of the factors, write down a short motivation of why they are important.
2. Write down two reasons of why a software system that is used in the real world
must be continuously updated or become progressively less useful.
3. Suppose you have the following activities in a project:
NUMBER
NAME
1
Requirement
analysis
Staffing
Writing project
plan
Writing
requirements
specification
Planning 1st 3
releases
Design release #1
2
3
4
5
6
START
DATE
2006-06-01
END
DATE
2006-06-30
PERSON
HOURS
320
PREREQUISITE
ACTIVITY
-
2006-06-10
2006-06-20
2006-07-15
2006-07-31
40
400
1, 2
2006-06-30
2006-08-15
400
1
2006-08-15
2006-08-20
30
3, 4
2006-08-20
2006-09-10
720
5
Draw two different types visualisation diagrams for these activities. Write down a
benefit for each of the two types.
4. Write down at least two functional user requirements and two non-functional
requirements in natural language for an unattended petrol station. The system
includes a credit card reader. The customer swipes the card through the reader and
then specifies the amount of fuel needed. The fuel is delivered and the customer’s
credit card account debited.
5. Your customer sent you this mail of the routines of buying raw material:
First, we calculate the needs from the Production Planning System
and check our own stock. The difference between the need and the
stock is sent to the Procurement System that creates a Bid Offer.
The Bid Offer is sent to known vendors via e-mail and is
advertised via our web-service. Known vendors send their bids
automatically to our web-service, and new vendors have to receive
a communication protocol definition object and a bid account
before their web-services can place a bid on our web-service.
After an open auction, the orders are put to lowest prices. If
not enough quantity can be bought, we place an order for the rest
from a known, but expensive, Provider outside the bidding
process.
Draw a UML sequence diagram showing the dynamic behaviour of the system.
6. Write down definitions and examples of four different metrics that can be used to
measure size and/or complexity of a class in an object-oriented programming
language.
7. Give an example of a metaphor that can be used in designing a Graphical User
Interface for a system of your own choice. Draw a rough sketch and describe the
system. Write down a benefit for the developers from using the metaphor.
8. Write down four prerequisites that must be met if a prototyping development
method can be considered.
9. Write down definitions of the test-terms: Oracle, Stub, Stress test, Coverage.
10. Write down a flow-chart or non-recursive pseudo code of any array sorting
algorithm. Write down test-cases that ensure branch coverage.
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. The solutions should be thorough and
complete.
11. For the Observer design pattern below, write down thorough explanations of the
meaning of all classes, attributes, methods and associations. You shall use an
example to make your points easier to read.
Subject
attach(Observer)
detach(Observer)
notify()
Observer
* update()
ConcreteSubject
ConcreteObserver
subjectState
observerState
getState()
setState()
update()
12. Select five life-cycle models or process models from your book. For each of the
models, write down the answers to the following questions:
a. What benefits does the model offer a group of 6-8 students developing
their first piece of software from customer requirements?
b. What benefits does the model offer a professional group of 20-100
programmers developing most of the software themselves?
c. What activities in the model will change if a professional group of 20-100
programmers group reuses components and only code about 5% of the
software themselves?
d. Select an activity that a professional group of 20-100 programmers can
outsource to someone else. Why did you choose this activity?
13. There are about five major architectural styles normally described in text books.
Their benefits are often only described in terms of maintainability, that is, the ease
of which people understand the software and the effort it takes to make a change
in the software. Many practitioners and theoreticians claim that the architectural
design has strong implications for the resulting system’s quality factors. Now,
write down 5 tuples, each made up of an architectural style and a quality factor,
other than maintainability. For each tuple you should write down an example
that clearly explains how design decisions affect the quality factor. A design
decision can either be the choice of a particular architectural style or a decision of
how to instantiate part of the style, for example, to decide about the number of
layers in a layered architecture. You will get 0-2 credits per tuple depending on
the quality of your example. You can only get credits for maximally 2 negative
tuples, that is, architectural design decisions that make the software worse from
the view of the particular quality factor.
14. Imagine a theatre ticket booking system. The customer can buy tickets on-line or
at the ticket office. The officer can sell tickets and schedule the performances.
Draw UML(* views of the systems:
a. At least 5 use-cases
b. 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 synchronization bar
f. A deployment diagram with at least two nodes
(*
If you are not certain about wether some parts of your diagram is standard
UML, please provide explanations of the notions you introduce.
15. There are many techniques and methods for accomplishing safety-critical systems
such as:
a. Using formal specifications.
b. Hiring independent experts for inspections.
c. Using statistical usage testing.
d. Using experience-derived checklist.
e. Making hazard-analyses.
f. Developing a company culture of safety.
g. Using statistical process control of your development process.
h. Deploying the Cleanroom process model.
Select five of these (or suggest your own). For each of the methods write down:
1. A thorough description of the method.
2. A description of the costs (items, not dollars) of initiating and running the
method
3. The contributions to safety that are likely to follow from the method.
Download