SW Models 1
SW Models 1
SW Models 1
Software development teams under constant strain to produce high-quality software that
meets customer expectations, finishes within time, and is feasible economically
and technically.
What is SDLC?
• It helps in regulating costs required for the development. Proper reasoning and studies can
predict the cost risks allowing stakeholders to look after costly mistakes.
• It provides methods to assess the effectiveness of the software as each iteration produces
a software increment that provides investors with a subclass of overall software features
and functionality to keep track of time and quality.
The issues or suggestions collected
once the deployment is done solved
at this stage.
ambiguity, elaboration,
negotiation, specification,
and validation
• The software development process is an iterative logical process that aims to create
programmed software to meet unique business or personal objectives, goals, or
processes. The objective is achieved by a software developer writing computer
code.
THE NEED FOR A SOFTWARE DEVELOPMENT PROCESS
To meet the specific needs of a specific client/business (the case with custom software)
For personal use (e.g., a pharmacy owner may require inventory managing and billing
software.)
The demand for better quality management has enforced the discipline of software
engineering, which focuses on applying the systematic approach of the engineering
paradigm to the software development process.
WATERFALL MODEL
The Waterfall methodology — also known as the
Waterfall model — is a sequential development process
that flows like a waterfall through all phases of a project
(analysis, design, development, and testing, for
example), with each phase completely wrapping up
before the next phase begins.
WATERFALL MODEL - ADVANTAGES
• This model is very simple and is easy to understand.
• This model works well for smaller projects and projects where requirements are well
understood.
WATERFALL MODEL - DISADVANTAGES
No feedback path: It assumes that no error is ever committed by developers during any
phase. Therefore, it does not incorporate any mechanism for error correction.
Difficult to accommodate change requests: This model assumes that all the customer
requirements can be completely and correctly defined at the beginning of the project, but
actually customers’ requirements keep on changing with time. It is difficult to
accommodate any change requests after the requirements specification phase is complete.
No overlapping of phases: This model recommends that a new phase can start only after
the completion of the previous phase. But in real projects, this can’t be maintained. To
increase efficiency and reduce cost, phases may overlap.
WATERFALL MODEL - DISADVANTAGES
Limited flexibility: The Waterfall Model is a rigid and linear approach to software development, which means that it is not
well-suited for projects with changing or uncertain requirements. Once a phase has been completed, it is difficult to make
changes or go back to a previous phase.
Limited stakeholder involvement: The Waterfall Model is a structured and sequential approach, which means that
stakeholders are typically involved in the early phases of the project (requirements gathering and analysis) but may not be
involved in the later phases (implementation, testing, and deployment).
Late defect detection: In the Waterfall Model, testing is typically done towards the end of the development process. This
means that defects may not be discovered until late in the development process, which can be expensive and time-consuming
to fix.
Lengthy development cycle: The Waterfall Model can result in a lengthy development cycle, as each phase must be completed
before moving on to the next. This can result in delays and increased costs if requirements change or new issues arise.
Not suitable for complex projects: The Waterfall Model is not well-suited for complex projects, as the linear and sequential
WATERFALL MODEL – APPLICATIONS
Large-scale software development projects: The Waterfall Model is often used for large-scale software development
projects, where a structured and sequential approach is necessary to ensure that the project is completed on time and
within budget.
Safety-critical systems: The Waterfall Model is often used in the development of safety-critical systems, such as
aerospace or medical systems, where the consequences of errors or defects can be severe.
Government and defense projects: The Waterfall Model is also commonly used in government and defense projects,
where a rigorous and structured approach is necessary to ensure that the project meets all requirements and is
delivered on time.
Projects with well-defined requirements: The Waterfall Model is best suited for projects with well-defined
requirements, as the sequential nature of the model requires a clear understanding of the project objectives and scope.
Projects with stable requirements: The Waterfall Model is also well-suited for projects with stable requirements, as the
linear nature of the model does not allow for changes to be made once a phase has been completed.
ITERATIVE MODEL
• Major requirements must be defined; however, some details can evolve with time.
INCREMENTAL MODEL
It is one of the most adopted models of SDP where the
software requirement is broken down into many standalone
modules in the SDLC.
Incremental development is carried out in steps covering all
the analysis, designing, implementation, testing and
maintenance.
Each iteration stage is developed by going through
requirements, design, coding and finally the testing modules of
the software development life cycle.
Functionality developed in each stage will be added on the previously developed functionality and this repeats
until the software is fully developed.
At each incremental stage, the decision on the next stage is carried after a thorough review.
INCREMENTAL MODEL
LESSON 3
"Agile process model" refers to a software development approach based on iterative development. It
break tasks into smaller iterations, or parts do not directly involve long term planning.
The project scope and requirements are laid down at the beginning of the development process. Plans
regarding the number of iterations, the duration and the scope of each iteration are clearly defined in
advance.
Each iteration is considered as a short time "frame", which typically lasts from one to four weeks. This
minimizes the project risk and reduces the overall project delivery time requirements.
Each iteration involves a team working through a full software development life cycle including
planning, requirements analysis, design, coding, and testing before a working product is demonstrated
to the client.
Agile model Vs Incremental development model:
• When you need to break down the development process into smaller parts – iterations
• When the need is to enhance software quality, productivity, and predictability in delivery
It is better for software products that have their feature sets redefined during
development because of user feedback and other factors.
The model divides the development cycle into smaller, incremental waterfall models in
which users are able to get access to the product at the end of each cycle.
Feedback is provided by the users on the product for the planning stage of the next cycle
and the development team responds, often by changing the product, plan or process.
Therefore, the software product evolves with time.
EVOLUTIONARY MODEL
Evolutionary model suggests breaking down of work into smaller chunks, prioritizing
them and then delivering those chunks to the customer one by one.
The number of chunks is huge and thus is the number of deliveries made to the customer.
The main advantage is that the customer’s confidence increases as he constantly gets
quantifiable goods or services from the beginning of the project to verify and validate his
requirements.
The model allows for changing requirements as well as all work in broken down into
maintainable work chunks.
APPLICATION OF EVOLUTIONARY MODEL
It is used in large projects where you can easily find modules for incremental implementation.
Evolutionary model is commonly used when the customer wants to start using the core
features instead of waiting for the full software.
Necessary conditions for implementing this model:-
• Customer needs are clear and been explained in deep to the developer team.
• There might be small changes required in separate parts but not a major change.
• As it requires time, so there must be some time left for the market constraints.
• Risk is high and continuous targets to achieve and report to customer repeatedly.
development.
maintenance.
The exact number of loops of the spiral is unknown and can vary from project to project.
Each loop of the spiral is called a Phase of the software development process.
The exact number of phases needed to develop the product can be varied by the project
Planning: In this phase, scope of the project is determined and a plan is created for the next
Risk Analysis: In this phase, the risks associated with the project are identified and evaluated.
SPRIRAL MODEL
Planning: The next iteration of the spiral begins with a new planning phase, based on the
• The Spiral Model is often used for complex and large software development projects, as
it allows for a more flexible and adaptable approach to software development.
• The Radius of the spiral at any point represents the expenses(cost) of the project so far,
and the angular dimension represents the progress made so far in the current phase.