SDLC Approach

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 23

1.

6 Evaluate software
development lifecycle models
Predictive Software Development Life
Cycle
• predictive SDLC assumes you can predict the complete workflow.
• It involves fully understanding the final product and determining the
process for delivering it.
• In this form of project life cycle, you determine the cost, scope, and
timeline in the early phases of the project.
• One of the most common predictive models is the waterfall model.
• It assumes various phases in the SDLC that can occur sequentially,
which implies that one phase leads into the next phase.
• Pros of Predictive SDLC
• It is easy to understand and follow as each phase is initiated after another phase is
completed.
• The laid down instructions and concise workflow makes it easier for the developers
to work within a specified budget and timeframe.
• It enables organizations to assume the expected project budget and timelines (IF all
goes as planned).
• Each stage in the predictive SDLC has specific timelines and deliverables, which
makes it easier for teams to operate and monitor the entire project.
• Cons of Predictive SDLC
• Working software is produced at a later stage in predictive SDLC, which leads to
delayed identification of bugs and vulnerabilities in the application.
• Organizations often have to bear additional costs of delayed applications if bugs are
discovered in the testing phase of the project.
• It is not the ideal SDLC model for complex projects.
• Predictive SDLC is not suitable for dynamic projects that entail flexible requirements
or uncertainty in the end product.
Adaptive Software Development Life
Cycle:
• Adaptive SDLC approaches have a mix of incremental and iterative
development.
• It involves adding features incrementally and making changes and
refinements according to feedback.
• In other words, the work can easily adapt to the changing requirements
based on new feedback received from the client.
• Agile and other iterative methodologies fall under the umbrella of adaptive
SDLC.
• A key element of adaptive SDLC methodologies is that while it defines
certain milestones throughout the SDLC, it also allows flexibility to achieve
them.
• Pros of Adaptive SDLC
• Adaptive SDLC entails iterative, evolutionary and incremental methodologies which offer
flexible guidelines and easy flow of work.
• Methodologies such as Agile are efficient in nature and enhance team collaboration.
• Short feedback loops lead to quick adaptation to changing requirements.
• Reduces potential vulnerabilities and bugs at the deployment stage as the application is
frequently tested while in the development phase.
• It focuses on delivering high quality applications while maintaining technical excellence.
• Encourages different teams to work together on a project, increasing face-to-face interactions
and building better work environments.
• Cons of Adaptive SDLC
• It demands for extensive client/user involvement throughout the SDLC.
• Various teams have to work together continuously while working with adaptive SDLCs, and
this involves numerous interactions. Continuous communication between teams can be time
consuming and require more commitment.
• Since adaptive SDLC requires close collaboration between organizations and their clients, lack
of commitment from either of the sides could impact software quality.
• Frequent changes are adopted just in time for development which might result in less detailed
documentation.
What are SDLC models?

• Waterfall
• The waterfall model arranges all the phases sequentially so that each new
phase depends on the outcome of the previous phase. Conceptually, the
design flows from one phase down to the next, like that of a waterfall.
• Pros and cons
• The waterfall model provides discipline to project management and gives a
tangible output at the end of each phase. However, there is little room for
change once a phase is considered complete, as changes can affect the
software's delivery time, cost, and quality. Therefore, the model is most
suitable for small software development projects, where tasks are easy to
arrange and manage and requirements can be pre-defined accurately.
• Prototyping Model :
• Prototyping is defined as the process of developing a working replication of a
product or system that has to be engineered.
• This model is used when the customers do not know the exact project
requirements beforehand.
• In this model, a prototype of the end product is first developed, tested, and
refined as per customer feedback repeatedly till a final acceptable prototype is
achieved which forms the basis for developing the final product.
• Advantages of Prototyping Model
• The customers get to see the partial product early in the life cycle. This
ensures a greater level of customer satisfaction and comfort.
• New requirements can be easily accommodated as there is scope for
refinement.
• Missing functionalities can be easily figured out.
• Errors can be detected much earlier thereby saving a lot of effort and cost,
besides enhancing the quality of the software.
• The developed prototype can be reused by the developer for more complicated
projects in the future.
• Flexibility in design.
• Disadvantages of the Prototyping Model
• Costly concerning time as well as money.
• There may be too much variation in requirements each time the prototype is
evaluated by the customer.
• Poor Documentation due to continuously changing customer requirements.
• It is very difficult for developers to accommodate all the changes demanded
by the customer.
• There is uncertainty in determining the number of iterations that would be
required before the prototype is finally accepted by the customer.
• After seeing an early prototype, the customers sometimes demand the actual
product to be delivered soon.
• Iterative
• The iterative process suggests that teams begin software development
with a small subset of requirements. Then, they iteratively enhance
versions over time until the complete software is ready for production.
The team produces a new software version at the end of each iteration.
• Pros and cons
• It’s easy to identify and manage risks, as requirements can change
between iterations. However, repeated cycles could lead to scope
change and underestimation of resources.
RAD (Rapid Application
Development) model
• The RAD (Rapid Application Development) model is based on
prototyping and iterative development with no specific
planning involved. The process of writing the software
itself involves the planning required for developing the
product.
• Rapid Application Development focuses on gathering
customer requirements through workshops or focus
groups, early testing of the prototypes by the customer
using iterative concept, reuse of the existing prototypes
(components), continuous integration and rapid
delivery.
• In the RAD model, the functional modules are
developed in parallel as prototypes and are integrated
to make the complete product for faster product
delivery.
• Since there is no detailed preplanning, it makes it easier
to incorporate the changes within the development
process.
• Spiral
• The spiral model combines the iterative model's small repeated cycles
with the waterfall model's linear sequential flow to prioritize risk
analysis. You can use the spiral model to ensure software's gradual
release and improvement by building prototypes at each phase.
• Pros and cons
• The spiral model is suitable for large and complex projects that require
frequent changes. However, it can be expensive for smaller projects
with a limited scope.
Spiral Model

