Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach Software Engineering for Students A Programming Approach

web.firat.edu.tr
from web.firat.edu.tr More from this publisher
21.08.2013 Views

3.2 ● Technical feasibility 3.3 Cost-benefit analysis 31 Before beginning a project, there is a crucial decision that must be made: Is the proposal technically feasible? That is, will the technology actually work? We know, for example, that a system to predict lottery results cannot work. But a system to recognize voice commands is borderline. A system to download and play DVD-quality movies into people’s homes is also borderline. 3.3 ● Cost-benefit analysis In engineering, there has long been a tradition of assessing available technology, for example, the use of reinforced concrete in building. Similarly in computer-based information systems, a number of techniques have been used in advance of building a system in order to determine whether the system will be worthwhile. Money provides the ready-made metric for measuring value. This kind of investigation is called investment appraisal or a cost-benefit analysis. The organization expects a return on investment. In this approach two quantities are calculated: 1. the cost of providing the system 2. the money saved or created by using the system – the benefit. If the benefit is greater than the cost, the system is worthwhile; otherwise it is not. If there is some other way of accomplishing the same task, which may be manually, then it is necessary to compare the two costs. Whichever technique gives the smaller cost is the one to select, provided that the benefit is greater than the cost. Costs and benefits are usually estimated over a five year period. This means that the initial start-up costs are spread over the expected useful life of the system. Five years is the typical lifetime of a computer-based system. Beyond this time, changes in technology as well as changes in requirements make predictions uncertain. Many evaluation criteria are common to all computer systems – and indeed to all products designed for some useful purpose. Thus motor cars, buildings and televisions need to be reliable, robust, easy to maintain, easy to upgrade. The obvious, central consideration is the construction cost. With each of these criteria we can associate a cost, though for some it is less easy: ■ cost to buy equipment, principally the hardware ■ cost to develop the software ■ cost of training ■ cost of lost work during switchover

32 Chapter 3 ■ The feasibility study ■ cost to maintain the system ■ cost to repair the equipment in the event of failure ■ cost of lost work in the event of failure ■ cost to upgrade, in the event of changed requirements. The upgrade cost is part of the cost of some future system and not strictly part of the current costing, but is worth bearing in mind at the evaluation stage. While all of these costs should be estimated in advance of developing a system, it is in practice very difficult to estimate the cost of construction and of maintenance. 3.4 ● Other criteria It is easy to be drawn into judging everything on the basis of costs, but there are other approaches. Many people develop software purely for fun. Open source programmers are a prime example. Their motivations include providing useful tools, enjoying the act of programming and collaborating with others. Large military projects are sometimes funded because they are considered necessary (militarily or politically), whatever the cost. Some people, perhaps seduced by technology, take the view that a computer system is obviously better than a manual system. Some systems are, arguably, socially useful and, perhaps, outside the scope of a costingbased approach. How can we meaningfully assess the value of a system that allows a patient to book a medical appointment, or a system that provides information on bus arrival times at bus stops? SELF-TEST QUESTION 3.1 Suggest another system for which cost-benefit analysis is probably not appropriate. 3.5 ● Case study We will examine carrying out a feasibility study of the software for an ATM, outlined in Appendix A. An ATM is part hardware, part software, so we could either carry out a feasibility study for the complete system or limit ourselves to the software component. However, if we are assessing the viability on the basis of cost, we must look at the complete system. We first look at costs of construction. We expect that the ATM is not just a one-off but that a number of them will be built and deployed. Let us assume that 200 machines will be needed.

32 Chapter 3 ■ The feasibility study<br />

■ cost to maintain the system<br />

■ cost to repair the equipment in the event of failure<br />

■ cost of lost work in the event of failure<br />

■ cost to upgrade, in the event of changed requirements.<br />

The upgrade cost is part of the cost of some future system and not strictly part of<br />

the current costing, but is worth bearing in mind at the evaluation stage.<br />

While all of these costs should be estimated in advance of developing a system, it is<br />

in practice very difficult to estimate the cost of construction and of maintenance.<br />

3.4 ● Other criteria<br />

It is easy to be drawn into judging everything on the basis of costs, but there are other<br />

approaches.<br />

Many people develop software purely <strong>for</strong> fun. Open source programmers are a prime<br />

example. Their motivations include providing useful tools, enjoying the act of programming<br />

and collaborating with others.<br />

Large military projects are sometimes funded because they are considered necessary<br />

(militarily or politically), whatever the cost.<br />

Some people, perhaps seduced by technology, take the view that a computer system<br />

is obviously better than a manual system.<br />

Some systems are, arguably, socially useful and, perhaps, outside the scope of a costingbased<br />

approach. How can we meaningfully assess the value of a system that allows a patient<br />

to book a medical appointment, or a system that provides in<strong>for</strong>mation on bus arrival times<br />

at bus stops?<br />

SELF-TEST QUESTION<br />

3.1 Suggest another system <strong>for</strong> which cost-benefit analysis is probably not<br />

appropriate.<br />

3.5 ● Case study<br />

We will examine carrying out a feasibility study of the software <strong>for</strong> an ATM, outlined<br />

in Appendix A. An ATM is part hardware, part software, so we could either carry out<br />

a feasibility study <strong>for</strong> the complete system or limit ourselves to the software component.<br />

However, if we are assessing the viability on the basis of cost, we must look at the complete<br />

system.<br />

We first look at costs of construction. We expect that the ATM is not just a one-off<br />

but that a number of them will be built and deployed. Let us assume that 200 machines<br />

will be needed.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!