Linköpings Universitet IDA SaS PELAB Kristian Sandahl 2006-01-11 Written examination TDDB62 Software Engineering for I Date: Tuesday 2006-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 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. 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 Tuesday 31 January between 12:00-14:00 in conference room Donald Knuth, B-house, entrance 29, 1st floor, corridor B. Questions: Kristian Sandahl will visit you about an hour after the start of the exam and can be reached at 0706-68 19 57 or 013-12 42 53. 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. Write down one example of a functional requirement and one example of a nonfunctional requirement of a travel booking system. Write down a motivation for why you think they are functional and non-functional. 2. In the student projects we have given you the advice to inspect the requirements specification, even though we know that inspections are costly in person-hours. Write down two reasons for this advice. Motivate your answer. 3. In a travel booking system we need to have both free seats consistent with the customer’s wishes and having checked the validity of the customer’s credit card before we can process the booking. Specify this requirement by drawing a Petrinet with textual explanation. Specify the same requirement by drawing a UMLdiagram. 4. Write down two examples of how the end-users’ attitude to a travel booking system can be measured. 5. Last year many students said that the façade design pattern implemented a layered architectural style. Write down a description of the relation between the façade design pattern and the layered architectural style that justifies this statement. Is it possible to implement a layered architecture without using the façade design pattern? Write down your answer with motivation. 6. Write down a definition of Big-bang testing. Write down an example where the method is advantageous. Explain why. 7. Even professional software engineers can defend using a certain programming language on only emotional grounds. Select a programming language, for instance, Java and write down two relevant advantages and two disadvantages of the language. If you want to, you can exemplify with a certain type of software system. 8. Write down a description of Microsoft’s daily build model. Write down two advantages of using the model. 9. Write down two relevant reasons for reporting individual working-hours during a software development project. 10. A system generates statistics from variables from n different geographically distributed nodes according to the figure below. Suppose the Statistics module can generate real-time statistics for x MBit data per second, and that then transfer capacity for each connection from the nodes is 1 MBit per second. If we further assume that all nodes send y MBit of data per second all the time, write down values for x and y such that the statistics module can generate real-time statistics for n=100, but not for n=1000. Write down a suggestion of what you can do if the customer demands n=1000. Statistics data Node 1 data Node 2 data ………….. Node n 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. For each type of coupling, write an example of a component exhibiting that kind of coupling. 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 figures 5.13-5.15 in Pfleeger or to use abstract notation as is done in the figures. You need at least five sensible examples. 12. The Cyclomatic number is very often used for measuring structural properties of code, and is worthwhile to know well. Write down the following: a. A suggestion of a data structure to represent flowgraphs. b. An algorithm written in imperative pseudo-language that takes a flowgraph represented in your data structure as input and generates the cyclomatic number as output. You may assume that it is single, connected flowgraph. c. Draw the flowgraph of your algorithm and calculate its cyclomatic number. 13. Compare at least 5 life-cycle models or process models by writing down the following information for each of the models: a. A description of the model. b. At least one benefit of the model for developing an information system administration interface for well-educated computer users. c. At least one potential drawback of using the model in developing an information system administration interface for well-educated computer users. d. A suggestion of how the drawback in c. can be alleviated. 14. You have been assigned to introduce reliability prediction in your organization that is developing systems for automated telephone directory enquiries for three different markets, EU, USA and China. The idea is that the reliability prediction should be used to inform you when enough testing is done for each release. Write down a complete and detailed process for making these estimations. Be careful to account for which data that needs to be collected, how it might be collected and how data collection can be (partially) automated. Don’t forget to select the correct analysis methods and describe what needs to be done initially. Finally, also write down how the data and the process itself should be maintained over the years. 15. The standard for a large organization is to have a matrix organisation with lines providing educated and happy work-force to projects that are initiated by people with market responsibility. The lines are also responsible for the maintenance of the product. Instead, many people claim that it is better to organize smaller teams with an end-to-end responsibility for a function or feature. For instance, our guest lecturer suggested the following prerequisites for such teams: [start quote] • Form teams that really have an end-to-end scope (from “needed change” to “new system version”) • State clear boundaries in terms of criteria that must be fulfilled before an assignment can start and before a delivery can be made • Give teams the possibility to make a true commitment, that is, time for analysis, planning, and negotiation • Let the teams decide how to do the work, and do everything to provide them with the environment and support they ask for • Encourage and ease communication within and among teams (“team rooms“, “daily stand-up meetings”, “coordination meetings” etc.) [end quote] Write down as many advantages and drawbacks of this arrangement as you can imagine. Make sure you motivate each statement. If you want to, you can take examples from your student project.