Software Development Life Cycle Model
Software process model is a Software Development Life cycle Model or Software paradigm. Software development life cycle (SDLC) model is a diagrammatic representation of various activities required to make software product. Along with this diagrammatic representation description of each phase of the SDLC must be given. Each phase of software life cycle consists various activities to develop the software product gradually. The software life cycle also specifies the order in which each phase must be executed.
The basic activities that can be carried out in life cycle model are –
1) Feasibility study
2) Requirement analysis and specification
These are typically called phases of life cycle model. Various software development activities that can be carried out in different phases of SDLC may differ from model to model.The process model can be defined as an abstract representation of process. The process model is chosen based on nature of software project.
There are various life cycle models and those are :
1) Waterfall Model – It is also called “linear sequential model” or “classic life cycle model”. It is the oldest paradigm. This model suggests a systematic,sequential approach to software development.The software development starts with requirements gathering phase. Then progresses through analysis, design,coding, testing and maintenance.
- The requirement analysis is done initially and sometimes it is not possible to state all requirements explicitly in the beginning. This causes difficulty in the project.
- The customer can see the working model of the project only at the end.
2) Prototyping Model – In prototyping model initially the requirement gathering is done. Developer and customer define overall objectives; identify areas needing more requirement gathering. Then quick design is prepared. From a quick design a prototype is prepared. Customer or user evaluates the prototype in order to refine the requirements. Thus, prototype is important to identify the software requirements.
When the developer is unsure of the efficiency of an algorithm or the
adaptability of an operating system then prototype serves as a better choice.
In the first version itself, customer often wants “few fixes” rather than rebuilding of the system, whereas rebuilding of new system maintains high level of quality.
3) Spiral Model -This model possess the iterative nature of prototyping model and controlled and systematic approaches of the linear sequential model.This model gives efficient development of incremental versions of software. In this model, the software is developed in series of increments. The spiral model is divided into a number of framework activities. These framework activities are denoted by task regions.
- Requirement changes can be made at every stage.
- Risks can be identified and rectified before they get problematic.
- It is based on customer communication.
- It demands considerable risk assessment.
4) Rapid Application Development Model – The rapid application developmental model is type of incremental software process model in which there is extremely short development cycle. This model is similar to waterfall model which achieves the high speed development using component based construction. To develop the fully functional system within short time period using this model it is necessary to understand the requirements fully and to have a restricted project scope.
It has short developmental cycle.
- It requires heavy resources.
- It finds difficult to adopt new technologies.
5) Incremental Model – The incremental model has same phases that are in waterfall model.But it is iterative in nature. It has the following phases:
1. Analysis 2. Design 3. Code 4.Test
The incremental model delivers series of releases to the customer. These releases are called increments. More and more functionality is associated with each increments. The first increment is called core product. in this release the basic requirements are implemented and then in subsequent increments new requirements are added.
- The incremental model can be adopted when there are less number of people involved in the project.
- Technical risks can be managed with each increments.
It can only be used when requirements are reasonably well-defined.
6) Component Assembly Model – It uses object oriented technologies.In object oriented technologies, the emphasis is on creation of classes. Classes are the entities which encapsulates data and algorithms. It uses various characteristics of spiral model. This model is evolutionary by nature. Hence software development can be done using iterative approach. This model uses multiple classes . These classes are basically the prepackaged components.
This model emphasizes on reusability of software components. This reusability of component reduces the development cycle by 70% and project cost by 84%.
Need for software development life cycle model –
The software development team must decide the life cycle model that is to be used for software product development and then the entire team must adhere to it. This is necessary because the software product development can then be done systematically. Each team member will understand – what is the next activity and how to do it. Thus life cycle model will bring the definiteness and discipline in overall development process.
Every life cycle model consists of definite entry and exit criteria for each phase. Hence the transition of the product through various phases is definite. If the life cycle mode is not followed for software development than any team member can perform any software development activity, this will ultimately cause a chaos and software product will definitely fail without using life cycle model, it is difficult to monitor the progress of software product.