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

Models

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Models

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 32

V-Model

•A popular development process model, V-model is a


alternative of the waterfall model.
• this model gets its name from its visual appearance in this
model verification and validation activities are carried out
throughout the development life cycle, and therefore the
chances bugs in the work products considerably reduce.
• generally considered to be suitable for use in projects
concerned with development of safety-critical software that
are required to have high reliability.
• there are two main phases—development and validation
phases.
•The left half of the model comprises the development phases
and the right half comprises the validation phases.
V-Model
•validation plan created during the development phases is
carried out in the corresponding validation phase which have
been shown by dotted arcs in Figure.

•In this , testing is carried out in three steps—unit, integration,


and system testing.

•The purpose of these three different steps of testing during


the validation phase is to detect defects that arise in the
corresponding phases of software development—
requirements analysis and specification, design, and coding
respectively.
Prototyping Model
•The prototype model is also a popular life cycle model.
• The prototyping model can be considered to be an extension
of the waterfall model.
•This model suggests building a working prototype of the
system, before development of the actual software.
•A prototype is a toy and simple implementation of a system.
•It has limited functional capabilities, low reliability, or
inefficient performance as compared to the actual software.
Prototyping Model
Necessity of the prototyping model

•The prototyping model is useful to use for specific types of projects.


• for development of the graphical user interface (GUI) part of an
application, it becomes easier to illustrate the input data formats,
messages, reports, and the interactive dialogs to the customer.
• This is a valuable mechanism for gaining better understanding of the
customers’ needs.
• In this regard, the prototype model turns out to be especially useful in
developing the graphical user interface (GUI) part of a system.
Prototyping Model

•The prototyping model is especially useful when the exact technical


solutions are unclear to the development team.
•This prototype can help them to critically examine the technical issues
associated with product development.
• risk can be resolved by developing a prototype compiler for a very
small language to understand the issues associated with writing a
compiler for a command language.
Incremental Development Model

• the software is developed in increment.


• first the requirements are split into a set of increments.
•The first increment is a simple working system implementing

only a few basic features.


•Over successive iterations, successive increments are
implemented and delivered to the customer until the desired
system is realized.
Advantages:
•Error reduction: The core modules are used by the customer
from the beginning and therefore these get tested thoroughly.

• This reduces chances of errors in the core modules of the


final product, leading to greater reliability of the software.

•Incremental resource deployment: This model removes the


need for the customer to commit large resources at one go
for development of the system.

•It also saves the developing organization from deploying


large resources and manpower for a project in one go.
Evolutionary Model

•This model has many of the features of the incremental


model.
•As in case of the incremental model, the software is
developed over a number of increments.
•At each increment, a concept (feature) is implemented and is
deployed at the client site.
• The software is successively refined and feature-enriched
until the full software is realised.
•The principal idea behind the evolutionary life cycle model is
conveyed by its name.
•In the incremental development model, complete
requirements are first developed and the SRS (System
Required Specifications) document prepared.
Evolutionary Model

• in the evolutionary model, the requirements, plan, estimates, and


solution evolve over the iterations, rather than fully defined and frozen
in a major up-front specification effort before the development
iterations begin.
• Such evolution is consistent with the pattern of unpredictable feature
discovery and feature changes that take place in new product
development.
•Though the evolutionary model can also be viewed as an extension of
the waterfall model, the evolutionary software development process is
sometimes referred to as design a little, build a little, test a little, deploy
a little model.
•This means that after the requirements have been specified, the design,
build, test, and deployment activities are iterated.
•A schematic representation of the evolutionary model of development
has been shown in the below Figure.
Advantages
•Effective information or a response of actual customer
requirements: In this model, the user gets a chance to
experiment with a partially developed software much before
the complete requirements are developed.
•Easy handling change requests: In this model, handling
change requests is easier as no long-term plans are made.
Consequently, reworks required due to change requests are
normally much smaller compared to the sequential models
RAPID APPLICATION DEVELOPMENT (RAD)
Overview of RAD Model

•Rapid Application Development (RAD) is a software development


methodology that highlight
• quick and iterative release cycles,
•focusing on delivering functional software in shorter timeframes
compared to traditional models like the Waterfall model.

•The RAD model was first proposed by IBM in the 1980s and has since
evolved to meet the demands of modern software development.
RAPID APPLICATION DEVELOPMENT (RAD)

Key Principles of RAD

•by different teams.

