There are a number of models of software development, each with a somewhat different approach to implementing the various phases of the systems development life cycle.
Learn about these models in this video lesson.
Systems Development Life Cycle
System development is the process of defining, designing, testing and implementing a software application. This includes the internal development of customized systems as well as the acquisition of software developed by third parties. A system development project includes all the activities from the time a potential requirement has been identified until the system has been fully implemented.The systems development life cycle, or SDLC, is the process of creating systems and the models used to develop these systems.
A typical SDLC includes a number of different phases, such as requirements analysis, software design, software coding, testing and debugging, installation and maintenance. This life cycle is implemented using a software development process. There are a number of models of software development, each with a somewhat different approach to implementing the various phases of the life cycle.
Models of Software Development
The waterfall model of software development follows a very sequential design process. It is also referred to as a linear-sequence life-cycle model. In this model, progress is seen as flowing downwards through various phases, like a waterfall. The phases include initiation and conception, requirements analysis, software design, construction (or coding), testing and debugging, installation and maintenance.
The basic premise of the waterfall model is that you only move to the next phase when the preceding phase is completed successfully. This approach works well for projects that are relatively simple.The V-model is an extension of the waterfall model.
Instead of moving down in a linear way, the process steps go upwards after the coding phase to form a V shape. This shape demonstrates the relationship between each early phase of development and the associated testing phase. In this approach, testing procedures are developed early in the life cycle, even before any coding is done. Testing holds a much greater emphasis here compared to the waterfall model.The iterative and incremental model employs a cyclical approach. It starts with an initial planning phase and ends with deployment, with cyclic interactions taking place in between.
The approach is incremental since it divides the functionality into small increments, which are developed and tested over one or more iterations.The software prototyping model relies on creating and testing prototypes of software applications. A prototype is a simple, incomplete version of the software being developed. An initial prototype is developed that meets some of the very basic requirements but lacks many of the details. The initial prototype is tested and reviewed, and the feedback is used to improve the prototype.The spiral model combines elements of various other models, the waterfall and prototyping models in particular.
It is typically used for large and complicated projects. The approach starts with a small prototype, which is followed by a short version of the waterfall process. This is mostly to gather requirements. The first prototype is reviewed, and in subsequent loops, additional requirements are identified, and a more detailed design is developed and implemented.
A number of models rely on the use of prototypes. A prototype demonstrates the main features of the system without all of its detailed functionality. Prototyping can be used in a number of different ways; for example to identify requirements, to demonstrate the technical feasibility of a proposed system and to convince people a particular system is worth developing.A prototype approach to software development places a strong emphasis on users. When a prototype is built, a user can decide whether she likes it or not. Feedback from the user is applied in the next version of the prototype
Rapid Application Development
One approach to software development that has gained a lot of interest in recent years is rapid application development, or RAD. This approach uses an iterative process and relies heavily on the use of prototypes.
Developers and end users are closely working together during all stages of system development.RAD uses prebuilt components from various programming languages to build prototypes very quickly. The system is built one segment at a time, and these segments are tested while the entire system is being built. The use of prototyping makes it easier to find out whether segments are working in the early stages of development.
In a more traditional approach, the analysis and design stage can take up a fair amount of time and effort. In contrast, the analysis and design stage in RAD is very quick, and the details of the design are developed during various prototype cycles. A number of variations on RAD have been developed, including agile software development, scrum software development and extreme programming. These approaches combine elements of rapid prototyping, iteration through cycles and responsiveness to requirements.
- A typical systems development life cycle includes a number of different phases, such as requirements analysis, software design, software coding, testing and debugging, installation and maintenance.
- There are different approaches to implement the various phases of the life cycle. The most important ones are the waterfall model, the V-model, the iterative and incremental model, the prototyping model and the spiral model.
- Prototypes are widely used in system development.
They demonstrate the main features of the system without all of its detailed functionality.
- Rapid application development (RAD) uses an iterative process to build and test prototypes very quickly.
After this lesson, you should have the ability to:
- Summarize different phases in a systems development life cycle
- Describe the various models of software development
- Identify the purpose of the prototyping model
- Explain rapid application development