Linköpings Universitet IDA SaS PELAB Kristian Sandahl 2001-10-17 Written examination TDDB62 Software Engineering for I Date: Friday 2001-10-19 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 2001-11-02 at 12:00-15:00 in conference room Elogen, E-huset, 1tr, F.449. 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 1(one) credit. 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 5(five) credits. Grading: Credits 20 17-20 14-16,5 10-13,5 <10 Good luck! Grade Max 5 4 3 No pass Questions: Answer as many as possible of questions 1-10. Each questions gives maximally 1 credit. The answers should be focused and short. 1. Write down the name of the levels of CMM. Give a one-sentence characteristic of each level. The characteristics do not have to completely define the levels. 2. Explain why high cohesion and low coupling is good. Please note that the 2nd definition of Coupling in the Glossary in Peters and Pedrycz is wrong. 3. Give two arguments against using formal methods when specifying software. 4. Describe the major characteristics of a layered software architecture? 5. Construct a diagram, for instance a sequence diagram or collaboration diagram, realising the dynamics of the following use-case description: The teacher enters his courses with number of hours and preferred scheduling constraints into a database. The administrator fetches all teachers’ data and feeds it to the optimisation algorithm. The result from the optimisation algorithm is sent back to the administrator who makes some manual corrections and stores the approved schedule in the database. The students navigate in the database aided by an applet to find out their schedule for their courses. 6. List three arguments for buying components instead of developing the functions your customers’ need. 7. What is a design pattern? 8. Describe the work of writing a requirements specification in terms of a process consisting of: Entry criteria of the process Task to be performed Verification of the task Exit criteria of the process Measures taken for future process improvements 9. You are developing control software for a car. Totally you plan to develop 100.000 lines of code whereof 20.000 are for the internal tests. Normally you write 20% comments in the code. Derive an expression calculating the development schedule in the basic COCOMO model as a function of the facts mentioned above. 10. What is the cyclomatic complexity of the flowchart below? Answer no more than two of the questions 11-15. Each question gives maximally 5 credits. The answers should be thorough and complete. 11. Create your own catalogue of at least four software life-cycle models. For each model, give a brief description and a list of benefits and drawbacks for development organisations using the models. 12. 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. 13. 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. 14. For each of the applications in the list below, select a suitable software architecture and motivate your choice. The applications are: A data conversion application which takes a file of students on the format <firstname1>,<familyname1>,<loginid1>@student.liu.se, <firstname2>,<familyname2>,<loginid2>@student.liu.se, etc. for example Kalle,Anka,kalan313@student.liu.se and generates a file on the format <loginid1>,<familiyname1>,<firstname1>,<loginid1>@student.liu.se,<password>, <loginid2>,<familiyname2>,<firstname2>,<loginid2>@student.liu.se,<password>, etc. for example kalan313,Anka,Kalle,kalan313@student.liu.se,sune A cruise control system for a car. If you invoke the system while driving faster than 50 km/h the car will automatically keep the current speed. If you touch the brake or clutch pedal you will turn the control system off. If you resume the system it will maintain the previously maintained speed. A platform for collaborative software design. The programmers work at different offices in Sweden, but need to cooperate an hour a day when trying to integrate and test their individual components on a common server. 15. Plan a lab-exercise in maintenance. Invent a software application of your own choice and describe the base-line system the students can download. Give them tasks that cover all types of maintenance and a majority of the process steps. Plan for work in 2 passes of 4 hours each.