• This allows for parallel processing and faster delivery of


components.

• Incremental Development: The RAD model is characterized


by its incremental approach, where projects are divided into
smaller modules that can be developed simultaneously
RAPID APPLICATION DEVELOPMENT (RAD)

•User Involvement: A critical aspect of RAD is the high level of user


involvement throughout the development process.
• Continuous feedback from users helps ensure that the final product
aligns closely with their needs and expectations.

•Prototyping: Prototyping is central to RAD, allowing developers to


create preliminary versions of software quickly.
•These prototypes are then tested and refined based on user feedback,
leading to a more polished final product.

•Time-Boxed Delivery: Projects using the RAD model typically operate


within strict time constraints, often aiming for delivery within 60-90
days.
•This urgency drives teams to focus on essential features and rapid
iterations.
RAPID APPLICATION DEVELOPMENT (RAD)
•Phases of the RAD Model - several key phases:
•Requirements Planning: This initial phase involves gathering
requirements through various techniques such as brainstorming
sessions, user scenarios, and task analysis. The goal is to develop a
clear understanding of what users need from the software.
•User Description/Prototyping: In this phase, developers create
prototypes based on user feedback gathered during the planning
stage. This iterative process allows for adjustments and refinements
before moving forward.
•Construction: During construction, developers refine prototypes into
functional products using automated tools and techniques. This phase
includes coding, testing, and making necessary modifications based on
ongoing user input.
•Cutover/Deployment: The final phase involves integrating all modules
developed by different teams, followed by thorough testing to ensure
compatibility and functionality before deployment to end-users.
RAPID APPLICATION DEVELOPMENT (RAD)
Advantages of Using RAD
•Speedy Development: One of the primary advantages of RAD is its
ability to accelerate the development process significantly.

•Flexibility and Adaptability: The iterative nature allows teams to


adapt quickly to changing requirements or user feedback.

•Enhanced User Satisfaction: Continuous involvement from users leads


to higher satisfaction rates as their needs are addressed throughout
development.

•Reduced Risk of Failure: By validating ideas early through prototyping,


teams can identify potential issues before they become significant
problems in later stages.
Agile Development - Overview of Agile Development
Agile development is a software engineering methodology that
highlight flexibility, collaboration, and customer satisfaction.
 It is rooted in the Agile Manifesto, which was created in 2001 by a
group of software developers who sought to improve the efficiency
and effectiveness of software development processes.
 The Agile approach contrasts with traditional methodologies like
Waterfall, which are more linear and rigid.
Core Values of Agile Development
The Agile Manifesto outlines four core values that guide Agile
practices:
Agile Development
Overview of Agile Development

individuals and Interactions over Processes and Tools: This value


emphasizes the importance of people in the development process.
Effective communication and collaboration among team members are
prioritized over strict adherence to tools or Individuals and Interactions
over Processes and Tools: This value emphasizes the importance of
people in the development process.
Agile Development
Overview of Agile Development

Working Software over Comprehensive Documentation: While


