Topic 7 Software Development and Reliability

In the exam you are expected to know about:

Software development

  • Understand that there are different ways of providing software solutions to specialist applications, e.g. user written, internal development team/department, external software house to specification.

  • Describe the possible criteria for selection of software solutions to specialist applications and the place within the corporate strategy.

Software Reliability

  • Describe methods of ensuring that software is reliable: a testing, b testing, agreements between software houses and purchaser for testing.

  • Understand the reasons why fully-tested software may fail to operate successfully when implemented as part of an information technology system.

  • Understand the need for maintenance releases.

 

 

Software development

When a feasibility study is being carried out to decide whether an ICT system is warranted, software comes in at an early stage.  There are a number of different approaches that we will look at:

Question 1  What criteria would a company use in deciding between several different software houses when a new system is going to be delivered?  ANSWER

The alternative to solutions devised in-house or by a software house is to buy a package.  It is a safe and relatively less expensive way  of buying software compared to a bespoke solution:

There are, of course, drawbacks:

It may be possible to lease the software, in which case regular upgrades get made available.  The initial expense is less, but it may be more expensive in the long run.

Some organisations try to modify proprietary software, but this can be dangerous; the functionality may well be reduced, or worse...

Criteria for Selection of a Solution

The following criteria can be applied:

Question 2 A large market research company is considering several different software packages to assist with the analysis of data that are collected on behalf of clients.  Give three criteria that should be considered when evaluating software packages.  For each criterion, explain why it may be important to the company.  (AQA Past Question) ANSWER

 

Software Testing

All software is tested rigorously before it's released.  You have done testing as an important part of your projects (you did, didn't you?).  You may remember using normal data, boundary data, out of range data, or invalid data.  There are five key stages:

  1. Unit testing - each component (subroutine, code) is tested.
  2. Module testing - the module is made up of several components that are put together.  These are tested.
  3. Subsystem testing - collections of modules are tested.  The Purchase Order system is a subsystem of the Accounts system.
  4. System testing - testing all the sub-systems put together to make up the whole system.  The interaction of the subsystems may produce unpredicted results.  Also the testing is carried out to ensure that it matches all the requirements in the specification.  Do you remember doing that in your project?
  5. Acceptance testing - as installed at the user's site.  Rather than dummy data, real data from the user are used.

Testing is an iterative process whereby results at each stage can be used to inform earlier stages (like the Waterfall Model).  For example a problem at Module Testing may show that one of the units needs to be re-thought.

 

Acceptance testing is sometimes called Alpha (a) testing.  Alpha testing reveals errors and omissions.  The user may well find that the system does not do various functions because they were not explained clearly enough in the original specification.

Beta (b) testing is carried out before a package is released for general sale.  The package is given to a number of different end users for testing in real environments.  Errors get shown up and these can be corrected before the product is released.

The more complex software is, the more likely it is to contain errors.  If you look at a good A2 project, you will see how much testing is done for even a relatively simple project.  A2 projects are simple compared to large corporate databases.  Almost all software contains errors which may well not get shown up in testing:

Question 3  Explain what is meant by alpha and beta testing.  In your answer explain which type of testing applies to bespoke and proprietary software.  ANSWER

Question 4  Some bespoke software is tested by the software house, but when it is installed at the client's site, its functionality is poor.  Give two reasons why this might have happened.  ANSWER

 

Software Maintenance

Software needs to be maintained:

There are three main categories of maintenance:

Generally the maintenance time is about 65 % perfective, 18 % adaptive, and 17 % corrective.

The manufacturers of software respond to feedback from users, and will carry out modifications before releasing a later version (a release).  Minor changes are shown by Versions 3.0, 3.1, etc.  Major changes are shown in Versions 4.0, 5.0, etc.  Or even a completely new name.

Maintenance is rather looked down on by developers, so ends up in the hands of less experienced staff, which is why a high proportion of software costs goes on maintenance.  In large systems, maintenance can lead to other errors, which necessitate more changes.  Sometimes it's not worth the trouble.

Generally maintenance is one of the highest costs of running software, so it is well worth-while to make the systems as easy as possible to maintain.

Question 5  State three different types of maintenance.  Explain why maintenance is such a high proportion of the cost of running software.  ANSWER

 

Now try the Topic Quiz