Written examination TDDB62 Software Engineering for I

advertisement
Linköpings Universitet
IDA
SaS PELAB
Kristian Sandahl
2005-01-13
Written examination TDDB62 Software Engineering for I
Date: Saturday 2005-01-15
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. This is
not an empty threat, last time two students had to take a complementary exam due to bad writing.
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 Thursday January 27th between 11:0012:30 in conference room Donald Knuth, B-house, entrance 29, 1st floor, corridor B.
Questions: Kristian Sandahl can be reached at 0706-68 19 57 or 013-12 42 53 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. Which two statements are true? (One or more false statements given = 0 credits;
only one statement given that is correct = 1 credit)
a. Using polymorphism is a way of realizing Parnas’ information hiding
principle.
b. In UML you can use use-cases, activity diagrams and state diagrams to
model a decision made by the system.
c. Using the stereotype <<extend>> in UML we factor out common parts of
several use cases.
d. You can measure the Cyclomatic complexity of an UML use-case
diagram.
2. Write down definitions of two examples of software metrics that you could have
measured in your project. Give a short motivation of the benefits you would have
had from measuring them.
3. Write down two drawbacks of deploying a prototyping process model.
4. A library system is to be constructed according to the following principles:
a) The system must allow employees of the library to search the book
database. It should also provide extended information about the books, e.g.
where it was bought, the price and who has borrowed it. The extended
information must only be available to library employees.
b) The book database must be available on the Web where every one can
perform simple search on title, author or publication year
c) Library employees can register new users and issue library cards. It should
also be possible to unregister users or change their contact information
(address and phone number)
d) Employees can add new books and remove old ones.
e) A registered user, who has a library card, can view her/his loans on the
Web. This function requires that the user has logged in. The user can also
extend the loan period while logged in.
f) An employee can register new loans, returned books and extend loans.
Now, perform a noun-analysis of the text and write down at least two classes with
at least two methods and/or attributes each. There should be at least one relation
between the classes. (Note: You don’t have to account for your considerations
during noun-analysis, just write down the resulting model)
5. Use the principles in problem 4 and perform a verb analysis and write down at
least two use-cases with actors. Don’t forget that both a diagram and an informal
text define a use-case. (Note: You don’t have to account for your considerations
during verb-analysis, just write down the resulting model)
6. What information should go into a data dictionary? What are the benefits of using
a data dictionary?
7. There are many models and methods for software development effort estimation.
Write down the name of one you think would have been applicable in your course
project. Write down a motivation for your choice and list the data you would need
to use the model.
8. Suppose next year’s students will maintain your project. Write down two things
you could do to increase the maintainability of your system. Motivate your
choices.
9. Write down a definition of an embedded system. Give two examples of such
systems.
10. Consider a system with the following component hierarchy
A
B
C
F
D
G
E
H
I
J
K
L
M
Write down a sequence and dependency diagram for a top-down integration
testing for the system. Is this a good strategy for the system? Write down a
motivation for your decision.
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. Imagine a system making an optimal schedule for a university. Inputs to the
system are all wishes from the course leaders as regards times and facilities. The
system discovers which courses the students have selected and minimizes the
number of scheduling collisions for all students under the constraint of course
leaders’ wishes. The final schedule is readable from the web. Start designing this
system by writing down:
a. At least 5 use-cases
b. A class diagram with at least 5 classes
c. A state diagram with at least 3 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. When selecting test cases it is sometimes recommended to partition the input into
equivalence classes. (In Mariam’s lecture she used the term Boundary value
analysis when discussing this.) Describe what is meant by this approach to test
case generation. Provide an example. What are the drawbacks and advantages of
this? It this approach related to any open box testing strategies? Suppose we have
n independent variables in the input space. How many more test cases is
generated if we double the number of boundaries for each variable?
13. Out of some strange reason, the Swedish Railroad company SJ, have appointed
the teachers of the course and yourself to create the next generation web-interface
for travel booking. We have six months of full-time work to achieve this. The
core competencies are:
• Kristian, project leader, usability and reliability expert
• Andreas, requirements engineering expert, Java programmer
• Jens, design expert, programming environment expert, Java programmer
• Calle, expert Java programmer, data-base expert, tester
• Yuxiao, web-technology expert, business strategy responsible, Java
programmer
• You, see task a) below.
We need your help in starting the project, so please write down:
a) The competence you would need to become the sixth project member.
Feel free to imagine competence you can obtain, but be careful to select
competence that will complement the others to achieve a good project.
Motivate your choice.
b) A risk analysis of the project of at least 10 risks.
c) Suggestions of how to alleviate the two top risks.
14. A stakeholder of a system can be any person or category of persons affected
directly or indirectly by the system. For example, end-users are directly affected
by the system.
Your task is to create a table with software life cycle models as columns and
stakeholders of the software developed with the life cycle models as rows. For
each position in the table you write down the consequences of each life cycle
model for each stakeholder. For example:
Type of software: Scheduling system for a university.
Endusers
Waterfall
Nothing
to test
before
the end
of the
project.
…
…
…
…
You shall also write down a short description of the type of software for which
your solution is intended. I want a table with at least 10 correct and relevant
positions. To be on the safe side, create a table of 4 life cycle models and 4
stakeholders. Thus you need 10 out of 16 correct.
15. For each type of cohesion, write an example of a component exhibiting that kind
of cohesion. 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 figure 5.17 in Pfleeger or to use abstract notation as is done in
the figure. You need at least five sensible examples.
Download