Process Models
• The Waterfall Model.
• Spiral Model.
• Agile Methodology.
History of water fall model
• Winston W.Royce citied in an article in 1970
• Presented it as non-working model
• Ever since widely used for software projects development
• Royce didn’t use the term water fall model
Water fall model
Requirement gathering phase
Requirement Gathering Phase
• 1st pahse of water fall model
• Includes meeting of customer and getting requirements
• Most crucial phase any misunderstanding leads to validation issues
• Details must be accurated & detailed with no ambiguities
• Understand customer requirements and specifications
• End product should meet customer expectations
• Documented and discussed further with the customer for reviewing
Designing phase
Design Phase
• Customer requirements are broken to various modules for development
• Hardware and software modules are identified & designed separately
• Algorithm's and diagram's defining scope objective of each model are developed
• Intermediate phase between requirement gathering and coding phase
• Focuses on program attribute’s such as
Data structure
software architecture
algorithm details etc
Design needs to be documented for further use
Coding phase
Coding Phase
• Design converted to machine readable form code
• If design is done effectively then coding can be done
effectively
• Coding is done by dividing the project into small modules
• Programs are created for the small modules than creating
for whole project
• According to the design the programmers do code for the
software
• Then the created programme’s are documented
Testing phase
Testing Phase
Individual and integrated components are
methodologically verified to ensure that they are error
free and meet the requirements of customer
In the whole testing part is divided into two parts namely
1) inside test
2)outside test
• After testing the documentation for testing is to be done
Maintenance phase
Maintenance Phase
• Final phase of water fall model
• Product handed over to customer after alpha & beta testing
• After deployment on client side the maintenance team should
undertake maintenance activities by visiting client site
• Longest phase of software development life cycle which includes
meet the changing customer needs
• Adapted to accommodate changes in external environment
• Correct errors and oversights previously undetected in testing phase
Advantages and disadvantages
• Advantages • Disadvantage’s
• Easy to implement • Not possible to state all
requirement's at once during
• Requires completing one requirement gathering
phase before moving to
next phase • Working model can be seen
only at the end
• Easy to develop various
• Backtrack is not possible in
software's within small
this model
span of time
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 i.e. the waterfall model with a very high emphasis
on risk analysis.
• It allows incremental releases of the product or incremental refinement through each
iteration around the spiral
SPIRAL MODEL
SPIRAL MODEL
Planning and Analysis
• This phase starts with gathering the business requirements
in the baseline spiral. In the subsequent spirals as the
product matures, identification of system requirements,
subsystem requirements and unit requirements are all done
in this phase.
• This phase also includes understanding the system
requirements by continuous communication between the
customer and the system analyst. At the end of the spiral,
the product is deployed in the identified market.
Design
• The Design phase starts with the conceptual
design in the baseline spiral and involves
architectural design, logical design of modules,
physical product design and the final design in
the subsequent spirals
Construct or Build
• The Construct phase refers to production of the actual software
product at every spiral. In the baseline spiral, when the product is
just thought of and the design is being developed a POC (Proof of
Concept) is developed in this phase to get customer feedback.
• Then in the subsequent spirals with higher clarity on requirements
and design details a working model of the software called build is
produced with a version number. These builds are sent to the
customer for feedback.
Evaluation and Risk Analysis
• Risk Analysis includes identifying, estimating and
monitoring the technical feasibility and management
risks, such as schedule slippage and cost overrun. After
testing the build, at the end of first iteration, the customer
evaluates the software and provides feedback.
Spiral Model Application
• When there is a budget constraint and risk evaluation is important.
• For medium to high-risk projects.
• Long-term project commitment because of potential changes to
economic priorities as the requirements change with time.
• Customer is not sure of their requirements which is usually the case.
• Requirements are complex and need evaluation to get clarity.
• New product line which should be released in phases to get enough customer
feedback.
• Significant changes are expected in the product during the development
cycle.
The advantages of the Spiral
SDLC Model
• 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
• 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
• Requirement Gathering
• Design the Requirements
• Construction / Iteration
• Testing / Quality Assurance
• Deployment
• Feedback
Agile Model
1. Requirement Gathering
• In this step, the development team must gather the requirements, by interaction with the
customer. development team should plan the time and effort needed to build the project.
Based on this information you can evaluate technical and economical feasibility.
• Meet with the customer to really understand their needs and what they expect from the
software.
• Identify the key requirements and business goals to make sure everyone is on the same page.
• Estimate how much time and effort it will take to develop the software.
• Assess if the project is technically possible and whether it's worth the investment from both
a technical and economic standpoint.
2. Design the Requirements
• In this step, the development team will use user-flow-diagram or high-level UML Diagrams to show the working of
the new features and show how they will apply to the existing software. Wireframing and designing user interfaces
are done in this phase.
• Designing the system: Once the requirements are gathered, the next step is to design the system’s overall architecture
based on those needs. This helps to verify the software is structured in a way that meets the user’s expectations.
• Creating wireframes: Next, wireframes for the user interface (UI) are created. These are simple blueprints that
show how the software will look and how users will interact with it, ensuring it’s user-friendly and easy to navigate.
• High-level design with UML diagrams: At this stage, high-level designs using UML (Unified Modeling Language)
diagrams are created to visually represent the software’s structure and how different parts will work together.
• Prototyping for feedback: Prototypes are made to give stakeholders an early look at the software. This helps gather
feedback early in the process and allows for adjustments before the full development begins.
3. Construction / Iteration
• In this step, development team members start working on their project, which
aims to deploy a working product. Each cycle typically consist between 1-4
weeks, and at the end, the team delivers a working version of the software.
• Development of Features: The team works on the features identified during the
requirement and design phases.
• Coding and Implementation: New functionalities are coded and integrated
into the software based on the goals for that specific iteration.
• Delivering a Working Product: After each iteration, a usable version of the
software is ready.
• Incremental Improvement: With every cycle, the software is enhanced, adding
more features and refining existing ones.
4. Testing / Quality Assurance
• Testing involves Unit Testing, Integration Testing, and System Testing,
Which help in the agile development models:
• Unit Testing: Unit testing is the process of checking small pieces of code to
ensure that the individual parts of a program work properly on their own.
Unit testing is used to test individual blocks (units) of code.
• Integration Testing: Integration testing is used to identify and resolve any
issues that may arise when different units of the software are combined.
• System Testing: Goal is to ensure that the software meets the
requirements of the users and that it works correctly in all possible
scenarios.
5. Deployment
• In this step, the development team will deploy the working project to end users.
• Once an iteration is finished and fully tested, the software is ready to be released to the
end users. In Agile, deployment isn't a one-time event—it's an ongoing process.
Updates and improvements are rolled out regularly, making sure the software
keeps evolving and getting better with each release.
• Deploy the software to a test or live environment so that it can be used by
customers or end-users.
• Make the software accessible to users, verifying they can start using it as expected.
• Verify the deployment goes smoothly and fix any issues that come up quickly.
6. Feedback
• This is the last step of the Agile Model. In this, the team receives
feedback about the product and works on correcting bugs based on
feedback provided by the customer.
• Take feedback from customers, users, and stakeholders after each
iteration.
• Understand how well the product meets user needs and identify areas for
improvement.
• Check for bugs or issues that need fixing.
• Make adjustments to the development plan based on feedback to
improve the product further.