Software Development Life Cycle model is process used by industries to design, develop & make high quality software’s that satisfies the customers need. It’s kind of software development process.
Stages/Phases in the SDLC
- Planning & Requirement Analysis:
In this phase client gave its requirements. Market survey, sales and several process took place here and via all, system analyst make a documented format about final product.
- Defining & Designing:
In defining and designing a brief prototype is made and by this prototype one can make all suitable need & procedure that can implemented when project goes into building form.
It is done through SRS i.e, Software Requirement Analysis.
- Building or Coding:
In building phase or coding phase one can implement design patterns. Use high level language according to the product design and simultaneously test small code packages called classes or as a part of unit testing.
In testing phase one can test small units that is unit testing and composition of that small products that is integration testing at time of integrating software’s.
Deployment is the process of the release of final product into usable format and via this firstly companies release them in limited quantity after that according to feedback of market, company release them into required quantity. After this company do maintenance work on the product they launch.
There are several software models which are followed in the Software Development Life Cycle.
- Waterfall model
- Iterative model
- Spiral model
- Big Bang model
- RAD model
- Agile model
- Waterfall model:
Waterfall model is first model that came in existence for process. It is also called as linear sequential life cycle model.
The sequential phases in Waterfall model are
- Requirement Gathering and analysis:
All requirements related to the product are discussed and made here. After this discussion a well-documented format is made that is called as SRS Software Requirement Specification. This is particularly done by System Analyst.
- System Design:
In this phase a well formed prototype is made according to the requirement of the project and a theme line on which project will be done.
In this phase implementation is done or we can say that coding is performed on the given project and prototype using particular high level language according to the need of the software.
- Integration and Testing:
In this phase test is done on small parts that is called as Unit Testing and After Unit Testing after composition Integration Testing is done. It is most time taken phase in entire duration of a life cycle of a model.
- Deployment of system:
It is phase of final release of product in the market. In this software or product is release in the market in limited additions and after the feedback from the market it is further release in accordance with the quantity.
It is process of after deployment and feedback on the basis of which a team works on that and provide good services to the end customers.
Advantages Of Waterfall Model:
- Simple and easy to understand.
- Clearly defined stages.
- Process and results are well documented.
- Phases are completed one at a time.
- Works well for smaller projects that have complete requirement analysis.
Disadvantages Of Waterfall Model:
- No working software is completed until full software product is made.
- High risk and uncertainty is there.
- Not a good model for complex software’s design.
- Difficult to measure the progress under phases.
- Project is short with clearly defined goals and complete analysis with requirements.
- Technology is understandable & not dynamic.
- Iterative Model:
Iterative process starts with a simple implementation of a subset of the software requirements and iteratively enhances the evolving versions until the full system is implemented.
The key to a successful use of an iterative software development lifecycle is rigorous validation of requirements, and verification & testing of each version of the software against those requirements within each cycle of the model. As the software evolves through successive cycles, tests must be repeated and extended to verify each version of the software.
Advantages Of Incremental Model:
- Working functionality can be seen earlier in life cycle.
- Parallel design and work can be possible.
- Progress can be seen.
- Easier to manage risk.
- Supports changing requirements.
Disadvantage Of Incremental Model:
- More resources may require.
- Highly skilled resources are required for development.
- Management complexity is more.
This Spiral model is a combination of iterative development process model and sequential linear development model i.e. the waterfall model with a very high emphasis on risk analysis.
Spiral Model has four phases. A software project passes repeatedly through these steps so this model are called as spiral.
The following four phases are as follows:
- Construct or Build
- Evaluation and Risk Analysis
Identification: Identification phase is starts with gathering the business requirements, all the units and necessary requirements are made in this phase.
Design: The design phase starts with conceptual design logical design of modules in sub sequent spirals.
Construct or Build: The Construct phase refers to production of the actual software product at every spiral.
Evaluation and Risk Analysis: Risk Analysis includes identifying, estimating and monitoring the technical feasibility and management risks, such as schedule slippage and cost overrun.
Advantages of Spiral Model:
- Good for large and mission projects.
- Allows extensive use of software’s.
- Users can see product early.
- Additional functionality can add later.
Disadvantages of Spiral Model:
- Can be costly to use.
- Doesn’t work well for smaller projects.
- Risk analysis requires highly expertise.
Agile SDLC model is a combination of iterative and incremental process models. By deliver of product as it is that customer requires in their satisfaction.
It is used for time critical applications. Extreme programming is one of the most well-known agile development life cycle models.
Advantages of Agile Model:
- By rapid method doing continuous delivery of useful softwares.
- Frequent services of product delivery.
- Further late changes are welcome.
- Regular adaptation projects can be done via this model.
- F2F face to face communication is very well for actual requirements and right product so it’s advantage of this model.
Disadvantages of Agile Model:
- Complex dependencies are difficult to handle.
- There is more risk in maintainability and sustainability.
- If team members are changed then there is complexity in dividing task or difficulty in understanding them the code.
- It all depends on the customer interaction so if client or customer is not clear with the software then we have problems in deciding what exactly the product should be.
- There is a great importance of senior members in the projects so new comer developer or programmer has no place in this model of the software process.