Software Development Life Cycle models part2
Software Development Life Cycle models part2
They define a systematic approach to break the software development process into
manageable phases, ensuring quality, efficiency, and alignment with user needs.
Each SDLC model describes the order of activities and focuses on key objectives such as risk
management, user involvement, or rapid delivery. The choice of model depends on project
requirements, complexity, and stakeholder expectations.
1. Waterfall Model
Overview:
The Waterfall Model is a sequential design process in which progress flows steadily through
phases like Requirement Analysis, Design, Implementation, Testing, Deployment, and
Maintenance.
Phases of the Waterfall Model
1. Requirement Analysis:
o Gather all project requirements from stakeholders.
o Document the requirements for future reference.
o Outcome: A detailed Requirements Specification Document.
2. System Design:
o Create system architecture based on the requirements.
o Break down the system into modules and define data flows.
o Outcome: Design Documents like DFDs, ERDs, or UML diagrams.
3. Implementation (Coding):
o Developers write the code based on the design.
o Focus on building each module independently and integrating them.
o Outcome: Executable Code.
4. Testing:
o Test the system for bugs and ensure it meets the requirements.
o Includes unit testing, integration testing, system testing, and acceptance testing.
o Outcome: A stable, bug-free product.
5. Deployment:
o Deliver the product to the client for real-world use.
o May involve installation and setup in the client’s environment.
o Outcome: A deployed software system.
6. Maintenance:
o Perform updates, bug fixes, and improvements based on user feedback.
o Ensure the system remains operational and relevant over time.
o Outcome: Long-term system upkeep.
Advantages:
1. Simple and Easy to Understand: Each phase is well-defined and does not overlap.
2. Ideal for Small Projects: Works well for projects with clear and stable requirements.
Disadvantages:
When to Use:
Overview:
The Prototype Model involves building a working prototype of the system to understand
requirements better before full-scale development.
The Prototype Model is a software development approach that focuses on creating a working
prototype early in the development process to better understand and refine the system's
requirements. This prototype is an initial version or representation of the final product that
demonstrates its core functionalities.
The key idea is iterative refinement—feedback from users or stakeholders is gathered, and the
prototype is updated until the final requirements are understood and approved.
1. Requirement Gathering:
o Initial requirements are collected, focusing on features that are unclear or need
user input.
o High-level functional requirements are identified.
2. Quick Design:
o A basic design of the system is created, focusing on the critical areas.
o Includes a user interface mock-up or a simple model to demonstrate the main
functionalities.
3. Prototype Development:
o A working prototype is built based on the quick design.
o The prototype includes key features but is not a complete or final version of the
product.
4. User Evaluation:
o Stakeholders or end-users evaluate the prototype.
o Feedback on the functionality, interface, and usability is collected.
5. Prototype Refinement:
o Based on the feedback, the prototype is refined and re-evaluated in subsequent
iterations.
o This process continues until the requirements are clearly defined and approved.
6. Final Development:
o Once the prototype is accepted, the actual development begins using the final,
refined requirements.
o The prototype may or may not be discarded.
Advantages:
Disadvantages:
When to Use:
Overview:
The Spiral Model is a risk-driven software development model that combines elements of the
Waterfall Model and iterative development. It emphasizes continuous refinement of the product
through repeated cycles (or iterations) called "spirals." Each spiral consists of four phases:
planning, risk analysis, engineering, and evaluation.
It is particularly suited for large, complex, or high-risk projects, where understanding and
addressing risks early is critical.
1. Planning Phase:
o Identify objectives for the current iteration.
o Gather initial requirements or refine existing ones.
o Plan activities and resources for this spiral.
o Outcome: A detailed plan for the iteration.
2. Risk Analysis Phase:
o Identify risks associated with the project or iteration (e.g., technical, cost,
schedule risks).
o Evaluate and analyze risks to prioritize mitigation strategies.
o Develop prototypes or models to mitigate identified risks.
o Outcome: Risk assessment document or prototype.
3. Engineering Phase:
o Develop and test the product for this iteration.
o Includes design, coding, and testing activities.
o Outcome: A working version of the software.
4. Evaluation Phase:
o Deliver the product increment to stakeholders or end-users for evaluation.
o Gather feedback to refine requirements for the next iteration.
o Outcome: Stakeholder feedback and updated requirements.
Advantages:
Disadvantages:
1. Expensive: Complex and costly due to risk management and iterative cycles.
2. Requires Expertise: Needs skilled professionals to manage risks and iterations.
When to Use:
Overview:
The agile model refers to the iterative approach to delivering a software product. This means that
instead of delivering a large project only when all parts are complete, a team breaks down a large
project into smaller parts, and delivers these completed smaller parts in regular cycles.
For example, using the agile model a developer delivers multiple releases of a product and each
release could add a feature, such as drop-down menus, checkboxes, or multiple-choice buttons.
The final release would contain all features.
The Agile Model is a flexible and iterative approach to software development, emphasizing
collaboration, customer feedback, and adaptive planning. It focuses on delivering small, functional
parts of the system (called increments) in short development cycles known as iterations or sprints. Agile
allows teams to quickly respond to changing requirements and priorities.
Advantages:
Disadvantages:
When to Use: