Software Acquisition and Testing
Make or Buy?
At the start of the systems life cycle, decisions have to be made about how to acquire the software that is needed. The options are:
Software can be written by the end user
A specialist department could design, write, test and evaluate the software
External consultants could be called in to write and test the software
An off-the-shelf package could be bought
Software could be leased, with an annual fee payable for use.
Software written by the end-user
Computer-literate end-users can produce their own applications, using software such as Excel or Access. Their applications will be designed to do a specific job.
The advantages of this approach are that the end-user will know his requirements precisely and he should get exactly what he wants without waiting.
Disadvantages are that the end-user could leave and then wouldn't be available to provide technical support. His application may be incompatible with other software used by the organisation.
This approach is only suitable for minor projects with a limited life-span.
Writing software in-house
Advantages are that information can be kept within the organisation.
Disadvantages are that this approach requires people with certain skills who might need to be recruited. An external consultancy may have more experience of specialist skills.
External Consultants
The job could be put out to tender. Cost is a consideration but a software house that has a proven track record of successful projects might be worth the extra money.
Buying a Package
The advantages of buying an off-the-shelf package are:
Cheaper
Immediately available
Documentation is usually available
Training courses may be available
Technical support is usually available
The organisation can look at reviews of the product and/or talk to other users
Upgrades are usually available on a regular basis
The disadvantages are:
The package may not do exactly the job that is required.
It may be incompatible with hardware or software that is already being used.
Leasing Software
Instead of buying software, it can be leased for an annual fee. The cost is less in the short-term but in the long run this is a more expensive option.
Modifying Existing Software
Software can be bought and then modified. This is a dangerous option because it means that the manufacturer will no longer provide support. The modifications can cause errors in other parts of the software, which would then require more modifications.
Software Testing
When a new system is developed, the testing process might consist of five stages:
1. Unit Testing - where each individual component is tested.
2. Module Testing - a module is a collection of dependant components or sub-routines.
3. Subsystem Testing - collections of modules are integrated into modules.
4. System Testing - Subsystems are integrated to make up the entire system. This stage of testing will examine whether or not the system meets its requirements specification.
5. Acceptance Testing - This is the final stage in the testing process before the system is accepted for operational use.
These stages will have to be repeated when modifications are made.
Alpha Testing
Alpha testing is carried out by the software house. When the developer is satisfied that the software meets all their requirements, beta testing can begin. Alpha testing is sometimes called "acceptance testing".
Beta Testing
Beta testing is done when software is being prepared for release. The beta versions of the software can be sent to selected users who will use the software and report bugs. Several beta versions are often released to iron out problems.
Software Maintenance
After an official release, the maintenance process starts. Maintenance may be required because:
Previously undetected errors may be discovered.
The original requirements may change to meet the changing needs of the user.
Hardware developments may give scope for advances in software.
New legislation may be introduced, which impacts on software (e.g. a new tax will affect accounting software)
Maintenance can be perfective, adaptive or corrective (see the information systems life-cycle).
Maintenance Releases
The maintenance process is triggered by requests from users who may report bugs or request new features. The cost and impact of each change will be assessed before a decision to go ahead is authorised. Minor changes in software packages are usually released with version numbers such as 3.1, 2.3, 3.3 etc. Major releases have new version numbers e.g. 4.0, 5.0.
Maintenance is the greatest cost incurred in the overall systems life-cycle. Therefore, it is cost-effective to put time and effort into developing systems that work in the first place and that are easy to maintain.
see Lehman and Belady's 5 laws of software maintenance p.339