Software Engineering
Software Engineering
Development Models
Bhavika Gupta
Gitika Singh
Prakarti Walia
Surbhi Aggarwal
Shriya Manuja
1
Tanishka Visen
Index
● Introduction
● Iterative Enhancement Model
● Incremental Model
● Spiral Model
● Open Source Software and its Life Cycle
2
Introduction
3
Iterative Enhancement Model
• The Iterative Enhancement Model is a software development approach where software is
developed and refined incrementally over multiple iterations.
• Each iteration delivers a functional part of the system, which is reviewed, enhanced, and
expanded in the next cycle.
Process:
1. Initial Prototype: Start with a basic version of the
software.
2. Iteration Cycles:
○ Analyze user feedback.
○ Enhance the software with new features or
fixes.
○ Test and validate changes.
3. Final Product: Continue refining until the system
meets all requirements.
Advantages
● Improves software progressively.
● Allows flexibility to incorporate changes.
● Better user satisfaction through regular feedback.
● Results are obtained early and periodically.
● Progress can be measured.
● Less costly to change the scope/requirements.
● Risks are identified and resolved during an iteration; and each
iteration is an easily managed milestone.
● Easier to manage risk - High risk part is done first.
● With every increment operational product is delivered.
● Issues, challenges & risks identified from each increment can be
utilized/applied to the next increment.
5
Disadvantages
● High resource requirements.
● Although cost of change is lesser but it is not very suitable for
changing requirements.
● More management attention is required.
● Not suitable for smaller projects.
● Each phase of an iteration is rigid with no overlaps.
● System architecture or design issues may arise because not all
requirements are gathered up front for the entire life cycle.
● Does not allow iterations within an increment.
● Defining increments may require definition of the complete system.
● Testing at every iteration can be time-consuming.
6
Incremental Model
• The Incremental Model is a software development process where the system is
developed and delivered in small, functional increments.
• Each increment adds functionality to the previous release until the complete
system is built.
Process:
1. Requirements Analysis: Break down the system into
smaller, prioritized requirements for incremental delivery.
11
Spiral Model
Introduction to spiral model
The Spiral Model is a risk-driven process model used in software development,
emphasizing risk analysis and iterative refinement. It combines elements of both
the waterfall model and iterative development, making it suitable for large,
complex, and high-risk projects.
Key Characteristics-
● Helps manage unforeseen risks that may arise after the project has
commenced
● Addresses the limitations of prototyping model in the real world
● Each phase involves evaluating the product's features
● Highly adaptable and flexible
Phases of a spiral model
The model is structured into four major phases that
repeat in cycles (or spirals):
1. Planning Phase:
○ Define system requirements.
○ Identify objectives, alternatives, and
constraints.
○ Estimate cost and schedule for the next
iteration.
2. Risk Analysis Phase:
○ Identify and assess risks associated with
the project.
○ Develop risk mitigation strategies.
○ Use prototypes or simulations to validate
solutions for high-risk components.
15
Phases of a spiral model
3. Engineering Phase:
4. Evaluation Phase:
16
Advantages
● Time spent for evaluating risks too large for small or low-risk projects
● Time spent planning, resetting objectives, doing risk analysis and
prototyping may be excessive
● The model is complex
● Risk assessment expertise is required
● Spiral may continue indefinitely
● Developers must be reassigned during non-development phase
activities
● May be hard to define objective, verifiable milestones that indicate
readiness to proceed through the next iteration
When To Use Spiral Model
• Users have the right to run the program for any purpose.
• Users can study how the program works and modify it to meet their specific
needs. Access to the source code is a prerequisite for this freedom.
• Users can redistribute copies of the program, either for free or for a fee.
• Users have the right to improve the program and release their modified
versions for the benefit of the community.
Users of this software do not pay royalties or licensing fees. Unlike proprietary
software, these programs are not bound by restrictive copyright terms, fostering
openness and collaboration.
20
Advantages
● Collaborative development enables parallel efforts through shared
source code and reuse.
● Continuous feedback and peer review enhance the quality of the
software.
● A diverse, global pool of skilled and motivated professionals
contributes to creating high-quality products.
● Users are considered co-developers, fostering active participation in
improvement.
● Quick release cycles enable rapid deployment of updates and features.
● Open Source Software (OSS) can be freely tested without incurring
licensing costs.
● A loosely centralized yet cooperative community drives development
and innovation.
21
Disadvantages
● The absence of formal management structures can slow progress and
lead to disorganized development
● Close user involvement may introduce bureaucratic inefficiencies,
while the meritocratic, ego-driven community can result in feature
creep and over-complexity, overshadowing simplicity.
● Rapid release cycles, though beneficial, may create challenges in
managing iterations, release planning, and deciding on features for
new versions.
● Development often focuses on advanced, technical users, with less
attention given to non-technical audiences, making the software less
accessible.
● Confusion around licensing models can further complicate adoption
and contribution.
22
Open Source Project Life Cycle
● Introduction: The project is
launched, gaining initial contributors
and defining its purpose.
● Growth: The community expands,
contributions increase, and the
software gains wider adoption.
● Maturity: The software stabilizes,
with established features and a
steady user base.
● Decline/Revive: Interest wanes, but
the project may either fade or be
revitalized through updates or
community-driven efforts.
THANK YOU!
24