Systems Development Life Cycle.

3.1.1 Problem Definition

It is important from the outset to ensure that when a computer system is being designed all
those that are involved are agreed about the aims of the system.

There will normally be a person, or a company or organisation, that decides that a task
would benefit from computerisation. This belief normally arises because there is a problem
which cannot be solved by previously used methods or similar problems seem to have been
solved by computerisation elsewhere. Unfortunately, the owner of the problem probably
understands the problem itself quite well, but does not understand the consequences of
using computers to try to solve the problem, or, indeed, whether such a solution is even
possible. For this reason it is necessary for the organisation to employ a specialist who does
understand computers and computerised solutions to problems. This is the systems analyst.
Unfortunately, it is probable that the systems analyst is not expert in the area of the
problem.

The system analyst’s job is to solve the problem by planning and overseeing the
introduction of computer technologies. The owner of the problem will be happy if the analyst
can introduce a computer solution. The problem arises when the analyst, who doesn’t know
very much about the business, solves the problem that they think needs solving, while the
owner of the problem expects a very different problem to be solved.

It seems obvious that if someone is doing something for someone else that they should
make sure that they know what is required. If you are asked to answer questions 1 to 5 and
you do 6 to 10 instead there is an obvious breakdown in communication, but this is what can
happen if you only listen to the instruction, “Do the 5 questions”. The method most often
used to overcome this problem is for there to be discussions between all the interested
parties, and then for a list of objectives to be written up. The solution to the problem is the
successful implementation of all the objectives. The different people involved then agree to
the list of the objectives and the success, or otherwise, of the project depends on the
completion of those objectives.

The definition of the problem is the most important part of the analysis because if it is not
done correctly the wrong problem may be solved. This is quite common and has led to
many failed projects.
3.1.2 A Feasibility Study.

When the organisation and the systems analyst have agreed the definition of the problem, a
decision must be made about the value of continuing with the computerised solution. The
organisation may be convinced that there is a problem to be solved, and that its solution will
be worth the effort and the expense. However, the systems analyst is being paid to look at
the problem, and its solution, from another point of view. The analyst is an expert in
computer systems and what is possible with computer systems. This analyst must consider
the problem from the point of view of the computerised part of the solution and make a
report to the organisation saying whether the solution is possible and sensible. This report is
called the feasibility study because it says whether the solution is feasible.

The feasibility study will consider the problem, and the proposed solution, from a number of
points of view.
Is the solution technically possible? A car firm may decide that if robots are used on the
production line to assemble the different parts of engines then quality of work may improve.
However, if it is not possible to manufacture a robot arm of the correct dimensions to fit into
the small areas under a car bonnet, it doesn’t matter how big an improvement there would
be in the quality of the finished product, it would simply not be feasible.
Is the solution economic to produce? Perhaps the robots exist that can be programmed to
assemble this engine and the benefits will be worthwhile. However, if the cost of the robots
and the program to control them is so great that it puts the car manufacturer out of
business, the introduction of the robots is not feasible.
Is the solution economic to run? It has been decided that there are tremendous benefits in
producing a robot production line and the robots are very cheap to buy, but they have so
many electric motors, and they are so slow at assembling the engines that it is cheaper to
employ people to do the job.
What is the effect on the human beings involved? If the car plant is the only major employer
in the region, and the introduction will put much of the workforce out of work, then the
employer may decide that the human cost is too great, certainly the Government would.
Is the workforce skilled enough? It will be necessary to employ highly skilled technicians to
look after the robots. If there are no workers with the necessary skills, then the
computerisation is not feasible.
What effect will there be on the customer? If the customer is likely to be impressed with the
introduction of the new systems, it may be worth the expense. However, if the customer will
notice no difference, what is the point?
Will the introduction of the new systems be economically beneficial? Put bluntly, will the
introduction of robots increase the profits made by the firm?

If the feasibility study shows a positive result which is accepted by the company, the next
stage will be for the analyst to collect as much information about the process as possible.
3.1.3 Information Requirements of a System and Fact Finding

When a computer system is being designed, it is necessary to ensure that the designer of
the system finds out as much as possible about the requirements of the system. We have
already mentioned the importance of defining the problem but further difficulties can arise.
Imagine an organisation that commissions an analyst to design a new payroll program. The
analyst and the boss of the organisation agree that the software needs to be able to
communicate with the relevant banks, and to deduct tax at source and other important
details. The analyst designs the solution and the software is written. It is the best payroll
program ever produced and is installed into the computer system ready to do the first
monthly payroll. Unfortunately, many of the workforce are employed on a weekly basis. A
simple question to one of those paid in this way would have highlighted this for the analyst
and meant that the costly mistake was avoided. When a system’s requirements are being
studied there is no room for errors caused by lack of information.

