Software development life cycle model phases:
- Requirement gathering and analysis
- Design
- Implementation or coding
- Testing
- Deployment
- Maintenance
SDLC models:
- Waterfall Model
- Iterative Model
- Spiral Model
- V-Model
- Big Bang Model
Waterfall Model
First Process Model. Each phase must be completed before proceeding to the next phase without any overlapping in the phases.
Some situations where it is most appropriate:
- Requirements are very well documented, clear and fixed
- Technology not dynamic
- Ample resources with required expertise available
- Short project
- does not allow for much reflection or revision.
- No working software is produced until late during the life cycle.
- Once an application is in the testing stage, it is very difficult to go back and change something
Disadvantage
- does not allow for much reflection or revision.
- No working software is produced until late during the life cycle.
- Once an application is in the testing stage, it is very difficult to go back and change something
Iterative Model
Whole requirement is divided into various builds. During each iteration, the development module goes through the requirements, design, implementation and testing phases. Each subsequent release of the module adds function to the previous release.
Some situations where it is most appropriate:
- Major requirements must be defined, some functionalities or requested enhancements may evolve with time.
- A new technology is being used and is being learnt by the development team while working on the project.
- Resources with needed skill set are not available and are planned to be used on contract basis for specific iterations.
- There are some high risk features and goals which may change in the future.
Disadvantage
- Applicable only to large and bulky software development projects.
Spiral model
Combination of iterative development process model and sequential linear development model i.e. waterfall model with very high emphasis on risk analysis.
The spiral model has four phases.
- Identification
- Design
- Construct or Build
- Evaluation and Risk Analysis
Uses of Spiral model:
- budget constraint and risk evaluation
- Long-term project commitment
- Complex
- Significant changes are expected in the product during the development cycle.
Disadvantage
Complex management as there is a risk of running the spiral in indefinite loop. Not suitable for small or low risk projects as its expensive.
V-Model
Extension of the waterfall model and is based on association of a testing phase for each corresponding development stage. There are Verification phases on one side and Validation phases on the other side with Coding phase in between.
Verification phases are:
- Business Requirement Analysis
- System Design
- Architectural Design
- Module Design
Validation phases in V-Model:
- Unit Testing – Testing at code level and helps eliminate bugs at an early stage
- Integration Testing – Testing the coexistence and communication of the internal modules within the system.
- System Testing – Testing entire system functionality and the communication of the system under development with external systems. Most of the software and hardware compatibility issues are covered.
- Acceptance Testing – Testing the product in user environment to check the non-functional issues such as load and performance defects.
Uses:
- Requirements are well defined, clearly documented and fixed.
- Product definition is stable and short.
- Technology is not dynamic.
Disadvantage
Not a good model for long and complex and object-oriented projects. No working software is produced until late during the life cycle.
Big Bang Model
Focusing all the possible resources in software development and coding, with very little or no planning. Ideal for small projects
Advantages
- Easy to manage
- Very few resources required
- Gives flexibility to developers
- Good learning aid for new comers or students
Disadvantages
- Very High risk and uncertainty.
- Not a good model for long and complex and object-oriented projects.
- Can turn out to be very expensive if requirements are misunderstood.
Agile Model
Breaks the product into small incremental builds which are provided in iterations. Each iteration lasts about 1-3 weeks and involves cross functional teams working simultaneously on various areas like planning, requirements analysis, design, coding, unit testing and acceptance testing.
Iterative approach is taken and working software build is delivered after each iteration. Each build is incremental in terms of features; the final build holds all the features required by the customer.
The most popular agile methods include Rational Unified Process (1994), Scrum (1995), Extreme Programming (1996), Adaptive Software Development and Dynamic Systems Development Method (DSDM) (1995).
- Agile uses adaptive approach where there is no detailed planning and there is clarity on future tasks only in respect of what features need to be developed.
- Team adapts to the changing product requirements dynamically.
- The product is tested very frequently, through the release iterations, minimizing the risk of any major failures in future.
- Customer interaction is the backbone of Agile methodology, and open communication with minimum documentation are the typical features of Agile development environment.
- The agile teams work in close collaboration with each other and are most often located in the same geographical location.
Disadvantages
- Not suitable for handling complex dependencies.
- An agile leader and agile PM practice is a must.
- Depends heavily on customer interaction.
- High individual dependency and transfer of technology to new team members quite challenging, since there is minimum documentation generated.
Different types of software prototypes:
- Throwaway/Rapid Prototyping
- Evolutionary Prototyping
- Incremental Prototyping
- Extreme Prototyping









