Chapter 5. Project Management EXERCISES -------- 5.1 Explain why the intangibility of software systems poses special problems for software project management. 5.2 Explain why the best programmers do not always make the best software managers. You may find it helpful to base your answer on the list of management activities in Section 5.1. 5.3 Explain why the process of project planning is iterative and why a plan must be continually reviewed during a software project. 5.4 Briefly explain the purpose of each of the sections in a software project plan. 5.5 What is the critical distinction between a milestone and a deliverable? 5.6 Figure 5.15 sets out a number of activities, durations and dependencies. Draw an activity chart and a bar chart showing the project schedule. 5.7 Figure 5.5 gives task durations for software project activities. Assume that a serious, unanticipated setback occurs and instead of taking 10 days, task T5 takes 40 days. Revise the activity chart accordingly, highlighting the new critical path. Draw up new bar charts showing how the project might be reorganized. 5.8 Using reported instances of project problems in the literature, list management difficulties that occurred in these failed programming projects. (I suggest that you start with Brooks's book, as suggested in Further Reading.) Figure 5.15 Task durations and dependencies Chapter 5 Exercises 113 Task Duration (days) , Dependencies T1 10 T2 15 TI 13 10 TI, T2 T4 20 T5 10 T6 IS 13, T4 17 20 13 T8 35 17 T9 15 T6 TlO 5 T5, T9 TIl 10 T9 TI2 20 TlO Tl3 35 13, T4 Tl4 10 T8, 19 T15 20 Tl2, Tl4 Tl6 10 TIS 5.9 In addition to the risks shown in Figure 5.11, identify six other possible risks that could arise in software projects. 5.10 Fixed-price contracts, where the contractor bids a filxed price to complete a system development, may be used to move project risk from client to contractor. If anything goes wrong, the contractor has to pay. Suggest how the use of such contracts may increase the likelihood that product risks will arise. 5.11 You are asked by your manager to deliver software to a schedule that you know can only be met by asking your project team to work unpaid overtime. All team members have young children. Discuss whether you should accept this dl~mand from your manager or whether you should persuade your team to give their time to thE! organisation r,ather than to their families. What factors might be significant in your decision? 5.12 As a programmer, you are offered a promotion to p roject management but you feel that you 1 can make a more effective contribution in a technic,al rather than a managerial role. Discuss whether you should accept the promotion. Chapter 12 Distributed Architectures EXERCISE ----- 12.1 Explain why distributed systems are inherently more scalable than centralised systems. What are the likely limits on the scalability of the system? 12.2 What is the fundamental difference between a fat-client and a thin-client approach to client-server systems development? Explain why the use of Java as an implementation language blurs the distinction between these approaches. Chapter 12 • Exercises 291 Your customer wants to develop a system for stock information where dealers can access information about companies and can evaluate various investment scenarios using a simulation system. Each dealer uses this simulation in a different way, according to his or her experience and tile type of stocks in question. Suggest a client-server architecture for this system that shows where functionality is located. Justify the client-server system model that you have chosen By making reference to th,e application model shown in Figure 12.4. discuss problems that might arise when converting a 1980s mainframe legacy system for insurance policy processing to a client-server architecture. What are the basic facilities that must be provided by an object request broker? Explain why the use of distributed objects with an object request broker simplifies the implementation of scalable client-server systems. Illustrate your answer with an example. How is the CORBA IDL USE!d to support communications between objects that have been implemented in different programming languages? Explain why this approach may cause performance problems if there are radical differences between the languages used for object implementation. Using (l distributed object approach, propose an architecture for a national theatre booking system where users can check seat availability and book seats at a group of theatres. The system should support ticket returns so that people may return their tickets for last-minute resale to other customers. Give two advantages and two disadvantages of decentralised and semi-centralised peer-topeer architecturE's. What are the advantages of dynamic binding in a service-oriented system? For the in-car information system, explain why it is best that the in-car software communicates with an aggregation service rather than directly with the information services. You should conSider iSSUE!S such as communication reliability in formulating your answer. The development of service-oriented computing has been based on the early specification and adoption of standards. Discuss the general role of standardisation in supporting and restricting competition and innovation in the software market. Chapter 23. Software Testing EXERCISES 23.1 Explain why testin1: can only detect the presence of errors, not their absence. 23.2 Compare top-down and bottom-up integration and testing by discussing their advantages and disadvantages for architectural testing, demonstrating a version of the system to users and for the practical implementation and observation of tests. Explain why most large system integration, in practice, has to use a mixture of top-down and bottom-up approaches. 23.3 What is regression testing? Explain how the use of automated tests and a testing framework such as JUnit simplifies regression testing. 23.4 Write a scenario that could be used as the basis for deriving tests for the weather station system that was used as an example in Chapter 14. 23.5 Using the sequence diagram in Figure 8.14 as a scenario, propose tests for the issue of electronic items in the L1BSYS system. 23.6 What are the problems in developing performance tests for a distributed database system such as the L1BSYS system? 23.7 Explain why interface testing is necessary even when individual components have been extensively validated through component testing and program inspections. 23.8 Using the approach discussed here for object testing, design test cases to test the states of the microwave oven whose state model is defined in Figure 8.5. 23.9 You have been asked to te'st a method called catWhiteSpace in a Paragraph object that, within the paragraph, replaces se!quences of blank characters with a single blank character. Identify testing partitions for this E!xample and derive a set of tests for the catWhiteSpace method. 23.10 Give three situations wher,e the testing of all independent paths through a program may not detect program errors.