Software Development Models
There are various software development models in practice in software engineering. Popular amongst them are waterfall method, spiral mode, RAD model and prototype model etc.
The waterfall method consists of following development phases.
- Requirements, Design, Implementation, Verification and Maintenance
The model focuses on working in series of stages. When one stage is complete then next is initiated and when second finishes the third takes start. So it is a stage by stage in sequence and steps like water fall and water never comes back.
Project requirements are prepared and given final shape to proceed with the development of rest of stages. Requirements regarding project, behavior, performance and interface etc are all defined in this stage.
The complete project design includes design specifications, drawings, data structure, DFDs, algorithms and other documents necessary to project and present the design for the project.
Implementation stage in waterfall methods includes the physical implementation and coding of the project in agreed tools for development. User documentation and testing is also done in this phase.
Verification and testing is done for each stage completed for finalizing the stage done.
After sale service or maintenance is done for the project done and implemented successfully.
The spiral model contains similar cycles as are in waterfall method but it contains added risk analysis and 4gl RAD prototyping in the basic waterfall method
Iterative and Incremental Development
Business needs keep on changing and so are the client requirements. The models like waterfall cannot keep pace with changing user environment and hence the need for an Iterative model is unavoidable. The Iterative model is the only way to deliver the software quickly and readily.
Rapid Application Development is a lifecycle for development which is designed to give speedy development work with high quality outputs as compared to traditional model development approaches
RAD consists of four phases.
- Requirements planning phase
- User design phase
- Constructions phase
- Cutover phase
It is often difficult for the common users to create actual requirement for the project and prototype model was developed keeping in view this basic fact. In prototype model the developer develops a sample design or mock-up for the system and that model is shown to client. Client then views it and comments. Upon several discussions the developer thus prepares the requirements and thus develops the actual development.
Various methods are being used while doing prototype like designs showing screen shots for inputs and outputs, using existing system as prototype to suggest enhancements and developing abbreviated or short system to depict the prototype view of the system.
The software development field has seen development of many models for development purposes. Most of them were considered to be non-practical due to one reason or the other. That brought forth the need for a novice method and hence new method called Agile was developed. Agile methodology can be termed as the looking into client requirements and responding to any changes required. It is said to most effective for responding to client requirements and changing development accordingly.