A waterfall method has a sequence of distinct stages. One stage must be completed before the next stage commences. Deliverables are produced at the end of each stage. If an error is found during one stage a previous stage may have to be reworked.
RAD - Rapid Application Development
Rapid Application Development (RAD) is an iterative development process i.e. continuous. A preliminary data model is developed and a prototype is developed providing the business functionality. The prototype helps the analyst and the users to verify the requirements, refining the data model and implementing the required processing. There are strict deadlines for each refinement. User requirements are prioritised as essential and non-essential. Formal workshops are scheduled between the developer and users.
Prototyping is when a first-cut model is developed. This may be a non-functioning front end user interface. This is evaluated by the user, with the feedback allowing the model to repeatedly be refined and evaluated. The user interface is modified, and functionality is added. The iteration stops when the user is satisfied with the system i.e. evolutionary prototyping or went the user requirements have been established and the system can be developed using the waterfall method i.e. throwaway prototyping.
Fact Finding Methods
An end user could be involved during three separate fact finding methods. The first is observation. The systems analyst observes the user going about their daily routine identifying the user’s needs. Another fact finding method is an interview. The system analyst talks formerly to the users about their job. A questionnaire could be used as a method of fact finding. This involves the user answering a set of questions about their job.
User documentation refers to documentation that is produced for a system. It is aimed to provide support and help for new users of the system so that they can find out how to do things. There are usually step-by-step instructions on how to perform a task. User Documentation may be in paper form or built into the system in the form of online help files. It will include hardware/software requirements, installation instructions, operating instructions and a troubleshooting section.
Technical documentation refers to the documentation that the developers keep. It contains design documentation, module architecture and specifications, program codes, test plans and hardware/software requirements. This is all kept in case maintenance needs to take place – perfective, adaptive, corrective.
A project management tool will be used to systematically schedule and assign jobs to people. It takes into account the other projects allowing deadlines to be set. They allow for the evaluation of risks associated with a project, budgets to be controlled and problems to be identified. A project management tool automates Gantt charts/timelines ensuring development will progress to schedule.
A project manager is the person who has overall responsibility for a project. They oversee the new system, setting timescales and managing budgets. They allocate resources, while monitoring progress and identifying any risk.
CASE (Computer Aided Software Engineering) tools are programs used to automate, manage and simplify the development process and provide a development environment for teams of programmers working together. CASE tools such as DFD generators provide automatic validation ensuring that validation is carried out accurately. Code will be produced by a code generator with the code being optimised so that it will be efficient and execute faster. Graphics tools such as DFD generators automatically populate the data dictionary. CASE tools produce electronic output which can be saved and re-used for other systems.
Off-the-shelf software is software which is already available, with standard features to suit every company. It is cheaper, immediately available however is not custom made for the company.
In house software is software which has been custom made by an ICT professional already working within the company. It will meet the exact needs of the user, however the company will have to wait for the development to be carried out and the full development costs will be much more expensive.
Outsourced software is software which has been custom made by an ICT professional outside the company. It will meet the exact needs of the user, however the company will have to wait for the development to be carried out and the full development costs will be much more expensive.
Alpha testing is performed by the developer. The system is tested against the system specifications, including integration testing. A test plan is produced and test data is used.
Beta testing is performed after alpha testing. The system is given to a selected group of users; this is known as pre-release testing for use in a realistic environment, with real data. The users evaluate the system and provide feedback to the developer.
Acceptance testing is often done at the review stage. Once testing and implementation are complete, the customer compares the final system with what they were expecting. This testing determines whether users accept the system or not. The user evaluates the functionality, the training methods and user documentation for correctness and ease of use.
Perfective maintenance refers to the system being improved.
Corrective maintenance refers to errors being removed when the system is in use.