The feasibility study has been accepted so the analyst now needs to collect as much
information as possible. Obvious methods of collecting information are to ask different types
of people. It may not be feasible to ask everyone in the organisation for their views, but a
representative sample of workers, management, customers should be given the chance to
supply information. After all, the part time worker on the production line probably knows
more about the business than the analyst. There are three accepted methods of finding out
people’s views:

1. By interview. Interviews are particularly important because they allow the interviewee to
talk at length, and also to leave a prepared script. However, they are very time consuming
and consequently restricting in the number of people whose views can be sought. Also,
questionnaires are very difficult to design. Many people have difficulty completing them,
particularly if the instructions are not very clear.

2. By using questionnaires. Questionnaires make it possible to find out the views of a large
number of people very quickly, but because the questions are pre-determined the person
who is supplying the answers may find difficulty in putting their point of view across.

3. A compromise is to hold a group meeting. This allows a number of people to discuss
points and make their views known and yet cuts down on the amount of time spent in
interviews getting the same answers over and over again. The problem with meetings is
that one or two people tend to dominate, not allowing all the members of the group to give
their opinions.

Often the views of the people connected with the problem are clouded by years of
familiarity, so it is important for the analyst to also gain first hand knowledge of any existing
systems. One way to do this is to observe the current system in action. Care must be taken
to take into account the fact that if the workers know that they are being observed it is
unlikely that they will behave in their normal manner. This is the same effect as a television
camera has on otherwise fairly sensible individuals. The second method is to collect printed
documentation and study it in order to find out what data is required by the system and in
what form information is output.
3.1.4 Requirements Specifications

The planning of any system design must start by deciding what the requirements are of the
system. A system may need to store data for future reference or processing. However,
simply being aware that the system may need to store data is not enough.
Decisions need to be made about the types of data to be held as this will dictate the form
that the data will be stored in and the amount of storage space required for each set of
data.
Calculations as to the number of sets of data that are going to be held have to be made
because the volume of storage will make some storage devices more sensible than others.
Also, the volume of storage can affect the structures that will be used to store the data.
Decisions need to be made about the relative importance of the different ways of accessing
the data. Is it going to be necessary to access individual items of data or will all the data be
accessed at the same time?
Will the data be changed regularly or is it fairly static?

When decisions are made as to the direction that a particular system is going to take, it is
normal to produce a list of tasks that need to be carried out to complete the system. These
tasks should be in a specific order. It would not make sense to consider inputting data into
the system before designing the data structure into which the data is to be put. This list is
called a priority list and it forms the basis of the system design. Each of the tasks that are in
the list should then be considered separately to decide the important points about each one.
An example would be that the file of information on stock being held in a business must
allow
for 1000 items (immediately putting a lower limit on the size of appropriate storage)
for direct searching for information on a single item (means that some storage media are
not suitable, and that some data structures cannot be used)
another file, of manufacturers, to be accessed from each record in the stock file to facilitate
reordering (forces one field to act as a link between the two files).
Plenty of other facts must be considered and decisions made, but a set of constraints has
already been placed on the design. This is known as the design specification and it should
be agreed between the analyst and the organisation before the design is implemented.

Often, the inputs and outputs to a system and the storage and processing that goes on in
the system is such that, in order to understand it, the system needs to be divided up into a
number of interconnected sections, or modules, each one being simple enough to be
handled as an entity. A diagram can be drawn which shows all the sections and how they fit
together. Such a diagram is called a Jackson diagram.

Jackson diagrams:
A Jackson diagram starts with the original problem as the highest level. The next, and
subsequent, levels show how the problems in the previous levels are split up to form
smaller, more manageable, problems. This continues until each of the blocks in the lowest
levels are self contained, easily solvable problems. These individual problems can then be
solved and combined according to the links that have been used. If the links between the
different blocks are then used correctly, the result will be a solution to the original problem.
Imagine a Jackson diagram as a method for showing the individual modules that go to make
up a solution to a problem and the relationships between them.

Original Problem
Links

Individual modules


Final level


The links between the modules can be conditional. For example if the result of a module was
a mark out of 100, then there could be two possible print routines, one for failure if the
mark was below a certain level, and one for pass if it was above the pass mark.

Data flow diagrams:
These are diagrams that are used to describe systems. Boxes are used to stand for input,
processes, storage, and output. Arrows show the direction of communication around the
system, and communications outside the system. As the name implies, these diagrams are
used to show the directions of flow of data from one part of a system to another. Data flow
diagrams can have complex shapes for the boxes that are used, but the important thing is
not the shapes of the boxes, rather the logical train of thought that has been used to
produce the diagram. Rectangular boxes, though not always used, are perfectly acceptable
for all elements in a data flow diagram. Such diagrams are intended to show how the
processes and the data interrelate, not the details of any of the programming logic.
Note: A Systems Flowchart is another name for a data flow diagram.
Students are expected to be able to follow the logic in a data flow diagram and, indeed,
produce their own, but not until the A2 sections of the syllabus, where this topic will be
picked up again.

