WHAT IS THE SYSTEM DEVELOPMENT
• The systems development life cycle (SDLC) is a conceptual model used in project management that describes the stages involved in an information system development project, from an initial feasibility study through maintenance of the completed system.
• A software development approach guides the developer through the software development process.
DID WE NEED A STRUCTURED
• The first development approach came into existence after the software crisis in the 1970s, which really reflected the immaturity of software development as a discipline.
• Software engineers tried to reduce the effect of the crisis and stop it by following structured methodologies for software development. These methodologies divide the software development process into phases, so that the developer focuses his efforts on one phase at a time. Using these methods, the number of failed or uncompleted software projects was reduced, the cost and development time of software projects were decreased.
• During the years the software development methodologies have evolved in order to provide a better understanding of the requirements, improve the quality of the end product, increase the ability for reuse;
• SDLC aims to produce high quality systems that meet or exceed customer expectations, based on customer requirements, by delivering systems which move through each clearly defined phase, within scheduled time-frames and cost estimates.
Various SDLC methodologies have been developed to guide the processes involved in SDLC, including:
Waterfall model (all projects can be managed better when segmented into a hierarchy of phases, consisting of different tasks );
• Rapid application development (RAD- intended to provide faster development and higher- quality results.);
Joint application development (JAD- is thought to lead to faster development times and greater client satisfaction, because the client is involved throughout the development process);
• Fountain model (the steps are still there, in the same sequence, however at any step there could be a fallback to an earlier phase which performed repeatedly is far more flexible than the Waterfall model);
• Prototype model(The basic idea here is that instead of freezing the requirements before a design or coding can proceed, a throwaway prototype is built to understand the requirements. This prototype is developed based on the currently known requirements. By using this prototype, the client can get an “actual feel” of the system, since the interactions with prototype can enable the client to better understand the requirements of the desired system.);
• Spiral model (combines the features of the prototyping model and the Waterfall model );
• V-shaped model(discussed later)
HEAVY VS LIGHT
• Some methodologies are referred to as Heavy methodologies (plan driven) and others are known as
Light or Agile methodologies(more able to adapt to change);
• The heavyweight development methodology is based on a sequential series of steps, such as requirements definition, solution build, testing and deployment. This type of methodology mainly deals with heavy documentation, detailed planning and design, whereas lightweight methodologies propose executing the project steps in parallel. The immediate difference is that lightweight methodologies are much less document oriented. The classic example of a predictive SDLC methodology is the "waterfall model" – a set sequence of phases that flow as definable steps.
• The execution of every development project depends on a feasibility study, when the cost and benefits are estimated with greater accuracy and the implementation of the new system/feature should provide benefits for the company greater than the expected cost for building it.
THE WATERFALL MODEL
ADVANTAGES AND DISADVANTAGES OF
Advantages of the waterfall method:
• 1. Design errors are