exercises

advertisement
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?
Download