Systems Development Life cycle
These are the stages of the SDLC, they must be learnt as questions can be asked on any one of the stages.
- System investigation/Feasibility study
- Build/Constructing solution
- Installation and conversion
- Review and Maintenance
This begins with the definition of the problem through investigations such as questionnaires, interviews etc. This information will be used to write a project definition, stating thew aims of the new system.
A feasibility report will include the following:
- Investigation into technical, legal, budgetary and schedule limitations
- Identifying costs and benefits and evaluating the worth of a new system
- A recommendation as to the overall feasibility
Analysis of the problem and proposed system
The system analyst will look in detail at the current issues and the requirements of the new system (user requirements).
Analysis will usually include:
- Understanding the exisiting system and its limitations
- Gathering user requirements
- Setting out solutions using DFDs and flowcharts
- Producing a specification
Design and spec.
The systems analyst will use their current research to create a design - or several designs - to show what can be produced to solve the problem.
During this stage the following things happen:
- The system is designed with thought to the user and client requirements
- Creating the design specification for hardware and software on which the system will be built
- If ther are multiple possible solutions, the project sponsor (client) will choose one at this stage
Build/constructing the solution
This is the stage where programmers take the designs and use them to create the system, other members of the team will work to set the conditions for the solution.
Stages in the build:
- Programmers writing the necessary code
- Any hardware/software modifications are made
- Compiling all elements into the final system
Testing is crucial to ensure that the system works as desired and it protects the organisation from risk as issues with the system cannot damage them at this stage. Methods of testing:
- Functional - Checking basic infrastructure, extreme and erroneous data used.
- System testing - Multi platform testing, interfacing with other software
- Operational - Using a test-bed to mimic environment and find problems before it goes live - performed by end user
- User testing (usability) - BETA - performed by a group of users who are given the software before full release - questionnaires used.
Some or all of these methods will be used together to ensure that the system meets requirements and to remove any bugs or flaws before installation.
Installation and conversion
The stage where the completed and tested system is implemented to become fully operational in the business.
A full installation will involve:
- Installing hardware and software
- Conversion of previous data for the new system
- Training of all users (More in topic 11)
- Documentation produced - user guides, technical documentation
Review and Maintenance
This stage will come a while after the installation phase as it will give users and analysts the perspective they need to objectively evaluate the solution.
- Evaluation against user requirements and performance/evaluation criteria
- Assessment of the happiness of users and project sponsor
- Setting a review cycle for periodic assessments
Developments and adjustments must be made after implementation to add new features and fine tune the system. These changes fall into 3 categories:
- Perfective - Making the system better, adding features or improving speed
- Corrective - Identifying and correcting a fault in the system
- Adaptive - Modifying the system to work in a new environment
Each stage of the cycle forms a cyclical process whereby each stage is evaluated as it is completed, if it is unsatisfactory then development of the system is repeated to improve it.
- Allows project learning - new stages evolve with the lessons of past steps
- More user involvement at each stage as they evaluate with the dev team
- Emphasis on the user interface and prototyping, more intuitive system.
- Avoids working down the wrong path
- Users may become distracted from their primary tasks as they are involved in development
- Users may want more than the system is built to provide
- Perfectionism can lead to deadlines being missed through over-polishing of one area.
The Waterfall method. This is a linear method because each stage of the SDLC is completed and perfected before moving on, it is then not returned to. This is often hard to fully realise because issues or added features may require a backward step.
- Simple and disciplined
- Bugs found and erased at early stage
- Unrealistic to expect such a process to stand up during a real project
- This method does not allow any prototyping, making it hard for deliverables to be provided
This serves as a blending of the two previous methods. It is used to introduce prototyping into the waterfall method. It involves a following of the linear stages repeated where complexity is built up over several iterations.
- Rapid prototyping
- Developers can work at the same time in different project areas
- Tasks and deliverables can be identified thanks to the extra room for user involvement