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

Software Engineering

It is about the different software life cycle models
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

Software Engineering

It is about the different software life cycle models
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

Alternative Software

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

What are Software Development Models?


Software development models are structured methodologies used to
guide the process of software creation, from planning to
deployment.
Why Alternative Models?
● To adapt to changing user requirements.
● To manage risks and complexities in projects.
● To improve efficiency and deliver high-quality software.

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.

2. Increment Design: Plan the design for the current


increment, ensuring compatibility.

3. Increment Development: Develop the specific features


or functionalities of the current increment.
Process of Incremental Model
4. Increment Testing:Test the new increment individually and ensure it
integrates well.

5. Integration: Combine the increment with developed parts and


conduct system testing.

6. Delivery: Deliver the increment to stakeholders for feedback and


adjustments if needed.

7. Repeat Process:Continue the process for the next increment until


entire system completes.
When to use the Incremental Model

● Used when the requirements of the complete system are clearly


defined and understood
● Most of the requirements are known up-front but are expected to
evolve over time
● There is a need to get a product to the market early
● When the software can be broken into increments and each
increment represent a solution
● When staffing is not available by deadline
● On projects which have lengthy development schedules
● On a project with new technology
Advantages
● Develops working software quickly and easily during the software life
cycle
● Develop high-risk or major functions first
● Customer can respond to each build
● Uses “divide and conquer” breakdown of tasks
● It is easier to test and debug during a smaller iteration
● Lowers initial delivery cost
● Initial product delivery is faster
● It is easier to test and debug during a small iteration
● Each release delivers an operational product
● More flexible and less costly to change scope and requirements
10
Disadvantages

● Requires good planning and design


● Requires early definition of a complete and fully
functional system to allow for the definition of
increments
● Well-defined module interfaces are required (some will
be developed long before others)
● Total cost is higher than waterfall model

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-

● Iterative and incremental in nature.


● Focuses on risk assessment and mitigation in each cycle.
● Cyclic process with continuous improvement and feedback.
13
Risk handling in Spiral Model

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

○ Develop and test the system increment


for the current iteration.
○ This includes design, coding, and unit
testing.

4. Evaluation Phase:

○ Stakeholders evaluate the developed


increment.
○ Gather feedback for improvement.
○ Decide whether to proceed to the next
spiral or terminate the project.

16
Advantages

● Changing requirements can be accommodated.


● Provides early indication of insurmountable risks, without much cost.
● Allows for extensive use of prototypes.
● Critical high-risk functions are developed first.
● The design does not have to be perfect.
● Requirements can be captured more accurately.
● Users see the system early.
● Early and frequent feedback from users.
Disadvantages

● 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

● When creation of a prototype is appropriate


● When costs and risk evaluation is important
● For medium to high-risk projects
● Long-term project commitment unwise because of potential changes
to economic priorities
● Users are unsure of their needs
● Requirements are complex
● New product line
● Significant changes are expected (research and exploration)
Open Source Software
The software which aligns with these principles providing users with these essential
freedoms:

• 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

You might also like