Linköpings Universitet IDA SaS PELAB Kristian Sandahl 2002-10-22 Written examination TDDB62 Software Engineering for I Date: Saturday 2002-10-26 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-11-08 between 11:00-12:30 in Donald Knuth, SaS conference room, entrance 27 or 29, 1st floor, corridor B. Questions: Kristian Sandahl can be reached at 013-711 47, 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. Which two statements are true? (One or more false statements given = 0 credits) a. CORBA is software you can use for communication between objects. b. CORBA is a standard for a middleware aiding the design of distributed object-oriented systems. c. CORBA comes from Object Management Group (OMG). d. CORBA is a product of Rational. 2. Which two statements are true? (One or more false statements given = 0 credits) a. High coupling and low cohesion are indications of high maintainability. b. If low coupling is achieved, then cohesion has no effect on maintainability. c. Highly cohesive classes can have a high cyclomatic complexity. d. Coupling between two classes means that a fault in one class can cause a failure when the other class is executed. 3. Which two statements are true? (One or more false statements given = 0 credits) a. For a very immature company there is a large investment to reach CMM level 1. b. Organisations on CMM-level “Defined” have Requirement management. c. People CMM evaluates and develops the skills of individual employees. d. CMM is a product from the Software Engineering Institute (SEI). 4. What are the benefits of using a sandwich testing strategy? 5. What can be improved with fault injection (or fault seeding)? 6. Construct a use-case text and sequence diagram for a part of theatre ticket booking system. 7. Describe a process for software cost estimation. 8. Write a state transition diagram of at least three states for a book in a library system. 9. Describe the circumstances where time to deliver is more important than cost and/or quality. 10. What is the cyclomatic complexity of the following flowchart? 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. 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? 12. Make a list of software life cycle and process models of at least 5 items. Make groups of three different models and describe a property of the model 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”. 13. A friend of yours have heard about “Requirements engineering” and asks you, since you are a good student, what that is and what you can earn by using it in your business. Your friend is self-made in information systems development and knows a lot about his customers and programming, but now he had hired some people and is eager to learn about methods and processes to get more structured work. What is your answer to your friend? 14. What are the methodological and technical differences between the development of a scheduling system for a university and a control system for a large, costly manufacturing process, for example, pulp (pappersmassa) production? What software development processes are applicable? Which architectures can be chosen? Which programming languages can be used? How should the systems be tested? Which parts will cost most? How can maintenance be organised? 15. What is the COCOMO, or COCOMOII models? Who can use them? What type of data do you need to apply them? How good are they? Construct an exam question where most of your knowledge of COCOMO/COCOMOII is used. Provide the answer so I can compute it with an ordinary calculator for technical users.