0% found this document useful (0 votes)
11 views

Chapter 2 - Software Process Models

Uploaded by

muscabahmet68
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

Chapter 2 - Software Process Models

Uploaded by

muscabahmet68
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 28

Amoud University

Faculty of ICT
Department of Software
Engineering

Course: Software Engineering

Chapter 2 - Software
Development Life Cycle SDLC
Software Development
Life Cycle (SDLC)

The Software Development Life Cycle (SDLC) is


a structured process that outlines the steps involved
in developing software applications.
SDLC provides a framework for planning, designing,
building, testing, and deploying software systems.
SDLC ensures that software meets the required
quality standards and satisfies the needs of
stakeholders.
SDLC
Definition:
SDLC models provide a structured planning for
creating managing software development projects.
Software process models define the approach to be
taken during the software development lifecycle
(SDLC).
They define the stages in software creation, the order
of these stages, and the flow of activities.
They provide a structured framework that guides the
software development process through various stages,
ensuring a systematic approach to creating software
products.
Purpose:
Toensure a systematic approach for delivering high-
quality software.
Helps teams to estimate project timelines, allocate
Phases of the SDLC
The SDLC typically consists of the following
phases:

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:

• Emphasis on documentation and formal review at the end of


each phase.
• No overlapping of phases.
Waterfall Model
•Advantages:
• Easy to understand and manage due to its
straightforward nature.
• Works well for small projects with clear, fixed
requirements.
•Disadvantages:
• Inflexible to changes; making changes is costly if
requirements evolve.
• Testing comes late in the process, so issues may be
discovered too late.
•Best Applied When:
• Requirements are well understood, and changes are
unlikely.
• Projects are small with a short duration.
Waterfall Model Phases:
•Requirements Analysis
•System Design
•Implementation
•Integration and Testing
•Deployment
•Maintenance
V-Model (Verification and Validation
Model)

•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.

Best Applied When:


•Clear understanding of requirements is available.
•Safety-critical applications where testing is crucial,
such as medical software.
Phases:
•Requirement Specifications ↔
Acceptance Testing
•System Design ↔ System Testing
•Design ↔ Testing
•Module Design ↔ Unit Testing
Incremental Model

•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

•Continuous testing and feedback


Agile Model

•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.

Best Applied When:


•Requirements are expected to change frequently.
•Projects benefit from continuous user feedback and
iterative improvements.
Phases Agile Model

•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.

Best Applied When:


•Large, complex projects with high levels of risk.
•Projects where requirements are not clearly defined at the outset.
Phases Spiral Model

•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.

Best Applied When:


• Requirements are unclear or rapidly changing.
• High interaction with end-users is needed for system
development.
Phases Prototype Model

•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.

Best Applied When:


•Projects with a short time frame.
•User feedback is essential, and requirements are well
understood.
Phases RAD Model (Rapid
Application Development)

•Business Modeling
•Data Modeling
•Process Modeling
•Application Generation
•Testing and Turnover
END

You might also like