SDLC Approach
SDLC Approach
SDLC Approach
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