documentation is still important, Agile focuses on delivering functional
software quickly rather than getting bogged down in extensive
documentation requirements.
Customer Collaboration over Contract Negotiation: Agile encourages
ongoing collaboration with customers throughout the development
process rather than limiting interaction to contract negotiations at the
beginning and end of projects.
Responding to Change over Following a Plan: Agile methodologies
hold changes, allowing teams to adapt their plans based on evolving
requirements or feedback from stakeholders.
12 Principles of Agile Development
In addition to its core values, the Agile Manifesto includes twelve
principles that further define its philosophy:
Customer satisfaction through early and continuous delivery of
valuable software.
Welcoming changing requirements, even late in development.
Delivering working software frequently, with a preference for
shorter timescales.
Business stakeholders and developers must work together daily
throughout the project.
Building projects around motivated individuals; providing them with
the environment and support they need.
The most efficient method of conveying information is face-to-face
conversation..
12 Principles of Agile Development
Working software is the primary measure of progress.
Sustainable development should be maintained; teams should be able
to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design
enhances agility.
Simplicity—the art of maximizing work not done—is essential.
The best architectures, requirements, and designs emerge from self-
organizing teams.
At regular intervals, teams reflect on how to become more effective,
then tune and adjust their behavior accordingly.
The Agile Software Development Process
•The process typically involves several key stages:
•Requirements Gathering: Understanding what the customer needs
from the software product is crucial for guiding development efforts.
•Planning: Teams create an iterative plan that outlines what features
will be developed in each cycle or sprint.
•Development: Using short iterations (often called sprints), teams
develop small increments of working software.
•Testing: Continuous testing occurs throughout development to ensure
quality and functionality meet customer expectations.
•Deployment: Once tested, working increments are deployed for user
feedback or production use.
•Review and Retrospective: After each iteration, teams review their
work with stakeholders to gather feedback and identify areas for
improvement.
Advantages of Agile Development
Flexibility: Teams can quickly adapt to changes in requirements or market conditions without
significant disruption.
Customer Engagement: Regular interactions with customers ensure that their needs are met
throughout the project lifecycle.
Faster Time-to-Market: By delivering small increments regularly, companies can release
products faster than traditional methods allow.
Higher Quality Products: Continuous testing during development helps catch defects early
when they are easier to fix.
Disadvantages of Agile Development
Less Predictability: Due to its flexible nature, it can be challenging to predict timelines or costs
accurately compared to traditional methods.
Requires Cultural Shift: Organizations may struggle with adopting an agile mindset if they are
accustomed to hierarchical structures or rigid processes.
Potential for Scope Creep: Without careful management, ongoing changes can lead to scope
creep if new features continually get added without proper
Advantages of Agile Development
Flexibility: Teams can quickly adapt to changes in requirements or
market conditions without significant disruption.
Customer Engagement: Regular interactions with customers ensure
that their needs are met throughout the project lifecycle.
Faster Time-to-Market: By delivering small increments regularly,
companies can release products faster than traditional methods allow.
Higher Quality Products: Continuous testing during development helps
catch defects early when they are easier to fix.
Disadvantages of Agile Development
Less Predictability: Due to its flexible nature, it can be challenging to
predict timelines or costs accurately compared to traditional methods.
Requires Cultural Shift: Organizations may struggle with adopting an
agile mindset if they are accustomed to hierarchical structures or rigid
processes.
Potential for Scope Creep: Without careful management, ongoing
changes can lead to scope creep if new features continually get added
without proper
Spiral Model
Spiral Model in Software Engineering
•The Spiral Model is a prominent Software Development Life Cycle
(SDLC) model that integrates the iterative nature of prototyping with
the systematic approach of traditional linear models, such as the
waterfall model.
•This model was first introduced by Barry Boehm in 1986 and is
particularly effective for managing risks in complex software projects.
•Overview of the Spiral Model
•The Spiral Model is characterized by its circular diagram, which
represents various phases of development as loops or spirals.
• Each loop signifies a complete cycle of development, encompassing
stages from requirements gathering to design, implementation,
testing, and maintenance.
•The number of loops can vary based on project needs and risk
assessments.
•Phases of the Spiral Model
•Objectives Defined: In this initial phase, project goals are established. This
includes identifying functional and non-functional requirements that the
software must meet.
•Risk Analysis: This phase involves identifying potential risks associated with the
project. Risks can include technical challenges, resource availability, and market
conditions. Evaluating these risks helps in determining how to mitigate them
effectively.
•Engineering: During this phase, actual software development occurs based on
the requirements gathered earlier. This may involve coding, designing user
interfaces, and integrating systems.

•Evaluation: After engineering comes evaluation, where the developed software


is assessed against customer requirements and quality standards. Feedback
from stakeholders is crucial at this stage to ensure alignment with expectations.
•Planning for Next Iteration: Based on feedback from the evaluation phase,
planning for the next iteration begins. This involves revisiting objectives and
adjusting plans according to any new insights gained during evaluation.
•Why is it Called a Meta Model?
•The Spiral Model is often referred to as a “meta model” because it
encompasses various other models within its framework—such as iterative
development and prototyping—allowing flexibility in choosing
methodologies that best fit specific project needs.
Advantages of the Spiral Model
Risk Management: Continuous risk assessment leads to better decision-
making.
Flexibility: Adaptable to changes in requirements or technology.
Customer Feedback Integration: Regular evaluations ensure that customer
needs are met throughout development.
Incremental Development: Allows for gradual refinement and enhancement
of software products.
Disadvantages of the Spiral Model
Complexity in Management: Requires careful planning and management due
to its iterative nature.
Costly Overhead: The emphasis on risk analysis may lead to higher costs
compared to simpler models.
Not Suitable for Small Projects: The extensive documentation and planning
may not be justified for smaller projects.

You might also like