Chapter 2 - Software Process Models
Chapter 2 - Software Process Models
Faculty of ICT
Department of Software
Engineering
Chapter 2 - Software
Development Life Cycle SDLC
Software Development
Life Cycle (SDLC)
Requirement Analysis:
System Design:
Implementation (Coding):
Testing
Deployment:
Importance of SDLC
•Quality Assurance: Ensures that each phase is
completed correctly before moving on to the next,
which helps in building high-quality software.
•Cost Efficiency: Identifying issues early in the SDLC
helps to reduce costs related to fixing defects.
•Project Management: Provides a clear roadmap,
making it easier to manage resources, timelines, and
deliverables.
•Risk Management: Helps identify risks early and
manage them effectively throughout the software
development process.
Common SDLC Models
Waterfall Model
Agile Model
V-Model
Spiral Model
Incremental Model
Prototype Model
RAD Model (Rapid Application
Development)
Waterfall Model
Overview:
• The Waterfall Model is a linear sequential approach where
each phase must be completed before the next one begins.
• Phases include Requirement Analysis, System Design,
Implementation, Testing, Deployment, and Maintenance.
•Characteristics:
•Overview:
• The V-Model is an extension of the Waterfall Model
that emphasizes testing at each development stage.
• For every phase in the development cycle, there is a
corresponding testing phase.
• Example: Design is matched with Design Verification
(unit testing).
•Characteristics:
• The development process forms a “V” shape,
illustrating that testing is planned alongside
development.
• Testing phases include unit testing, integration
testing, system testing, and acceptance testing.
V-Model (Verification and Validation
Model)
Advantages:
•Focus on validation ensures early detection of
Errors.
•Clear structure, easy to manage and track
progress.
Disadvantages:
•Same limitations as Waterfall in terms of handling
changing requirements.
•less flexible.
•Overview:
•The Incremental Model develops software in
small, manageable increments or builds.
•Each increment adds new features or
improvements to the software.
•Characteristics:
•Combines the elements of iterative and
waterfall models.
•The product is delivered in multiple
releases, with each release providing a
usable subset of the software.
Incremental Model
• Advantages:
• Allows partial implementation of the software, which can be
useful for time-sensitive projects.
• Users can provide feedback on each increment, improving
overall quality.
• Disadvantages:
• Requiresgood planning and design to ensure that
increments integrate well.
• More management effort required compared to a single-
phase model.
• Best Applied When:
• Requirements are defined but need some refinement
through user feedback.
• Large projects that can be broken down into smaller,
deliverable pieces.
Phases Incremental
Model:
•Initial planning
•implementation of features
•Overview:
• Agile emphasizes iterative development, where
requirements and solutions evolve through
collaboration between cross-functional teams.
• Common frameworks include Scrum, Kanban, and
Extreme Programming (XP).
•Characteristics:
• Focus on working software delivered frequently
(usually in 2-4 week iterations called sprints).
• Emphasizes customer collaboration, flexibility, and
responsiveness to change.
Agile Model
Advantages:
•Highly adaptable to changing requirements, providing
better user satisfaction.
•Frequent delivery of small, working features allows for
early user feedback.
Disadvantages:
•Less focus on documentation can lead to challenges in
maintaining code.
•Can be challenging for larger projects without
experienced Agile practitioners.
•Requirements Gathering
•Design
•Development
•Testing
•Deployment
•Feedback and Iteration
Spiral Model
•Overview:
• The Spiral Model combines iterative development
with systematic risk analysis.
• The development process moves through four
phases: Planning, Risk Analysis, Engineering, and
Evaluation, repeated in a spiral pattern.
•Characteristics:
• Focuses heavily on risk assessment and minimizing
risks through prototypes and user feedback.
• Each loop represents a phase of the software
process.
Spiral Model
Advantages:
•Risk management reduces the likelihood of project failures.
•Allows for the incorporation of user feedback at early stages.
Disadvantages:
•Complex and expensive to implement due to continuous risk
analysis.
•Not suitable for small or low-risk projects.
•Planning
•RiskAnalysis
•Engineering
•Evaluation
Prototype Model
•Overview:
•In the Prototype Model, a working prototype
or model of the software is developed early
in the process to understand user
requirements.
•Characteristics:
•Users interact with the prototype and
provide feedback, which is used to refine
requirements.
•The final system is developed after user
feedback is incorporated into the prototype.
Prototype Model
Advantages:
• Reduces ambiguity in requirements, resulting in more
accurate specifications.
• Users have a clear vision of the final product.
Disadvantages:
• Can lead to scope creep as users request more
changes during the prototype phase.
• Developing prototypes can be time-consuming.
•Requirements Gathering
•Quick Design
•Prototype Development
•Customer Evaluation
•Refinement
RAD Model (Rapid Application
Development)
•Overview:
•RAD focuses on rapid prototyping and iterative
delivery with minimal planning.
•Uses tools and reusable components for quick
software development.
•Characteristics:
•Focuseson user involvement and adaptability.
•Development time is reduced through the use
of component-based construction.
RAD Model (Rapid Application
Development)
Advantages:
•Faster delivery of projects.
•Reduces development time and effort.
Disadvantages:
•Requires highly skilled developers and users
available for feedback.
•Not suitable for complex, large-scale projects.
•Business Modeling
•Data Modeling
•Process Modeling
•Application Generation
•Testing and Turnover
END