Developing ICT solutions

Analysis

What is analysis?
Developed to meet a need or
slove a problem

The aim of analysis
- Establish the current system
- Strength and weaknesses of the current system
- What is required of the new system
- Any constraints that my be placed on the new solution

How analysis is carried out?
- Interviews with the users
- Questionnaire and surveys
- Analysis fo existing paperwork
- Observation of current system

Formal Data Analysis Techniques
- Data flow diagrams
- System flow charts
- Data decomposition diagrams

Deliverables at this stage
- Clear and detailed user requirements specification (signed off by end user)
- A list of tasks that need to be completed together with a schedule of timings
- A Gantt chart for project management
- Assessment of the users' current ICT skill level and training requirements
- Hardware and software requirements and limitations
- Performance indicators or evaluation criteria to measure the success or failure of the project
- An outline of the propsed method of solution

Design

What is design?
The design explains in detail how it is going to do it and how it will produce a solution

It will include detailed descriptions of:
- The software, tools and techniques to be used, and justification of why they have been chosen
- Data capture and validation methods
- Desgins for the user interface
- Processing
- Output
- How the solution is to be tested

Deliverables:
- Details of file definitions, data structures and processes
- Designs of outputs
- A test strategy and plan
- Detailed time plan for this satge of the project

Installation and conversion

The system is put into its working environment to be used by the client. Also invloes conversion fo any existing system that will be superseded by the new solution and linking to any other systems with which it needs to operate.
The system documentation will be presented to teh client at this stage, with operational user guide and technical documnetation.

Deliverables
- Fully functional solution (signed off by the client)
- Full documentation including user guide and techinal documentation

Constructing the solution

Customising a package
A generic or special purpose package which is suitable to be used for producing the solution is probably the cheapest and quickest method. However, it may require compromises as the designer will not have the completely free hand that building. The solutions built this way are probabaly less risky than those coded from scratch and more help and advice is likey to be available.

Writing code
This gives the designer much more flexibility to produce a solution that fits the client's needs exactly. This takes longer and the likelihood of errors are more than customising a package.

Deliverables
- Working system
- Documentation of solution
- Draft version of user guide

Testing

Any new system should be thoroughly tested before it goes live.

Module/unit testing
This test the individual sections of the software to make sure that each section works as intended. This is an example of white box testing.

Integration testing
When module testing is completed, the modules are combined one at a time at each integration stage and debugged

Functional testing
This is to test the operation of the system and may pick up errors that were missed at the module/unit testing stage. This is an example of black box testing.

System testing
This tests the complete, intergrated solution in preparation for user testing

User testing
The actual users of the system will put it through its paces and offer their comments. It is the final stage of testing before the system goes into operation

Operational testing
This test runs in the actual environment in which the solution will be working

Deliverables
- Test data and results
- Modifed user guide
- Client approval to install

Review and maintenance

This is run when the system is installed and monitored its process, it is a continous, ongoing process. Constantly reviewed.

Corrective maintenance
Putting right any reported errors once the system has become operational

Adaptive maintenance
Alter the system to meet the new requirement of the organisation

Perfective maintenance
To make the system as efficient as possible by tweaking, may invlove adding extra functions to amke the solution even better