At this stage the analyst will also identify the hardware that will be necessary for the system
to operate as the user requires, and the software characteristics that will need to be
satisfied for the system to operate.
3.1.5 Design of Input, Output, and Data Structures

Input Design
All systems require input. The way that the data is input to the system depends on a
number of factors.
The data that is required. Is it graphical/textual/physical in nature? Is the data already in
existence or does it need to be collected first?
The hardware that is available. Is the data to be entered via a keyboard by an operator, or
is there an automatic way to enter the data?
The experience of the operator.
The design of the user interface.

This section relates back to section 1.2.3 which covered the different forms of software
interface. The main task in input design is to design the interface with the outside world so
that data can be passed to the system, both software and hardware.

Diagrammatic depiction of the system processing is covered in section 3.1.4, above. It is
not necessary to go into great detail about such diagrams, but students should be aware
that they exist.

Output Design
The results that are produced by the system must be presented in a way that is appropriate
for the application. If the system is designed to produce bank statements for customers,
then it would not be sensible to have an audio output. Similarly, a burglar alarm system
would not serve the purpose for which it had been designed if the output is a message on a
computer screen saying that someone has broken in as there is probably no-one in the
house to read it, which is why the alarm was needed in the first place.

The decision about the type of output will depend greatly upon the same factors as the
input, namely, the hardware available, the form that the output needs to be in, the
experience of the operator, indeed, whether there will be an operator present.
Equally important to giving enough information, is the danger of providing too much. In
order for users to be able to understand the information presented, various tricks can be
used.
Information can be arranged on a monitor screen by always putting the same sort of
information in the same place. The operator will then quickly become accustomed to the
relative importance of different areas of the screen.
Information can be colour coded. Important information may appear in red while that which
is less important is in black. Notice that this implies some form of decision making on the
part of the processor to determine what is important in the first place. It is also necessary to
be very careful about choice of colours. People who are colour blind commonly find difficulty
distinguishing between red and green, so choosing these colours to stand for information
that is dangerously near a limit or at a safe level, could be disastrously wrong. Similarly,
colour combinations have to be chosen carefully. Blue writing on a black background is
almost impossible to see, as is yellow writing in some lighting conditions.
Video reversal can be used to highlight a particular piece of information effectively. This is
when the normal writing on the screen is black on a white background, but the piece that
needs to stand out is shown as white on a black background.
Very important pieces of information may be shown as a dialogue box obscuring the rest of
the screen until it is dealt with.
A printer may be reserved for special messages so that a hard copy of the information is
preserved. Again, the fact that the information appears on that printer means that it has a
particular importance.
Information can be made to flash, or can be printed in a different size, anything that makes
the operator’s eye go to that part of the screen.
It is important not to put too much on a single screen. It is better to use several screens
with the contents clearly shown.
If more than one screen is used, it is important to be able to move both forwards and
backwards through the screens easily.

Data Structure Design
The data used in a computer solution will need to be stored somewhere. The storage is not
that important. What is important is getting it back again when it is needed. In section 1.4,
the data structures array, queue, stack, linked list, tree, were described. When the solution
is designed it is necessary to decide how access to the data will be handled and to choose
an appropriate data structure. Questions on this part of the syllabus will tend to ask for the
sort of choices that need to be made rather than any complex analysis of fitting a data
structure to a given situation, though simple examples like modelling a queue at a check out
till may be asked.
3.1.6 System Evaluation

Any system must match certain criteria if it is to be considered successful. This does not
only apply to a computer system but any system. For example, a car must satisfy various
criteria before being able to be called a car
it must move under its own power
it must be possible to steer it
it must have 3 or 4 wheels
it must have seats.

There would be many other facts which would have to be true before most of us would
recognise that this system is a car. However, some assumptions have been made in just the
four criteria mentioned here. A toy, radio controlled, car fits all these criteria, but it was not
the sort of system that we had in mind when designing the criteria. Perhaps the second
bullet point should have specified that it has to be controlled from within the car itself, or
should there be a new criteria that gives a minimum size for the vehicle? When systems are
being designed, this list of criteria, that the finished system must match, is of paramount
importance. It must also be agreed between the designer of the system and the
commissioner of the design, so that there will be no unfortunate misunderstandings. We can
imagine a situation where the Ford motor company commission a new car design, only to
find that it is 30 cms long when delivered.

Note that these criteria are decided before the system is created. They are used to decide
how well the system works. In other words, does it do what it is meant to? This question can
only be answered if it is known what the system was meant to do in the first place.
3.1.7 Documentation

