Linköpings Universitet IDA SaS PELAB Kristian Sandahl 2004-08-23 Written examination TDDB62 Software Engineering for I Date: Tuesday 2004-08-24 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 Monday 2004-09-06 between 12:30-13.30 in Kristian Sandahl’s office, B-house, entrance 27 or 29, 1st floor, corridor B. Questions: Kristian Sandahl can be reached at 0706-68 19 57 or 013-28 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. Write down a use case of an inspection process with the author of the document as an actor. 2. Write down two coding rules for Java that make programs easier to understand. 3. Write down a definition and a suggestion for a testing method of each of the usability attributes: Relevance, Efficiency, Attitude, and Learnability. 4. Give two arguments against using formal methods when specifying software. 5. Describe the major characteristics of a layered software architecture? 6. Write a state transition diagram of at least three states for a book in a library system. 7. What are the benefits of using a sandwich testing strategy? 8. Write down four concrete pieces of advice of how to perform good interviews for requirements elicitation. 9. How can an earned-value chart be used for software development? Give one drawback of this chart. 10. Compare Java to another programming language of your own choice. Write down two differences of Java and the other programming language. At least one difference should be non-syntactical. 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. A cinema has several rooms showing different movies several times per day. There is an administrative system that keeps track of which movies are shown in each room at which hours and generates visitor statistics for different movies as input to the decision of whether to show the movie in the coming weeks. The administrative system also takes care of bookings of seats, printing of tickets and registration of payments with cash or card. There is also a web-interface where visitors access the administrative system to check if there are any free seats. The visitors can further access the administrative system to place an order for tickets. The administrative system issues an order number and gives the visitor two choices, to come to the cinema and pay the tickets an hour before the show, or to pre-pay the order with credit card details through a payment service which is outside the administrative system. Your task is now to create models of the administrative system with at least 2 classes, 2 methods, 2 use-cases, 2 state-charts and 2 interactivity diagrams. Please remember that a use-case is both a diagram and a piece of text describing how the actor interacts with the system. You will get 1(one) credit per correct and relevant use-case, class, method, state-chart and interactivity diagrams, maximally 2 in each category. It is a good idea to provide an answer for about 15 credits since there is always a risk that you make minor mistakes with some of the model elements 12. Create your own catalogue of at least five architectural styles. For each style, write down a description and a list of benefits and drawbacks for development organisations using the styles. 13. You have agreed to give a talk on software reliability for a group of junior programmers. Create 4-5 OH slides together with supporting notes for yourself. You have been asked to cover most of the following issues: • Definition of reliability • Metrics for reliability • Input domain equivalence classes • Reliability growth • Fault classification Make sure that you put these issues in a coherent context. Simply defining the issues is not enough. 14. Describe the Parnas' information hiding principle. Construct a small system example, which show designs with and without applying the principles. Which are the benefits from the principle in terms of your example? 15. You have been called to a company developing information systems for banking. A typical project spans about 12 months and keeps about 40 people busy. The standard development method is based on the V-model. Your task is to introduce incremental methods. You need to ensure that the company can deliver on time even during the phase of method change. Write a plan for your work. Don’t forget things such as time plan, cost, education and expected benefits. The more of different aspects of chaning development method you can think of, the better.