A System Development Life Cycle(SDLC)is the process of developing information systems through a multistep process from investigation of initial requirements through analysis, design, implementation and maintenance. There are many different models and methodologies, but each generally consists of a series of defined steps or stages.
In the past, software development consisted of a programmer writing code to solve a problem or automate a procedure. Now,systems are so big and complex that teams of architects, analysts, programmers, testers and users have to work together to create the millions of lines of custom-written code that drive our enterprises.In order to manage this,a number of system development cycle models have been created.They consist of:waterfall, fountain, spiral, build and fix,rapid prototyping, incremental, and synchronize and stabilize.
The waterfall model is the oldest, and best known model. It is a sequence of stages in which the output of each stage becomes the input for the next. These stages can be characterized and divided up in differnt ways, including the following: The waterfall model has some problems however. It works well when your automating the activities of clerks and accountants, but is does'nt work so well, when building systems for knowledge workers.
Another problem is that the waterfall model automatically assumes that the only role for users is in specifying requirements, and that all requirements can be specified in advance. Requirements grow and change throughout the process and beyond, calling for a large amount of feedback, and constant consultation. That is the unfortunate side of using the waterfall model.
The fountain model recognizes that although some activities can't start before others, there's a considerable overlap of activities throughout the development cycle.
The spiral model emphasizes the need to go back and repeat earlier stages numerous times as your project progresses. In reality, it's a series of short waterfall cycles, each producing an early prototype representing a part of the entire project. It accurately reflects,the disorderly, even chaotic evolution of technology. Build and fix is the crudest of the methods. Write some code, then keep modifying it until the customer is happy. Without planning, this is very open-ended and can be risky.
In the rapid prototyping model (sometimes called rapid application development), the initial emphasis is on creating a prototype that looks and acts like the desired product in order to test its usefulness. The prototype is an essential part of the requirements determination phase, andmay be created using tools deifferent from those used for the final product. Once the prototype is approved, it is discarded and the "real" software is written.
The incremental model divides the product into builds, where sections of the project are created and tested separately. This approach will likely find errors in user requirements quickly, since user feedback is solicited for each stage and because code is tested sooner after it's written.
The synchronize and stabilize method combines the advantages of the spiral model with technology for overseeing and managing source code. This method allows many teams to work efficiently in parallel.
www.computerworld.com
www.fullspectrumsw.com
www.eaglesconsulting.com