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 diagramsundefined

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 solutionundefined

Design

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

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 testedundefined

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 projectundefined

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 documentationundefined

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.undefined

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.undefined

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

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.undefined

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

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.undefined

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

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 operationundefined

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

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

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 operationalundefined

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

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