System development life cycle
✕When a new computer-based system is introduced by a business, it is usually to replace an old system which may be a manual system or an outdated, computer-based system.
✕The introduction of a new system is likely to be expensive and take time. It is vital for the organisation that the new system:
+Is introduced smoothly
+Does not exceed the budget
+Meet time deadlines
+Meets clients needs
+Is fully working.
✕As the introduction is vital to e success, formal methods for developing an ICT system have developed to try to ensure success.
System investigating feasibility
✕This starts with looking at the existing system and possible alternatives, including a new system or upgrading the old one. It usually consists of five factors;
+Technical – will the new system work?
+Economic – will it save us money?
+Legal – does it comply with the law?
+Operational – will it solve the problems?
+Schedule – can it be built in time?
✕A report is produced at the end of this stage and the management decide whether to approve it or not.
Analysis
✕Analysis involves finding out about the current system and investigating the requirements of the users.
✕Four main ways to investigate;
+Interviews
+Questionnaires
+Observation
+Examining existing documentation
✕Who uses them?
✕How often are they used?
✕How the is the data collected?
✕Who are the documents sent to?
✕What do they do with them?
✕Systems analysts' then use formal graphic and tabular methods such as DFDs to represent the current system.
✕The analysts use the results of their findings to produce a set of deliverables for the new system which are agreed with the user and the client.
Deliverables
✕A set of items promised under a contract such as;
+System functionality list
+User interface designs
+Details of provision for existing data
+Conversion of existing data
+Test plans
+User documentation
+Technical documentation
+Deliverables timescale
✕Agreeing this list at this stage will avoid arguments later.
Design
✕The design stage for the new system determines how the requirements specification is implemented. It involves breaking the problem down into smaller sub-problems.
✕The system is drawn up then in sufficient detail for the programmers to create the system.
✕A project timetable and milestones will be included in the design.
Construct System
✕This is the stage when the system is produced by he development of programs or customisation of software packages. Programs are coded, tested and documented.
✕Files must be converted into a form suitable for the new system.
✕Hardware must be installed and thoroughly tested as the installation may require extensive cabling and alteration of buildings.
Testing
✕Testing is a crucial stage of the development. Test data should test that all branches of the program perform to specification. Data should be used to test extreme cases.
✕Testing should also include invalid data to ensure it is rejected.
✕Any results of testing should be compared with the expected result and any discrepancies should be investigated and corrected.
Types of Testing
✕Module testing – in which each part of the system is tested.
✕Functional testing – checked that the outputs are correct for the given inputs
✕User testing – potential users use the new software on their own computers using real data.
✕Operational testing – in which software is tested in its normal operating environment.
Installation and conversion
✕Once testing is complete, the new system can be implemented. Hardware must be purchased, staff trained, user documentation written and data files converted for the new system.
✕There are 4 methods of changing over;
+Direct
+Parallel
+Phased
+Pilot
Direct
✕This is scrapping the old system and replacing it immediately with the new system. It is usually not a good idea as there is a risk of something going wrong.
✕For some systems, it is the only method and if this is the case then it is done at the quietest time.
Parallel
✕Both the old and the new systems are run together for a certain time. When the new system is established and running smoothly, the old system is scrapped.
✕This is a safe method as the old system is there for back up.
✕It can be costly though as extra time is required to run both systems at once and can lead to confusion.
Phased
✕The changeover occurs in stages.
✕Can only be used for large systems that can be broken down into separate sections.
Pilot
✕The system is implemented in one department or location before the rest of the organisation.
✕This way any bugs can be cleared up and users reactions can be taken into account before the system is implemented.
✕Training can be adapted in the light of experience.
Review & Maintain
✕Once a system is in full operation it is monitored to check the it has met the objectives set out in the original specification.
✕Inevitably, changes will need to be made to the systems. These changes are known as system maintenance.
✕More hours are spent on programming these tasks than creating new systems.
✕It is also to evaluate the success of the project and review its effectiveness.
✕Such evaluation will involve returning to the original objectives and performance criteria.
✕Evaluation will involve discussions with management and users of the system after some time after it has been installed to gather their opinions as to the new system’s effectiveness.
Linear Development
✕The idea is simple: each element of the design is fully completed before the next element is started
Linear Methods
✕These allow the development of a new system in an order or sequence.
✕Stages of development have to be completed before the next stage can start.
✕The waterfall model, first described by Winston Royce in 1970, was the first example of a linear method.
✕It was called waterfall as the tasks flowed from top to bottom.
Suitable For
✕Where the project is large, complicated and expensive – as this methodology is more rigorous so there is less risk.
✕Where pressure does not exist for immediate implementation - allows time to perfect each stage before moving on.
✕Where the project has clear objectives and solutions – need clarity before starting, as the methodology relies on not revisiting previous stages.
✕Where the project requirements can be stated unambiguously and comprehensively – so that each stage can be identified and then completed.
✕Where the project team are inexperienced – so they can be guided by the more rigid project development structure.
The waterfall method
✕In this methodology one stage of the system is perfected and completed before the next stage is started.
✕Each task is separate and leads on to the next task.
✕There is no looping back to a previous stage.
✕The problem with this is that it can be too rigid a method because it is hard to achieve in practice.
Advantages
✕It offers a simple, disciplined approach to systems development.
✕Each task is completed fully so you do not need to go back to them later.
✕Bugs found early on in software development will cost less to correct than if they are discovered later on
✕It places more emphasis on documentation, which means that if a member of the project team leaves, it is easier for a new member of staff to take over.
Disadvantages
✕Real projects do not lend themselves to the sequential approach as you often have to go back to a previous stage and make changes.
✕At the beginning of most projects there is often a great deal of uncertainty about requirements and goals, and it is therefore difficult for customers to identify these criteria on a detailed level. The model does not accommodate this natural uncertainty very well.
✕Some clients will want to see a rough working version in order to make comments on it and this method does not allow for this.
✕A working version is not produced until late on in the project development.
Iterative Development
✕The idea here is to develop all aspects of the design simultaneously, making a little bit of progress at a time.
Iterative Methods
✕Iteration means repeating something over and over until you get the solution.
✕Iterative methodologies have been developed to improve the waterfall model. The phases may be the same but they are not linear. Developers can go back at a later stage and improve earlier stages.
✕Iteration can lead to constant redesign and implementation of the system. This can be tie consuming and it is important to set timescales to ensure that this doesn’t happen.
Suitable for..
✕Where the project is for an online system such as a website, e-commerce site etc., where there is extensive user/client dialogue – so users can constantly give feedback which is acted on.
✕Where the project objectives are unclear – so that the project objectives are flexible and can be altered as the project progresses.
✕Where there is pressure for the immediate implementation of something – so that the users can use part of the project early on.
✕Where project team members are experienced – so that they can use their own experience to cut out steps which take time.
Advantages
✕It allows for more user involvement as the customer can see what is being produced at each stage – this makes for a better solution as users have given their input throughout the development.
✕It places higher emphasis on prototyping and user interface in the early stages – this means that there is less documentation and more deliverables.
Disadvantages
✕Greater user involvement may cause problems as users are taken away from their day-to-day activities
✕Greater user involvement may mean that the user will want increased functionality from the system and this can involve greater cost and could cause delays in project completion.
The Spiral Model
Analysis
Design/ Development/
Testing
Evaluation/
Maintenance
Problem Statement/ Feasibility
Prototype 1
Prototype 2
Prototype 3
✕The system requirements are defined in as much detail as possible. This usually involves interviewing a number of users representing all the external or internal users and other aspects of the existing system.
✕A preliminary design is created for the new system. This phase is the most important part of "Spiral Model". In this phase all possible (and available) alternatives, which can help in developing a cost effective project are analysed and strategies to use them are decided. This phase has been added specially in order to identify and resolve all the possible risks in the project development. If risks indicate any kind of uncertainty in requirements, prototyping may be used to proceed with the available data and find out possible solution in order to deal with the potential changes in the requirements.
✕A first prototype of the new system is constructed from the preliminary design. This is usually a scaled-down system, and represents an approximation of the characteristics of the final product.
✕A second prototype is evolved by a fourfold procedure:
+evaluating the first prototype in terms of its strengths, weaknesses, and risks;
+defining the requirements of the second prototype;
+planning and designing the second prototype;
+constructing and testing the second prototype.
Advantages
1. Estimates (i.e. budget, schedule, etc.) become more realistic as work progresses, because important issues are discovered earlier.
2. It is more able to cope with the (nearly inevitable) changes that software development generally entails.
3. Software engineers (who can get restless with protracted design processes) can get their hands in and start working on a project earlier.
Disadvantages
1. Highly customised limiting re-usability
2. Applied differently for each application
3. Risk of not meeting budget or schedule