• The spiral model combines the


idea of iterative development with
the systematic, controlled aspects
of the waterfall model.
• This Spiral model is a combination
of iterative development process
model and sequential linear
development model
• The advantages of the Spiral SDLC Model are as follows −
• Changing requirements can be accommodated.
• Allows extensive use of prototypes.
• Requirements can be captured more accurately.
• Users see the system early.
• Development can be divided into smaller parts and the risky parts
can be developed earlier which helps in better risk management.
• The disadvantages of the Spiral SDLC Model are as follows −
• Management is more complex.
• End of the project may not be known early.
• Not suitable for small or low risk projects and could be expensive
for small projects.
• Process is complex
• Spiral may go on indefinitely.
• Large number of intermediate stages requires excessive
documentation.
Agile Model

• Agile SDLC model is a combination


of iterative and incremental
process models with focus on
process adaptability and customer
satisfaction by rapid delivery of
working software product.
• Agile Methods break the product
into small incremental builds.
These builds are provided in
iterations.
• The Agile thought process had started early in the
software development and started becoming
popular with time due to its flexibility and
adaptability.
The advantages of the Agile Model
are as follows −
• Is a very realistic approach to software development.
• Promotes teamwork and cross training.
• Functionality can be developed rapidly and demonstrated.
• Resource requirements are minimum.
• Suitable for fixed or changing requirements
• Delivers early partial working solutions.
• Good model for environments that change steadily.
• Minimal rules, documentation easily employed.
• Enables concurrent development and delivery within an overall planned context.
• Little or no planning required.
• Easy to manage.
• Gives flexibility to developers.
The disadvantages of the Agile
Model are as follows −
• Not suitable for handling complex dependencies.
• More risk of sustainability, maintainability and extensibility.
• An overall plan, an agile leader and agile PM practice is a must without
which it will not work.
• Strict delivery management dictates the scope, functionality to be
delivered, and adjustments to meet the deadlines.
• Depends heavily on customer interaction, so if customer is not clear,
team can be driven in the wrong direction.
• There is a very high individual dependency, since there is minimum
documentation generated.
• Transfer of technology to new team members may be quite
challenging due to lack of documentation.
Dynamic Systems Development Method (DSDM)

• DSDM is an associate degree agile code development approach that


provides a framework for building and maintaining systems.
• DSDM is An iterative code method within which every iteration
follows the 80% rule that simply enough work is needed for every
increment to facilitate movement to the following increment.
• The remaining detail is often completed later once a lot of business
necessities are noted or changes are requested and accommodated.
• the DSDM life cycle that defines 3 different unvarying cycles, preceded
by 2 further life cycle activities:
1.Feasibility Study:
It establishes the essential business necessities and constraints related to
the applying to be designed then assesses whether or not the application
could be a viable candidate for the DSDM method.
2.Business Study:
It establishes the use and knowledge necessities that may permit the
applying to supply business value; additionally, it is the essential
application design and identifies the maintainability necessities for the
applying.
3.Functional Model Iteration:
It produces a collection of progressive prototypes that demonstrate practicality for
the client.
The intent throughout this unvarying cycle is to collect further necessities by
eliciting feedback from users as they exercise the paradigm.
4.Design and Build Iteration:
It revisits prototypes designed throughout useful model iteration to make sure that
everyone has been designed during a manner that may alter it to supply
operational business price for finish users
5.Implementation:
It places the newest code increment (an “operationalized” prototype) into the
operational surroundings. It ought to be noted that:
(a) the increment might not 100% complete or,
(b) changes are also requested because the increment is placed into place. In either
case, DSDM development work continues by returning to the useful model iteration
activity.

You might also like