Linköpings Universitet IDA SaS PELAB Kristian Sandahl 2003-01-14 Written examination TDDB62 Software Engineering for I Date: Saturday 2004-01-17 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 Friday 2004-01-30 between 12:00-14: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 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; only one statement given that is correct = 1 credit) According to the terminology used in the course (based on IEEE-standard): a. If I write “>” instead of “<” I have committed an error b. If I write “>” instead of “<” I have caused a failure c. If I write “>” instead of “<” my program contains a fault d. If I write “>” instead of “<” in a text-string then it can never cause a failure 2. Which two statements are true? (One or more false statements given = 0 credits; only one statement given that is correct = 1 credit) a. If you have a written description of the system it is a good idea to look for candidate objects amongst the nouns in the text. b. If you have a written description of the system it is a good idea to look for candidate use-cases amongst the adjectives in the text. c. If you use polymorphism in a Java system you can reduce the number of if-statements in the code. d. It is practically impossible to reuse use-cases between different products. 3. Write down a use case of an inspection process with the author of the document as an actor. 4. Write down two coding rules for Java that make programs easier to understand. 5. Write down 2 benefits and 2 drawbacks of using the waterfall lifecycle model. 6. Write down a formal proof of: The Cyclomatic Number is always a positive integer. 7. Write down two performance tests that are meaningful for a word processor. Explain why you think these are the most important. 8. Write down a definition and a suggestion for a testing method of each of the usability attributes: Relevance, Efficiency, Attitude, and Learnability. 9. Write down an explanation of the concept of a token in Petri-Nets. Use an example. 10. Write down an example of a diagram tracking the progress of a project. Write down one advantage and one drawback of that diagram. 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. Assess the CMM level of your course project organisation. Write down a detailed and thorough motivation for your choice. You should also give concrete advice of things to do to improve in the most suitable key process areas. 12. 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; they can be classes, methods, use-cases, state-charts and 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, state-chart and interactivity diagrams, maximally 10. 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 13. The meta-model for requirements engineering consists of four phases: 1) elicitation, 2) specification, 3) modelling, and 4) formalization. For each of the four phases: a. Write down a definition in terms of its goal or purpose. b. Write down an example of a method, tool or technique used in the phase along with at least one advantage and one disadvantage. 14. 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. 15. You have become the person responsible for your company’s software development experience web. Write down a hierarchy of web pages with a brief description of their intended content. You should also write down an example of a more complete page, you can use the experience you got in your course project. Write down processes for how the input and maintenance of the web can be organised. End with some arguments selling your solution.