Linköpings Universitet IDA SaS PELAB Kristian Sandahl 2002-08-29 Written examination TDDB62 Software Engineering for I Date: Saturday 2002-08-31 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 2002-09-13 between 8:15-10:00 in Kristian Sandahl’s office, entrance 27 or 29, 1st floor, corridor B. Questions: Kristian Sandahl can be reached at 28 19 57, 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 28-33 20-27 <20 Good luck! Grade Max 5 4 3 No pass 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. Give two software qualities that can be in conflict with each other. Explain why it is hard to get both simultaneously. 2. In Peters & Pedrycz the following sentence appears as a definition of both coupling and cohesion: The degree to which the methods within a class are related to one another. Both concepts cannot have the same definition, which is right and which is wrong? 3. Give two reasons for using CMM. 4. Give the name of a formal method for requirements specification. Give an example of a system where this method is a good choice for specification. 5. What is a traceable requirements specification? 6. Imagine a scheduling system for a university serving students, teachers and administrators. Describe two design objects of this system with at least one method each. These objects would be the part of a design specification. 7. What is the difference between performance test and stress test? 8. Why is a high cyclomatic complexity of a software module a bad thing? 9. Explain the basic steps of a Delphi cost estimation process. 10. How can fault injection or seeded faults help you estimating the reliability of your software? Answer no more than two of the questions 11-15. Each question gives a maximum of 10 credits. The answers should be thorough and complete. 11. Thoroughly describe the idea behind a pipeline architecture. Create an example of at least three filters. What are the advantages of using a pipeline architecture in your example? 12. A development company developing software for home communication with about 30 employees is running projects according to the waterfall process model. Earlier years this was OK for their 4-month projects, but now projects grown to a year and they want to take advantages of development methods using the incremental life-cycle model. Your job is to create an intranet home page explaining what incremental methods are, how they are used, what can be improved, topics for internal seminars, etc. Make a sketch of the layout of the pages, and provide the texts that would be the content of your web. 13. Thoroughly describe a software maintenance model. What phases are needed? What types of maintenance is the model aimed for? You can either select an existing model from a book or invent your own. 14. A friend of yours learned to program in C++ from a book and a two-week course at a private institute. She has made some low-level programming on direct supervision of a senior programmer, who re-wrote some of her stuff and gave her very little feedback. Due to factors outside her control she is now alone responsible for a project that will take her about one year to complete. She is worried about the reliability and maintainability of the software and asks you for your advice. Give her your 5 topmost hints about what she should do to improve her development methods. Describe things in a concrete style (just not only refer to a book, website or person). What benefits can be expected from your ideas? 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.