Linköpings Universitet IDA SaS PELAB Kristian Sandahl 2005-10-17 Written examination TDDB62 Software Engineering for I Date: Saturday 2005-10-22 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. (Tentamensvakter, det finns studenter som antecknar otroligt mycket på alla lediga ytor i boken. Det är OK så länge man håller sig till de sidor som finns i boken och inte klistrar in fler. Vi måste dra gränsen på ett sätt som är lätt att verifiera) 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. 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 Friday November 4th between 11:0013:00 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. 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. In the student projects we have given you the advice to enumerate all requirements. Write down two reasons for this advice. Motivate your answer. 2. Below you find a record from failure occurrences of a system. We can assume that once a failure is found, it is corrected. Failure number 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3. 4. 5. 6. 7. 8. 9. Failure time [hours execution time] 300 570 960 1290 1740 2100 2640 3090 3750 4500 5070 5970 6930 7680 8880 Calculate an approximation of the failure intensity per 1000-hour interval from 0 and 9000 hours. Draw a table. According to your experience, write down a rough estimate of the failure intensity of a light bulb. Is the system better or worse than the light bulb according to your estimate? Write down a short answer. Suppose your customers are sending you ideas to new requirements continuously. Select a life-cycle model that is appropriate for this situation. Write down the lifecycle model together with a motivation. What is the difference between an architectural style and a design pattern? Write down an answer with a short motivation. Write down a definition of Sandwich testing. Write down an example where the method is advantageous. Explain why. Write down a definition of multiple inheritance. Write down a problem that might arise if you allow multiple inheritance when designing a piece of software. In his guest lecture Mr Pettersson talked about the “anatomy of changes”, that is a graph showing dependencies of changes suggested to software. Write down an explanation of how this graph can be used to facilitate development of software in small steps. Draw a loop-free flow graph with cylomatic complexity 6. Write down at least 4 different use-cases for at least 2 different actors for a railroad ticket system. 10. A mature system has been used for many years without any failure reported. Can this information be used to draw any conclusion about the expected number of future failures? Write down your answer with a motivation? 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. Nowadays most libraries use information systems to keep track of their books and loans. The requirements of such systems often follow these 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. 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. There are many different principles of “good design” and you have gotten the task to make a summary for the intranet of your company. So, write down a list of at least 5 “good design” principles. For each of the principles write about: a. A definition b. An illustrating example (may be simple, if possible) c. Advantages that can be expected or problems that might be avoided d. Any potential drawbacks or compromises of the principle. 13. There are also many techniques for validating software. Write down a list of at least 5 techniques, whereof maximally 3 are variants of executing testing. For each of the techniques write about: a. A definition b. How the technique contributes to validation c. In your student project, how many hours would you think are necessary to use the technique in validating your system? Motivate your answer. d. What types of defects and faults can the technique remove? e. Given the cost you estimated in sub-task c., would it be worthwhile implementing this technique in your project? Motivate your answer. 14. Some knowledge in mathematics is an important prerequisite to studies in software engineering. Any text-book contains references to mathematical models, both continuous and discrete mathematics. If you were designing a mathematics course for software engineers at their first year at the university, what parts of mathematics would you like to include? Write down some sub areas and make examples for how software engineers and/or software engineering researchers can apply the mathematics. This should result in at least five different examples. Also make a rough plan by distributing 1000 study-hours on the different sub-areas. Write the time plan in a small table. Finish by writing down a motivation for your distribution of hours. 15. Write down a list of at least 10 different requirements on quality attributes for a railroad ticket booking system. For each of the requirements explain in detail how you would measure the quality attributes and verify the requirements. A person participating in the development or testing of the system should be able to verify the requirement according to your explanation of how to measure the quality attribute. You might thus assume that the person know much about the system but not so much about measuring quality.