Written examination TDDC01 Software Engineering theory

advertisement

IDA

SaS PELAB

Kristian Sandahl

Written examination TDDC01 Software Engineering theory

Date: Monday 2006-01-16

Time: 8.00-12.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 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, 1 st floor, corridor B.

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 Grade ECTS

34-40 5 A

31-33 4 B

28-30 4 C

24-27 3 D

20-23 3 E

Good luck!

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. If you fulfilled the exercise in April 2005, just write “RAM 2005”.

2.

Write down at least two benefits from the customer’s perspective of using a database tool specially designed for storing requirements compared to handling requirements in written requirements specifications. If you fulfilled the exercise in

April 2005, just write “RAM 2005”.

3.

Much software is developed by providing a platform and let programmers build applications on the platform. Write down a motivation for this arrangement and write down a high-priority property or function that you would expect from a good platform. Use an example if you like.

4.

The figure below depicts the standard print window in Windows XP. Write down one good thing and one drawback with the design of this dialogue window. Write down a description of an alternative design that alleviates the drawback.

5.

Write a small program in any imperative language or pseudo-language whose corresponding flow-graph has the cyclomatic complexity 5. Also draw the flowgraph.

6.

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.

7.

Write down definitions of two examples of software metrics that are relevant for software that shall be easy to maintain. Give a short motivation of the benefits you would get from measuring them.

8.

Write down at least four high-priority issues with explanations that shall be part of a project plan.

9.

Write down two pairs of conflicting quality factors. For each pair, describe the conflict with a small example.

10.

The UML class diagram below shows classes responsible for order processing and tax calculations in an e-commerce application. Draw a UML object diagram to show the object structure when the application calculates Canadian tax. Also draw a UML sequence diagram that illustrates the communication between objects when a TaskController object calls the calcTax operation (calcTax calls taxAmount); assume that Canadian rules are used.

SalesOrder

TaskController

+ calcTax() : double

CalcTax

+ taxAmount(item : Salable, qty : int) : double

CanadianTax

+ taxAmount(item : Salable, qty : int) : double

USTax

+ taxAmount(item : Salable, qty : int) : double

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.

A company has problem with project schedule and budget overruns. They have decided try to reduce these problems by introducing risk management. One of the first steps is to perform a one hour seminar on this subject for the company’s employees. Your task is to write documentation for future reference for the seminar. Write down your documentation including the following information:

• a description of an example project;

• three specific risks that can be identified from the above example project.

Generic risks such as unrealistic budget will not give credits;

• a generic risk management process and motivate its activities;

• an explanation how risks evolve when a project leaves the definition phase and, via the design phase enters implementation; and

• the relation between risk management and increment planning in incremental development processes such as RUP.

12.

Write down a discussion of why each of the following five statements regarding software testing is right or wrong. Begin each discussion with "I think statement

X is right/wrong because ...". In the grading we will count the number of relevant, unique arguments given. a.

The purpose of testing is to show that the software works. b.

The purpose of testing is to show that the software doesn't work. c.

The purpose of testing is to obtain a numerical assessment of the quality of the software. d.

The purpose of testing is to provide a basis for development process control. e.

Testing could be kept to a minimum if the time for testing were used for programming instead.

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 two benefits of the model for developing a web-based document management system for computer beginners. c.

At least one potential drawback of using the model in developing a webbased document management system for computer beginners. d.

A suggestion of how the drawback in c. can be alleviated.

14.

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

15.

Describe five roles in a software development project in terms of authorities, responsibilities, documents to be written and desired competence profile. Which role did you have in your project? Write down benefits and potential improvements of your role.

Download