Professional Documents
Culture Documents
Lect9 Methodologies SDLC
Lect9 Methodologies SDLC
2
Software Development Model
• A software development model is a series of processes that are carried out
by software development companies to develop software applications.
• Software development models thus serve as a blueprint for managing the end-to-
end software development pipeline.
• Each methodology works against the constraints of cost and resources, where
cost refers to time and money, while resources reflect human and infrastructural
resources.
Software Development Life Cycle
• The Software Development Life Cycle (SDLC) is a model that lays out the steps involved
in software development at each level.
• The complete process of software development models including all processes involved
in designing, developing, testing, and deploying a software product is described in the
Software Development Life Cycle.
• There are different software development models available currently. But none of them
are flawless, and each has its own set of benefits and drawbacks for a particular software
development project or team.
• Software development no longer followed a fixed approach. Faster deployments, rapid
releases, and improved coordination and collaboration became the criteria for choosing
the right software development methodology.
Stages of Software Development Life Cycle
Each of these stages adds value to the
software development process, thereby
aiding in building the application from
concept to program to usable application.
DISADVANTAGES
• A very rigid structure can be restrictive — each stage is dependent on the previous one.
• Not possible to revisit requirements after the first stage of the development cycle.
• The bigger the project, the more difficult it is to predict all project requirements in the first stage.
• Testing and deployment don’t take place until the final stages. The risk of encountering
unanticipated errors is, therefore, quite high.
• Mistakes are expensive to resolve and can negatively impact the predicted timeline.
WATERFALL MODEL
Use cases:
Use cases:
• Projects where failures and downtimes are unacceptable (e.g., medical software, aviation fleet
management software).
Incremental and Iterative Model
• The development process based on the
Incremental model is split into several
iterations (“Lego-style” modular software
design is required!).
• New software modules are added in each
iteration with no or little change in earlier
added modules.
• The development process can go either
sequentially or in parallel. Parallel
development adds to the speed of
delivery, while many repeated cycles of
sequential development can make the
project long and costly.
Incremental and Iterative Model
• With Iterative development software
changes on each iteration, evolves and
grows. As each iteration builds on the
previous one, software design remains
consistent.
• As software is delivered in parts, there is no
need for a full specification from the
project’s start and small changes to
requirements are possible in the course of
the development process. However, the
requirements can’t change radically – major
ones must be defined in the beginning.
Use cases:
• Large, mission-critical enterprise applications
that preferably consist of loosely coupled
parts, such as microservices or web services.
Spiral model
• The Spiral model puts focus on thorough risk
assessment. Thus, to reap the benefits of the
model to the fullest, you’ll need to engage
people with a strong background in risk
evaluation.
• A typical Spiral iteration lasts around 6
months and starts with 4 important activities
- thorough planning, risk analysis, prototypes
creation, and evaluation of the previously
delivered part. Repeated spiral cycles
seriously extend project timeframes.
Spiral model
This is the model where intensive customer
involvement appears. They can be involved in
the exploration and review stages of each cycle.
At the development stage, the customer’s
amendments are not acceptable.
Use cases:
• RUP helps to build stable and, at the same time, flexible solutions, but still, this model is not as quick and
adaptable as the pure Agile group (Scrum, Kanban, XP, etc.). The degree of customer involvement,
documentation intensity, and iteration length may vary depending on the project needs.
Use cases:
• Large and high-risk projects, especially, use-case based development and fast development of high-quality
software.