Linköpings Universitet IDA SaS PELAB Kristian Sandahl 2006-08-18 Written examination TDDB62 Software Engineering Date: Tuesday 2006-08-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. Explicitly forbidden aids: Electronic equipment, separate sheets of papers even if they are glued in the book. Writing: Please write or print clearly. We cannot 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. Results: The graded exams are shown and handed out Wednesday 6 September between 11:3012:30 in conference room SaS Grupprum 2, B-house, entrance 29, 1st floor, corridor B. Close to SU 14. Questions: The examiner will visit you about an hour after the start of the exam. He can be reached at 013-28 19 57 or 0706-68 19 57during the examination. 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. Suppose you have written a requirements specification, write down at least two methods with which the requirements can be validated. Also write down a description of how the methods work. 2. Write down a definition of Software Configuration Management. Illustrate the benefit of Software Configuration Management with a small example. Please do not mix this up with document change management. 3. Write down a description of “fault seeding” (also called “error seeding”). Also write down what can be gained by using “fault seeding”. 4. Write down two advantages of developing or maintaining a system built with help of software implementing the CORBA-standard. Motivate your answer. 5. Write down two drawbacks of using a layered architecture. Motivate your answer. 6. Write down two examples of contents of a program file that are NOT included in the metric “Delivered Non-Commented Lines of Code”. 7. Below we give an example template of the notation of a state machine with orthogonal states. Draw your own example of a state-machine with at least two orthogonal regions. Write down a short description of the intended system. state machine name name state state orthogonal region orthogonal state action action state action state action state 8. Write down definitions of the constituents of usability: a. Relevance b. Efficiency c. Attitude d. Learnability For each of the constituents, write down the definition of a measurement that can be used in evaluating a prototype of a system. 9. You have created an early prototype of a system calculating the value for an effector in an electro-mechanical product. During the evaluation you notice that you calculate values that are within the allowed range of values, but you get different values when running the system with exactly the same input. Write down the name and definition of the quality factor your system is lacking. 10. Write down two examples of how a software developing software can earn money by using design patterns. Indicate and motivate if you think the pay-off period is short or long. 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 not give more than 7 credits to solutions that mostly cite sections of the book. The solutions should be thorough and complete. 11. Imagine a system for management of large engines with the following features: - Real-time control and monitoring of more than 100 variables - Configuration support for different operator views - Routines for automatic start-up and turn-off - Alarm handling and emergency prioritising - Routines for moving to safest possible state - Statistics of fuel, oil, steam and water consumption and production - Automatic maintenance schedule warning system - Management of maintenance documentation and reports - Configuration support for optimizing run conditions - Voice, picture and data communication amongst personnel through hand-held devices. Start designing a part of this system by writing down the following UML diagrams. Write down which features you intend to cover. a. At least 5 use-cases b. A class diagram with at least 5 classes c. A state diagram with at least 5 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. Write down a list of at least 10 different things that you as a developer can do to make software more maintainable. Rank the three most important things and motivate your choice. 13. Write down descriptions of five life-cycle or process models, OTHER THAN the waterfall model. For each of the models write down: a. A problem with the waterfall model that is solved by the described model. b. An example of a document from the waterfall model that becomes less important, or can even be eliminated if you change to the described model c. An advantage and a disadvantage for the students if we would change to the described model in your student project courses. 14. Write down a manual for writing a project plan. Divide the document in different major sections. For each section write down a description of information that should be considered in the writing. Also describe how the project can benefit from documenting this information. 15. Write down five ethical issues that you might encounter as a professional software engineer. You can describe a detailed example if you like to. We will give credits for unique issues that are relevant for software engineering. For each of the issues, write down a motivation of your own standpoint. We will give credit if the description has relevance for the ethical issue and if the motivation supports the standpoint. If you have never thought about ethics in professional engineering before, you should consider solving another problem.