Final Practicle 1
Final Practicle 1
AIM: Study of various type of Software Process models with comparison and find out which process
model will be appropriate for your selected Project.
Objectives: To learn different process models and identify suitable model for the project development.
Theory:
A software process is defined as a collection of work activities, actions, and tasks that are
performed when some work product is to be created.
Waterfall Model:
The waterfall is a universally accepted SDLC model. In this method, the whole process of software
development is divided into various phases.
The waterfall model is a continuous software development model in which development is seen as
flowing steadily downwards (like a waterfall) through the steps of requirements analysis, design,
implementation, testing (validation), integration, and maintenance.
Linear ordering of activities has some significant consequences. First, to identify the end of a phase
and the beginning of the next, some certification techniques have to be employed at the end of each
step. Some verification and validation usually do this mean that will ensure that the output of the
stage is consistent with its input (which is the output of the previous step), and that the output of the
stage is consistent with the overall requirements of the system.
Advantages:
o This model is simple to implement also the number of resources that are required for it is
minimal.
o The requirements are simple and explicitly declared; they remain unchanged during the entire
project development.
8
o The start and end points for each phase is fixed, which makes it easy to cover progress.
o The release date for the complete product, as well as its final cost, can be determined before
development.
o It gives easy to control and clarity for the customer due to a strict reporting system.
Disadvantages:
o In this model, the risk factor is higher, so this model is not suitable for more significant and
complex projects.
o This model cannot accept the changes in requirements during development.
o It becomes tough to go back to the phase. For example. if the application has now shifted to
the coding phase, and there is a change in requirement, It becomes tough to go back and
change it. Since the testing done at a later stage. it does not allow identifying the challenges
and risks in the earlier phase, so the risk reduction strategy is difficult to prepare.
Advantages:
o Clear and structured approach, with well-defined stages.
o Easy to understand and manage because of the simple, sequential nature.
o Emphasizes the importance of validation and verification throughout the development process.
Disadvantages:
o Not flexible—changes are costly and difficult to implement once the process is underway.
o Assumes requirements are well understood from the beginning, which is not always the case in
real-world projects.
o Long feedback loop—testing occurs only after development.
9
Incremental Model:
The Incremental Model divides the development process into smaller, manageable parts or increments. Each
increment typically results in a functional version of the software.
Key Features:
o Phased Development: The software is developed in increments, each adding a part of the system's functionality.
Each increment is built and delivered in a cycle, allowing parts of the system to be operational and tested at an
early stage.
o Customer Feedback: After each increment, feedback from the customer is gathered to ensure the system meets
requirements and expectations.
o Flexibility: The system can evolve based on user feedback and changing requirements, allowing for more
flexibility than the waterfall model.
Advantages:
o Early delivery of partial systems allows the customer to start using the software quickly.
o Easier to handle changes because parts of the system are developed and tested iteratively.
o Reduces the overall risk of failure because issues can be identified early in the process.
Disadvantages:
o Requires good planning to ensure increments can be integrated properly.
o The system may not be fully functional until the final increment is delivered, which can delay the overall
timeline.
o Might be difficult to estimate the total time for completion since some requirements might only be clarified
during later increments.
Iterative Model:
It is a particular implementation of a software development life cycle that focuses on an initial,
simplified implementation, which then progressively gains more complexity and a broader feature
set until the final system is complete. In short, iterative development is a way of breaking down the
software development of a large application into smaller pieces.
10
Advantages:
o Testing and debugging during smaller iteration is easy.
o A Parallel development can plan.
o It is easily acceptable to ever-changing needs of the project.
o Risks are identified and resolved during iteration.
o Limited time spent on documentation and extra time on designing.
Disadvantages:
o It is not suitable for smaller projects.
o More Resources may be required.
o Design can be changed again and again because of imperfect requirements.
o Requirement changes can cause over budget.
o Project completion date not confirmed because of changing requirements.
Advantages:
o This model is flexible for change.
o In this model, changes are adoptable.
o Each phase in RAD brings highest priority functionality to the customer.
o It reduced development time.
o It increases the reusability of features.
Disadvantages:
o It required highly skilled designers.
o All application is not compatible with RAD.
o For smaller projects, we cannot use the RAD model.
o On the high technical risk, it's not suitable.
o Required user involvement.
Prototyping Model:
The prototyping model starts with the requirements gathering. The developer and the user meet and
define the purpose of the software. identify the needs, etc.
A 'quick design' is then created. This design focuses on those aspects of the software that will be
visible to the user. It then leads to the development of a prototype. The customer then checks the
prototype, and any modifications or changes that are needed are made to the prototype.
The prototyping model starts with the requirements gathering. The developer and the user meet and
define the purpose of the software, identify the needs, etc.
A 'quick design' is then created. This design focuses on those aspects of the software that will be
visible to the user. It then leads to the development of a prototype. The customer then checks the
11
prototype, and any modifications or changes that are needed are made to the prototype.
Advantages:
o Reduce the risk of incorrect user requirement.
o Good where requirement are changing/uncommitted
o Regular visible process aids management.
o Support early product marketing.
o Reduce Maintenance cost.
o Errors can be detected much earlier as the system is made side by side.
Disadvantages:
o An unstable/badly implemented prototype often becomes the final product.
o Require extensive customer collaboration.
o Difficult to know how long the project will last.
o Easy to fall back into the code and fix without proper requirement analysis, design, customer
evaluation, and feedback.
o Prototyping tools are expensive.
o Special tools & techniques are required to build a prototype.
o It is a time-consuming process.
Evolutionary Model:
The evolutionary model is not a separate model. It is necessarily a series of waterfall cycles. The
requirements are divided into groups at the start of the project. For each group, the SDLC model is
followed to develop software. The SDLC process is repeated, with each release adding more
functionality until all requirements are met. In this method, each cycle act as the maintenance phase
for the previous software release. Modification to the incremental model allows development cycles
to overlap. After that subsequent cycle may begin before the previous cycle is complete.
12
Advantages:
o Errors are easy to be recognized.
o Easier to test and debug.
o More flexible.
o Simple to manage risk because it handled during its iteration.
o The Client gets important functionality early.
Disadvantages:
o Need for good planning.
o Total Cost is high.
o Well defined module interfaces are needed.
Spiral Model:
The spiral model is a risk-driven process model. This SDLC model helps the group to adopt elements
of one or more process models like a waterfall, incremental, waterfall, etc. The spiral technique is a
combination of rapid prototyping and concurrency in design and development activities.
Each cycle in the spiral begins with the identification of objectives for that cycle, the different
alternatives that are possible for achieving the goals, and the constraints that exist. This is the first
quadrant of the cycle (upper-left quadrant).
The next step in the cycle is to evaluate these different alternatives based on the objectives and
constraints. The focus of evaluation in this step is based on the risk perception for the project. The
next step is to develop strategies that solve uncertainties and risks. This step may involve activities
such as benchmarking. simulation, and prototyping.
Advantages:
o High amount of risk analysis.
o Useful for large and mission-critical projects.
Disadvantages:
o Can be a costly model to use.
o Risk analysis needed highly particular expertise.
o Doesn't work well for smaller projects.
13
Agile Model:
The Agile Model is an iterative and incremental approach that emphasizes flexibility, collaboration, customer
feedback, and rapid delivery.
Key Features:
o Iterative Development: Software is developed in short cycles called "sprints" (usually 1-4 weeks). Each sprint
delivers a working piece of software that can be reviewed, tested, and improved upon.
o Collaboration: Agile promotes constant communication between developers, customers, and other stakeholders.
The customer is involved in the process, providing feedback and setting priorities.
o Adaptability: Requirements and solutions evolve over time. Agile teams are responsive to changes, and the
project can adapt to new requirements, which is a big advantage in a rapidly changing environment.
o Focus on Working Software: The primary goal is to deliver functional software quickly, with each iteration
improving upon the last.
Advantages:
o High customer satisfaction due to continuous involvement and feedback.
o Flexibility to adapt to changing requirements throughout the development process.
o Faster time-to-market as features are developed and deployed in small increments.
Disadvantages:
o Can be challenging to scale to large projects, as the iterative approach may require a high level of coordination.
o Continuous changes may cause scope creep, potentially leading to instability in the product's requirements.
o Requires close collaboration and strong communication, which can be difficult in large or distributed teams.
14
Comparison:
15
About My Project:
Agri-business and supply chain Management
Functional Requirements:
◻ Farmer Registration & Profile Management
◻ Inventory Management
◻ Order Management System
◻ Supply Chain Tracking
◻ Warehouse Management
◻ Logistics & Delivery Management
◻ Payment & Billing System
◻ Market Price Tracking
Model: Agile model
Reasons:
◻ – Agriculture and supply chain industries face frequent changes in demand, weather conditions, and regulations.
Agile allows for continuous adaptation.
◻ – project involves multiple modules (e.g., farmer management, logistics, payment systems), which can be
developed and improved in iterations.
◻ – Agile enables early deployment of core functionalities, so users can start benefiting from the system while
additional features are built.
◻ – Farmers, suppliers, and stakeholders can provide regular feedback, ensuring the system meets real-world needs.
◻ – Continuous testing and updates help identify and fix issues early, reducing risks in the project.
◻– A project may expand to include new features like AI-based demand forecasting, IoT integration,
etc. Agile supports incremental scaling.
16
Quiz:
2. State weather the following statements are true or false. Justify your answer.
a) Software development organizations which follow the iterative waterfall model for product
development provide maximum customer satisfaction.
◆ False
Justification:
The iterative waterfall model allows limited flexibility as each phase depends on the previous one,
and changes are difficult to implement once a phase is completed.
Signature of Faculty:
17
18