EXERCISES 26.1 Under what circumstance might a company charge a much higher price for a software system than that suggested by the cost estimate plus a normal profit margin? 26.2 Describe two metric5, that have been used to measure programmer productivity. Comment briefly on the advantages and disadvantages of each of these metrics. 640 Chapter 26 • Software cost estimation 26.3 In the development of large, embedded real·time systems, suggest five factors that are likely to have a significant effect on the productivity of the software development team. 26.4 Cost estimates are inherently risky irrespective of the estimation technique used. Suggest four ways in which the risk in a cost estimate can be reduced. 26.5 Why should several estimation techniques be used to produce a cost estimate for a large, complex software system? 26.6 A software manager is in charge of the development of a safety-critical software system that is designed to control a radiotherapy machine to treat patients suffering from cancer. This system is embedded in the machine and must run on a special-purpose processor with a fixed amount of memory (8 Mbytes). The machine communicates with a patient database system to obtain the details of the patient and, after treatment, automatically records the radiation dose delivered and other treatment details in the database. The COCOMO method is used to estimate the effort required to develop this system and an estimate of 26 person-months is computed. All cost driver multipliers were set to 1 when making this estimate. Explain why this estimate should be adjusted to take project, personnel, product and organisational factors into account. Suggest four factors that might have significant effects on the initial COCOMO estimate and propose possible values for these factors. Justify why you have included each factor. 26.7 Give three reasons why algorithmic cost estimates prepared in different organisations are not directly comparable 26.8 Explain how the algorithmic approach to cost estimation may be used by project managers for option analysis. Suggest a situation where managers may choose an approach that is not based on the lowest project cost. 26.9 Some very large software projects involve writing millions of lines of code. Suggest how useful the cost estimation models are likely to be for such systems. Why might the assumptions on which they are based be invalid for very large software systems? 26.10 Is it ethical for a company to quote a low price for a software contract knowing that the requirements are ambiguous and that they can charge a high price for subsequent changes requested by the customer? 26.11 Should measured productivity be used by managers during the staff appraisal process? What safeguards are necessary to ensure that quality is not affected by this? 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 can make a more effective contribution in a technic,al rather than a managerial role. Discuss whether you should accept the promotion. 1 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. EXERCISES 11.1 Explain why it may be necessary to design the system architecture before the specifications are written. 11.2 Explain why design conflicts might arise when designing an architecture where availability and security requirements are the most important functional requirements. 11.3 Construct a table showing the advantages and disadvantages of the structural models discussed in this chapter. 11.4 Giving reasons for your answer, suggest an appropriate structural model for the following systems: • An automated ticket-issuing system used by passengers at a railway station • Acomputer-controlled video conferencing system that allows video, audio and computer data to be visible to several participants at the same time • A robot floor-cleaner that is intended to clean relatively clear spaces such as corridors. The cleaner must be able to sense walls and other obstructions. 11.5 Design an architecture for the above systems based on your choice of model. Make reasonable assumptions about the system requirements. Chapter 11 "Exercises 265 Real-time systems usually use event-driven models of control. Under what circumstances would yOll recomml!nd the use of a call-return control model for a real-time system? Giving reasons for your answer, suggest an appropriate control model for the following systems: • A batch processing system that takes information about hours worked and pay rates and prints s.alary slip!; and bank credit transfer information • A set of software tools that are produced by different vendors, but which must work togethE!r • Atelevision controller that responds to signals from a remote control unit. Discuss their advantages and disadvantages as far as distributability is concerned of the data-flow model and the object model. Assume that both single machine and distributed versions of an application are required. You are given two integrated CASE toolsets and are asked to compare them. Explain how you could use a reference model for CASE (Brown, et al.. 1992) to make this comparison. Should there be a separate profession of 'software architect' whose role is to work independE!ntly with a customer to design a software system architecture? This system would then be implementE!d by some software company. What might be the difficulties of establishing such a profession?