Linköpings Universitet IDA SaS PELAB Kristian Sandahl 2005-01-13 Written examination TDDB62 Software Engineering for I Date: Saturday 2005-01-15 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 solutions. This is not an empty threat, last time two students had to take a complementary exam due to bad writing. 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. When grading the solution we will split on problems, so if we find more than one problem on the paper grading will be delayed. Results: The graded exams are shown and handed out Thursday January 27th between 11:0012:30 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. 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. Which two statements are true? (One or more false statements given = 0 credits; only one statement given that is correct = 1 credit) a. Using polymorphism is a way of realizing Parnas’ information hiding principle. b. In UML you can use use-cases, activity diagrams and state diagrams to model a decision made by the system. c. Using the stereotype <<extend>> in UML we factor out common parts of several use cases. d. You can measure the Cyclomatic complexity of an UML use-case diagram. 2. Write down definitions of two examples of software metrics that you could have measured in your project. Give a short motivation of the benefits you would have had from measuring them. 3. Write down two drawbacks of deploying a prototyping process model. 4. A library system is to be constructed according to the following principles: a) The system must allow employees of the library to search the book database. It should also provide extended information about the books, e.g. where it was bought, the price and who has borrowed it. The extended information must only be available to library employees. b) The book database must be available on the Web where every one can perform simple search on title, author or publication year c) Library employees can register new users and issue library cards. It should also be possible to unregister users or change their contact information (address and phone number) d) Employees can add new books and remove old ones. e) A registered user, who has a library card, can view her/his loans on the Web. This function requires that the user has logged in. The user can also extend the loan period while logged in. f) An employee can register new loans, returned books and extend loans. Now, perform a noun-analysis of the text and write down at least two classes with at least two methods and/or attributes each. There should be at least one relation between the classes. (Note: You don’t have to account for your considerations during noun-analysis, just write down the resulting model) 5. Use the principles in problem 4 and perform a verb analysis and write down at least two use-cases with actors. Don’t forget that both a diagram and an informal text define a use-case. (Note: You don’t have to account for your considerations during verb-analysis, just write down the resulting model) 6. What information should go into a data dictionary? What are the benefits of using a data dictionary? 7. There are many models and methods for software development effort estimation. Write down the name of one you think would have been applicable in your course project. Write down a motivation for your choice and list the data you would need to use the model. 8. Suppose next year’s students will maintain your project. Write down two things you could do to increase the maintainability of your system. Motivate your choices. 9. Write down a definition of an embedded system. Give two examples of such systems. 10. Consider a system with the following component hierarchy A B C F D G E H I J K L M Write down a sequence and dependency diagram for a top-down integration testing for the system. Is this a good strategy for the system? Write down a motivation for your decision. 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 be reluctant to 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 making an optimal schedule for a university. Inputs to the system are all wishes from the course leaders as regards times and facilities. The system discovers which courses the students have selected and minimizes the number of scheduling collisions for all students under the constraint of course leaders’ wishes. The final schedule is readable from the web. Start designing this system by writing down: a. At least 5 use-cases b. A class diagram with at least 5 classes c. A state diagram with at least 3 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. When selecting test cases it is sometimes recommended to partition the input into equivalence classes. (In Mariam’s lecture she used the term Boundary value analysis when discussing this.) Describe what is meant by this approach to test case generation. Provide an example. What are the drawbacks and advantages of this? It this approach related to any open box testing strategies? Suppose we have n independent variables in the input space. How many more test cases is generated if we double the number of boundaries for each variable? 13. Out of some strange reason, the Swedish Railroad company SJ, have appointed the teachers of the course and yourself to create the next generation web-interface for travel booking. We have six months of full-time work to achieve this. The core competencies are: • Kristian, project leader, usability and reliability expert • Andreas, requirements engineering expert, Java programmer • Jens, design expert, programming environment expert, Java programmer • Calle, expert Java programmer, data-base expert, tester • Yuxiao, web-technology expert, business strategy responsible, Java programmer • You, see task a) below. We need your help in starting the project, so please write down: a) The competence you would need to become the sixth project member. Feel free to imagine competence you can obtain, but be careful to select competence that will complement the others to achieve a good project. Motivate your choice. b) A risk analysis of the project of at least 10 risks. c) Suggestions of how to alleviate the two top risks. 14. A stakeholder of a system can be any person or category of persons affected directly or indirectly by the system. For example, end-users are directly affected by the system. Your task is to create a table with software life cycle models as columns and stakeholders of the software developed with the life cycle models as rows. For each position in the table you write down the consequences of each life cycle model for each stakeholder. For example: Type of software: Scheduling system for a university. Endusers Waterfall Nothing to test before the end of the project. … … … … You shall also write down a short description of the type of software for which your solution is intended. I want a table with at least 10 correct and relevant positions. To be on the safe side, create a table of 4 life cycle models and 4 stakeholders. Thus you need 10 out of 16 correct. 15. For each type of cohesion, write an example of a component exhibiting that kind of cohesion. The examples shall describe a piece of concrete software, for instance, a word processor, mail system, ticket-booking system etc. It is not sufficient to redraw figure 5.17 in Pfleeger or to use abstract notation as is done in the figure. You need at least five sensible examples.