The documentation of a system consists of all the text and graphics that explain how the
system was produced, how it should be used, and how it can be maintained.
Documentation is created at different stages in the life of a system and for different people
to use. Some of the different types of documentation are met in this section and others will
be encountered later in the course. Indeed, much of the project work that is done in module
5 consists of producing the documentation for a problem solution.

Requirements Specification
This is a list of the requirements of the customer for whom the system is being designed. It
consists, largely, of the criteria that will be used for the evaluation of the finished system
that were discussed in section 3.1.6. It is usual for the system analyst and the customer to
sign the list of requirements so that there is no confusion when the work is finished.

Design Specification
Taking the requirements specification and working out the stages necessary to produce the
required end product is known as the design specification. This will include the different
stages, often shown in diagrammatic form as mentioned earlier in this chapter, and also the
criteria for each stage of the solution. For example, one part of a solution may be the
production of a file of data. The ways that this file of data relates to the other parts of the
system, and the specification of the file (What is the key field? How many records will there
be? What type of medium should it be stored on?) make up the design specification.

Program Specifications
These will include detailed algorithms showing the method of solution for some of the parts
of the problem. These algorithms may well be in the form of flow diagrams or pseudo code.
The language to be used, the data structures necessary, and details of any library routines
to be used will also be in the program specification.

Technical Documentation
The technical documentation will include the program specifications, the coded program
itself, details of hardware configurations. Generally, anything that will aid a technician in
maintaining or updating a system. Indeed, technical documentation is otherwise known as
maintenance documentation. This type of documentation is not intended to be accessible to
the user of the system, who does not need any of these details to be able to use the system
correctly.

User Documentation
This is the documentation for the person who will actually be using the system. It contains
those details that are needed to make the system operate as it should. Items normally
included in the user documentation will be
how to install the system onto specific hardware
methods of input of data
examples of valid input
examples of output screens
error messages and what to do when they appear

Some user documentation is part of the software and can be called up onto the screen when
it is needed. This type of documentation is called on-screen help.
3.1.8 Testing and Implementation Planning

Any system needs to be tested to ensure that it works. This seems to be a fairly obvious
statement, but in reality such testing is impossible in all but the simplest of systems because
it simply is not possible to test every conceivable input to, or logical construction in, the
system. This difficulty means that testing that is to be done must be carefully planned and
that it should relate directly to the criteria referred to earlier in this chapter. Specific types
of testing have already been covered in 1.3.8.

When the system has been completed it has to be implemented so that it is performing the
tasks for which it was designed. Initially, this involves
ensuring that the correct hardware is available
arranging for staff to be trained in the use of the new system
inputting the data to the data files, either manually or by downloading them from the
original system.

The system handover, itself can be done in a number of ways.
Parallel running. Until the system can be considered fault free, the old and new systems are
run side by side, both doing the same processing. This allows results to be compared to
ensure that there is no problem with the new system. Such a system is ‘safe’ and also
allows staff training to be carried out, but it is obviously very expensive because of the need
to do everything twice. Parallel running is used in situations where the data is so valuable
that there must be no possibility of failure.
Pilot running. Key parts of the new system are run alongside the old system until it is
considered that they have been fully tested. This is a compromise with the idea of parallel
running, but it does not give a clear idea of the effects on the system of the large amounts
of data that are going to be encountered in the full application.
Big bang, or direct change. The old system is removed and the new system replaces it
completely and immediately.
Phasing. Parts of a system are replaced while the remaining parts are covered by the old
system. This allows for some testing of the new system to be done, and for staff training to
take place, but also allows for a back-up position if the new version does not work as
anticipated.

This topic is not fully expounded upon here, the candidate simply needing to understand that
there are different methods of implementation and be able to outline some of the methods
along the lines shown here. This topic will reappear for a fuller treatment in section 6.2.5.
3.1.9 System Maintenance and the Software Life Span

Systems may be designed for a well defined purpose and may realise that purpose, hence
they would be considered successful. However, the original reasons for a particular system
to be created may change, the hardware may alter, the law governing a system may
change. For many reasons the original system may no longer be satisfactory. One solution
would be to produce a totally new system, another would be to adapt the present one so
that it can be used in the new circumstances. This situation is reviewing the system and is
the main reason for technical documentation.

While the system is running it will need attention because of faults being discovered, this
again needs a technician with a set of maintenance documentation.

Computing and computer applications is a subject that changes so regularly through
improvements in technology, new ideas, different legal frameworks trying to keep pace,
that, in reality, a system should never be considered to be finished. Rather than being a
linear process with a beginning, a middle and an end, it should be thought of as a circular
process, continually returning to previous stages to fine tune them and take advantage of
changing circumstances.