Go through Strategy for IT OFiicers exam here
SDLC Models
Waterfall Model
- Introduced by Winston Royce in 1970.
- Its a sequential, non-iterative design process, flowing downwards (like a waterfall).
- Different phases followed in order are as follows:
- Requirement Analysis - requirements are gathered from client and captured in a document.
- System Design - which programming language, databases to use and other technical details
- Implementation - the actual coding starts here!
- Testing - Unit test the product in dev environment, perform various other testings in quality environment and make sure code is bug-free.
- Deploy - Move the application/product to production environment (go live)
- Maintenance - Provide post production support, user training etc.
V Model
- In this model, SDLC and STLC (Software Testing Life Cycle) are integrated with each other i.e a testing phase corresponding to the development phase.
- Verification and Validation happens side by side as it is important to fix bugs in the early phases only to avoid huge costs later.
- Verification phases include:
- Requirements analysis
- System design
- Architecture design
- Module design
- Validation phases include:
- Unit testing
- Integration testing
- System testing
- User acceptance testing
- It is criticized for being rigid and only slightly differing from waterfall model.
Iterative/Incremental Model
- In this model, more than 1 iteration of SDLC is at work at same time i.e the project is built incrementally.
- At each iteration, design modifications are made and functional capabilities are added.
- Highest priority requirement is handled first and sub systems produce a final total system.
- It is mostly used in situations where an early demand of release is there, requirements are clearly understood and high-risk features are involved.
Spiral Model
- Introduced by Barry Boehm in 1986.
- Its a combination of waterfall and iterative model.
- Each phase begins with a design goal and ends with review by client.
- Additional functionality is added in increasing spirals until the application is ready.
- Main phases involved are as follows:
- Planning - estimate cost, schedule and resources.
- Risk analysis - finalize the risk mitigation strategy
- Engineering - coding, testing and deployment.
- Evaluation - Customer evaluation including time and cost over runs etc.
Agile Model
- Comparatively a newer one as in today's scenario, requirements keeps on evolving so adaptive planning and development are required.
- The product is developed in incremental, rapid cycles. Interactions among developers, customers and clients happen (daily scrum) so that everything is in sync while evolving.
- Some notable agile practices include:
- Domain drive design
- Continuous integration
- Scrum events
- Acceptance test driven development
- Velocity tracking
- One major advantage is that changes can be made at any time and disadvantage is that constant client interaction adds time pressure on all teams.
Prototyping
- In this model, a semi-functional simulation model of the actual system is made.
- Developers and clients interact to understand and freeze the basic requirements.
- Lessons learned from prototype are retained and used in subsequent development phases.
Quote of the day
Do not wait to strike till the iron is hot. Make it hot by striking.