Linköpings Universitet IDA SaS PELAB Kristian Sandahl 2003-01-14 Written examination TDDB62 Software Engineering for I Date: Friday 2003-01-17 Time: 14:00-18:00 Allowed aids: One textbook of the Student’s choice. Hand-written notes in the book 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 answers. You may write answers in English or Swedish. Questions should be answered 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 answers we will split on questions, so if we find more than one question on the paper grading will be delayed. Results: The graded exams are shown and handed out Friday 2003-01-31 between 8:30-10:00 in Kristian Sandahl’s office, entrance 27 or 29, 1st floor, corridor B. Questions: Kristian Sandahl can be reached at 013-711 47, 0706-68 19 57 during the examination. Answer as many as possible of the questions 1-10. They probably require only a few lines answer. Each of the questions can give you 2 (two) credits. Answer no more than two of the questions 11-15. They require a thorough answer of a few pages each. Each of the questions 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 Questions: Answer as many as possible of questions 1-10. Each question gives a maximum of 2 credits. The answers should be focused and short. 1. Which two statements are true? (One or more false statements given = 0 credits) a. A requirements specification can contain use-cases. b. A requirements specification can never express anything about the design of the software. c. The requirements specification is intended to be read by the customer. d. A requirements specification is not required for CMM level 2. 2. Which two statements are true? (One or more false statements given = 0 credits) a. For some programs path coverage and branch coverage testing can use identical sets of test cases. b. It is impossible to use the concept of path coverage for programs with a loop. c. It is very rare that 100% statement coverage can be obtained for programs of 2000 lines of code. d. Stress test does not require very advanced test cases. 3. Write down two software metrics that can be used in describing the maintainability of software. 4. Write down two benefits you get if you use a formal inspection of a requirements specification. 5. “Adding people to a project can delay its completion.” Under what circumstances can this become true? Why does this happen? 6. Write a dataflow diagram for a scheduling system of a university. The flow shall involve teachers, administrators and students. 7. What is the role of a Blackboard in Blackboard architecture? 8. Write a use-case for a person buying a railway ticket with a credit card. Assume that the person operates a completely automated system. 9. Define software reliability and failure intensity. 10. Construct a flowchart with the cyclomatic complexity 5. Answer no more than two of the questions 11-15. Each question 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 answers should be thorough and complete. 11. Write down a list of software architectural styles of at least 5 items. Make groups of three different styles and describe a property of the style that distinguishes one of them from the other two. Repeat this at least 5 times. As an example, imagine that we have a list of animals: DUCK, COW, DOG, FISH, and ALIGATOR. A group of three can be DUCK, COW, DOG. A property that distinguishes one of them from the other two can be “lays eggs”. This fits on the DUCK only, not on COW and DOG. Another group of three can be FISH, COW, DOG and the distinguishing property can be “lives under water”. 12. Many software engineering activities mean change and iteration. There are a lot of concepts beginning with “re-“, for instance re-use and re-engineering. Write down a list of these “re-“ words together with an explanation of the activity. You should also write about the benefits that can be gained from the activities, and under what circumstances these benefits can be expected. 13. Write down a process for formal inspections of code. For each step in your process, explain why the step is needed. 14. You are the line manager of a department and should assign the roles: project leader, requirements analyst, architect, test manager and librarian to the persons in the list below. Write down your assignments with a motivation of your selection. In the table below, 1 is the lowest competence level and level 5 is the highest. Person Data Operating Programming Management Social Analytical communication systems skills skills A 2 1 2 5 5 5 B 4 3 5 2 4 3 C 2 2 4 1 5 3 D 1 3 3 3 3 2 E 4 2 3 1 2 4 15. Assume that you can spend a year full-time in developing a system together with five other students who also recently finished the TDDB62 course. Select one of the three projects: a. A real scheduling system for a university. b. A controller of the heating and ventilation system for the C-house. c. A completely new website for the students of LiTH and the sections. Write down which alternative you would like to choose. Motivate your choice, and motivate why you didn’t chose the others. Write a risk analysis of the chosen project that is find factors that might imply that you cannot deliver an accepted system on time. For each of the factor, write: description, probability of occurrence, consequences and possible ways of removing the risks.