ICT5 - 7

Home ] Up ] ICT1 - 1 ] ICT1 - 2 ] ICT1 - 3 ] ICT1 - 4 ] ICT1 - 5 ] ICT1 - 6 ] ICT1 - 7 ] ICT1 - 8 ] ICT1 - 9 ] ICT1-10 ] ICT2 - 1 ] ICT2 - 2 ] ICT2 - 3 ] ICT2 - 4 ] ICT2 - 5 ] ICT2 - 6 ] ICT2 - 7 ] ICT2 - 8 ] ICT4 - 1 ] ICT4 - 2 ] ICT4 - 3 ] ICT4 - 4 ] ICT4 - 5 ] ICT4 - 6 ] ICT4 - 7 ] ICT4 - 8 ] ICT4 - 9 ] ICT4 - 10 ] ICT5 - 1 ] ICT5 - 2 ] ICT5 - 3 ] ICT5 - 4 ] ICT5 - 5 ] ICT5 - 6 ] [ ICT5 - 7 ] Previous Homeworks ] Network Topology ]


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 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:

The disadvantages are:

 

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:

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