Linköpings Universitet IDA SaS PELAB Kristian Sandahl 2003-08-26 Written examination TDDB62 Software Engineering for I Date: Saturday 2003-08-30 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 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 Thursday 2003-09-11 between 10:3012:30 in Kristian Sandahl’s office, entrance 27 or 29, 1st floor, corridor B. Questions: Kristian Sandahl can be reached at 013-12 42 53, 013-711 47 or 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. There are parts of Computer Science that are not parts of Software Engineering. b. The general goal of Software Engineering is to mimic human problem solving as faithfully as possible. c. Software Engineering deals with tools for software development. d. Software Engineering was defined as a term in 1990 as a response to the Software Crisis. 2. Which two statements are true? (One or more false statements given = 0 credits) a. A layered software architecture means that system response time is the highest priority. b. The main concern for information hiding is to prevent unauthorised changes of the code. c. Unix has good support for a pipe and filter architecture d. Design patterns can provide a common terminology for designers. 3. Write down an example of when a Petri Net is better than a finite-state machine to describe a requirement. Motivate your choice. 4. On a sign in front of an escalator (rulltrappa) is the following sentence written: “Dogs must be carried, shoes must be worn.” Write down two ways in which the sentence can be interpreted with another meaning than the interpreted one. Why do you think this question fits on an exam for Software Engineering? Write down your motivation. 5. Is branch coverage testing a harder requirement than path coverage testing? Write down you motivation to the answer of that question? 6. Write down two things you are expected to find as an employee at a company evaluated for CMM level 5. You should not just list the key process areas, try to describe a CMM 5 working place. 7. Write down a use-case for a coffee machine that either accepts cash or a pre-paid card, and can serve several variants of coffee. 8. Write a flowchart for the machine in Question 7 and write down the Cyclomatic number of the flowchart. 9. Write down two examples of phased software life-cycle models. 10. Write down a definition of Software Reliability together with a way to approximately measure it. 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 quality attributes of at least 5 items. Make groups of three different quality attributes and describe a property of the quality attributes 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. You are the line manager of a project headed by: a. a project leader, who is very good on handling people but has only general technical skills. and b. a technical expert who knows much about the technical parts but has no ambitions on developing as a leader. Write down working descriptions (befattningsbeskrivningar) for both persons. Write down drawbacks and advantages compared to a situation where the project leader has both leadership and technical skills. 13. Write a comparative analysis between Software Engineering and a more concrete and mature engineering discipline, for instance, Building Construction. Write down implications from your analysis for a project developing a computer-based support for the other Engineering discipline, for example, a supply-chain management system for Building projects. 14. Thoroughly describe the idea behind a layered architecture. Create an example of at least three layers. What are the advantages of using a layered architecture in your example? 15. You have become next year’s examiner of the PUM-I course and intend to do a little experiment on testing. Two of your system groups will use a top-down integration testing and two system groups will use bottom-up integration testing. Write short instructions to both categories of system groups and list ideas for data that you can collect to compare the results of the system groups. Hopefully your experiment may give you a hint about what testing methods to recommend in the following years.