Introduction to Waterfall Model in Software Engineering
Introduction to Waterfall Model in Software Engineering
The Waterfall model is the earliest SDLC approach that was used for software development.
The waterfall Model illustrates the software development process in a linear sequential flow.
This means that any phase in the development process begins only if the previous phase is
complete. In this waterfall model, the phases do not overlap.
Waterfall approach was first SDLC Model to be used widely in Software Engineering to
ensure success of the project. In "The Waterfall" approach, the whole process of software
development is divided into separate phases. In this Waterfall model, typically, the outcome
of one phase acts as the input for the next phase sequentially.
The following illustration is a representation of the different phases of the Waterfall Model:
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
1. FEASIBILITY STUDY
The main goal of this phase is to determine whether it would be financially and technically
feasible to develop the software.
The feasibility study involves understanding the problem and then determining the various
possible strategies to solve the problem. These different identified solutions are analyzed
based on their benefits and drawbacks, The best solution is chosen and all the other phases
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
are
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
carried out as per this solution strategy.
The aim of the requirement analysis and specification phase is to understand the exact
requirements of the customer and document them properly. This phase consists of two
different activities.
Requirement gathering and analysis: Firstly all the requirements regarding the software are
gathered from the customer and then the gathered requirements are analyzed. The goal of the
analysis part is to remove incompleteness (an incomplete requirement is one in which some
parts of the actual requirements have been omitted) and inconsistencies (an inconsistent
requirement is one in which some part of the requirementcontradicts some other part).
3. DESIGN
The goal of this phase is to convert the requirements acquired in the SRS into a format that
can be coded in a programming language. It includes high-level and detailed design as well
as the overall software architecture. A Software Design Document is used to document all of
this effort (SDD)
In the coding phase software design is translated into source code using any suitable
programming language. Thus each designed module is coded. The aim of the unit testing
phase is to check whether each module is working properly or not.
Integration of different modules is undertaken soon after they have been coded and unit
tested. Integration of various modules is carried out incrementally over a number of
steps.During each integration step, previously planned modules are added to the
partiallyintegrated system and the resultant system is tested. Finally, after all the modules
have been successfully integrated and tested, the full working system is obtained and system
testing is carried out on this.
System testing consists of three different kinds of testing activities as described below.
Alpha testing: Alpha testing is the system testing performed by the development team.
Beta testing: Beta testing is the system testing performed by a friendly set of customers.
Acceptance testing: After the software has been delivered, the customer performed
acceptance testing to determine whether to accept the delivered software or reject it.
6. MAINTENANCE
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
Maintenance is the most important phase of a software life cycle. The effort spent on
maintenance is 60% of the total effort spent to develop a full software. There are basically
three types of maintenance.
Corrective Maintenance: This type of maintenance is carried out to correct errors that
were not discovered during the product development phase.
Perfective Maintenance: This type of maintenance is carried out to enhance the
functionalities of the system based on the customer’s request.
Adaptive Maintenance: Adaptive maintenance is usually required for porting the
software to work in a new environment such as working on a new computer platform or
with a new operating system.
The classical waterfall model is an idealistic model for software development. It is very
simple, so it can be considered the basis for other software development life cycle models.
Below are some of the major advantages of this SDLC model.
Easy to Understand: Classical Waterfall Model is very simple and easy to understand.
Individual Processing: Phases in the Classical Waterfall model are processed one at a time.
Properly Defined: In the classical waterfall model, each stage in the model is clearly defined.
Clear Milestones: Classical Waterfall model has very clear and well-understood milestones.
Properly Documented: Processes, actions, and results are very well documented.
Reinforces Good Habits: Classical Waterfall Model reinforces good habits like define-
before- design and design-before-code.
Working: Classical Waterfall Model works well for smaller projects and projects where
requirements are well understood.
The Classical Waterfall Model suffers from various shortcomings, basically, we can’t use it in
real projects, but we use other software development lifecycle models which are based on the
classical waterfall model. Below are some major drawbacks of this model.
No Feedback Path: In the classical waterfall model evolution of software from one phase
to another phase is like a waterfall. It assumes that no error is ever committed by
developers during any phase. Therefore, it does not incorporate any mechanism for error
correction.
Difficult to accommodate Change Requests: This model assumes that all the customer
requirements can be completely and correctly defined at the beginning of the project, but
actually customer’s requirements keep on changing with time. It is difficult to
accommodate any change requests after the requirements specification phase is complete.
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
No Overlapping of Phases: This model recommends that a new phase can start only after
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
the completion of the previous phase. But in real projects, this can’t be maintained. To
increase efficiency and reduce cost, phases may overlap.
Limited Flexibility: The Waterfall Model is a rigid and linear approach to software
development, which means that it is not well-suited for projects with changing or uncertain
requirements. Once a phase has been completed, it is difficult to make changes or go back
to a previous phase.
Limited Stakeholder Involvement: The Waterfall Model is a structured and sequential
approach, which means that stakeholders are typically involved in the early phases of the
project (requirements gathering and analysis) but may not be involved in the later phases
(implementation, testing, and deployment).
Late Defect Detection: In the Waterfall Model, testing is typically done toward the end of
the development process. This means that defects may not be discovered until late in the
development process, which can be expensive and time-consuming to fix.
Lengthy Development Cycle: The Waterfall Model can result in a lengthy development
cycle, as each phase must be completed before moving on to the next. This can result in
delays and increased costs if requirements change or new issues arise.
Not Suitable for Complex Projects: The Waterfall Model is not well-suited for complex
projects, as the linear and sequential nature of the model can make it difficult to manage
multiple dependencies and interrelated components.
Only well-defined, unambiguous, and fixed requirements are employed with this
paradigm.
The definition of a product is constant.
People understand technology.
There are no unclear prerequisites.
There are many resources with the necessary knowledge readily available.
When it’s a brief project.
The Waterfall approach involves little client engagement in the product development
process.The product can only be shown to end consumers when it is ready.
Large-scale Software Development Projects: The Waterfall Model is often used for
large- scale software development projects, where a structured and sequential approach is
necessary to ensure that the project is completed on time and within budget.
Safety-Critical Systems: The Waterfall Model is often used in the development ofsafety-
critical systems, such as aerospace or medical systems, where the consequences of errors or
defects can be severe.
Government and Defense Projects: The Waterfall Model is also commonly used in
government and defense projects, where a rigorous and structured approach is necessary to
ensure that the project meets all requirements and is delivered on time.
Projects with well-defined Requirements: The Waterfall Model is best suited for projects
with well-defined requirements, as the sequential nature of the model requires a clear
understanding of the project objectives and scope.
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
Practical-2
Requirements gathering is the process of identifying your project’s exact requirements from
startto finish. This process occurs during the project initiation phase but you’ll continue to
manage your project requirements throughout the entire project timeline.
Requirements gathering typically happens during the project brief or initial kick-off meeting.
Some questions include:
How long will our project schedule be?
Who will be involved in the project?
What risks may we face in this project?
Requirements gathering shouldn’t be complex, but it’s an important component of the project
initiation process.
For a Waste Management Inspection Tracking System, the requirement gathering
process would involve:
1.Stakeholder Identification:Identify and list all stakeholders involved in the Waste Management
Inspection Tracking System project. This include administrators, inspectors, supervisors, regulatory
bodies, and they and other relevant parties.
2.Interviews and Surveys: Conduct interviews and workshops with stakeholders to gather insights
into their expectations and requirements.
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
6.Prototyping: Develop prototypes or mockups to visually represent potential
system features. Use prototypes to gather feedback and refine requirements
iteratively.
7.Prioritization:Prioritize requirements based on their criticality and impact on the success of the
WMITS. Identify core functionalities that must be included in the initial release.
Technical Requirement Specification is a detailed document that outlines the technical aspects of a
project. It translates the functional requirements into a technical solution, providing guidance for the
development, implementation, and maintenance of the system.
Components:
1.System Architecture: Define the overall system architecture, including hardware components,
network infrastructure, and software layers. Specify whether the system will be cloud-based, on-
premises, or a hybrid solution.
2.Database Design: Specify the database structure, including tables, relationships, and data
types.Define data storage and retrieval mechanisms, ensuring efficiency and data integrity.
5.User Interface Design:Provide guidelines for the user interface design, ensuring a user-friendly and
intuitive experience. Specify design principles, layout, and interactive elements.
7.Training Requirements:Outline training requirements for users, administrators, and support staff.
Identify the training materials and resources needed for effective system adoption.
8.Maintenance and Support:Define procedures for ongoing system maintenance, updates, and support.
Specify the expected response times for addressing issues and implementing updates.
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
Practical- 3
AIM: - Development of DFD and E-R diagram for the software domain problem.
What is a data flow diagram?
A data flow diagram (DFD) maps out the flow of information for any process or system. It
uses defined symbols like rectangles, circles and arrows, plus short text labels, to show data
inputs, outputs, storage points and the routes between each destination. Data flowcharts can
range from simple, even hand-drawn process overviews, to in-depth, multi-level DFDs that
dig progressivelydeeper into how the data is handled. They can be used to analyze an existing
system or model a new one. Like all the best diagrams and charts, a DFD can often visually
“say” things that would be hard to explain in words, and they work for both technical and
nontechnical audiences, from developer to CEO. That’s why DFDs remain so popular after all
these years. While they work well for data flow software and systems, they are less applicable
nowadays to visualizinginteractive, real-time, or database-oriented software or systems.
Characteristics of DFD
Components of DFD
Process Input to output transformation in a system takes place because of process function.
The symbols of a process are rectangular with rounded corners, oval, rectangleor a circle.
The process is named a short sentence, in one word or a phrase to express its essence.
Data Flow Data flow describes the information transferring between different parts of
the systems. The arrow symbol is the symbol of data flow. A relatable name should be
given to the flow to determine the information which is being moved. Data flow also
represents material along with information that is being moved. Material shifts are modeled
in systems that are not merely informative. A given flow should only transfera single type
of information. The direction of flow is represented by the arrow which can also be bi-
directional.
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
Warehouse The data is stored in the warehouse for later use. Two horizontal lines
represent the symbol of the store. The warehouse is simply not restricted to being a data
file,rather it can be anything like a folder with documents, an optical disc, a filing cabinet.
The data warehouse can be viewed independent of its implementation. Whenthe data
flow from the warehouse it is considered as data reading and when data flowsto the
warehouse it is called data entry or data updating.
Terminator The Terminator is an external entity that stands outside of the system and
communicates with the system. It can be, for example, organizations like banks, groups of
people like customers or different departments of the same organization, which is not apart
of the model system and is an external entity.
0 LEVEL DFD
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
What is ER Diagram?
The Entity Relational Model is a model for identifying entities to be represented in the database
and representation of how those entities are related. The ER data model specifies enterprise
schema that represents the overall logical structure of a database graphically.
The Entity Relationship Diagram explains the relationship among the entities present in the
database. ER models are used to model real-world objects like a person, a car, or a company
and the relation between these real-world objects. In short, the ER Diagram is the structural
format of the database.
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
Practical-4
AIM: Draw Use case and Activity Diagrams for the project definition.
Use case diagram: A Use Case Diagram is a vital tool in system design, it provides a visual
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
Activity Diagram:
Activity Diagrams are used to illustrate the flow of control in a system and refer to the steps involved
in the execution of a use case. It is a type of behavioral diagram and we can depict both sequential
processing and concurrent processing of activities using an activity diagram ie an activity diagram
focuses on the condition of flow and the sequence in which it happens .
Activity diagram for waste management system:
12102040701109,12102040701110,12102040701121,12202040703016
Software Engineering(102045602)
Department of Computer Engineering
PRACTICAL: 5
AIM: Draw the Sequence Diagram for the project definition.
Sequence Diagram:
Sequence Diagram is an interaction diagram that details how operations are carried out -- what messages
are sent and when. Sequence diagrams are organized according to time. The time progresses as you go
down the page. The objects involved in the operation are listed from left to right according to when they
take part in the message sequence.
Practical:6
Aim: Development of State Transition Diagram for Software project definition.
,
Software Engineering(102045602)
Department of Computer Engineering
Object diagram:
Object diagrams are a visual representation in UML (Unified Modeling Language)
that illustrates the instances of classes and their relationships within a system at a
specific point in time. They display objects, their attributes, and the links between
them, providing a snapshot of the system’s structure during execution. Since object
diagrams depict behavior when objects have been instantiated, we can study the
behavior of the system at a particular instant.
Object Diagram for waste management system:
,
Software Engineering(102045602)
Department of Computer Engineering
PRACTICAL:8
SOLUTION:
,
Software Engineering(102045602)
Department of Computer Engineering
1. Users
2. Categories
3. Address
4. Subcategory
6. Trash Request
7. Review
8. Feedback
,
Software Engineering(102045602)
Department of Computer Engineering
9. Gallery
10. Blog
,
Software Engineering(102045602)
Department of Computer Engineering
Practical-9
Aim: Draw the Deployment Diagram for the project definition.
Deployment Diagram:
A Deployment Diagram in software engineering is a type of Structural UML
Diagram that shows the physical deployment of software components on
hardware nodes. It illustrates the mapping of software components onto the
physical resources of a system, such as servers, processors, storage devices, and
network infrastructure.
Deployment Diagram for waste management system:
,
Software Engineering(102045602)
Department of Computer Engineering
PRACTICAL:10
Aim: Design the Test Cases waste management inspection tracking system.
1. User Authentication:
2. Inspection Management:
3. Reporting:
5. Dashboard:
7. Communication:
8. Security:
,
Software Engineering(102045602)
Department of Computer Engineering
9. Performance:
PRACTICAL: 11
AIM: prepare SRS document for waste management inspection tracking system.
1. Introduction
1.1 Purpose
The purpose of this document is to define the requirements for the development of a
Waste Management Inspection Tracking System. This system aims to streamline and
automate the process of tracking waste management inspections conducted by regulatory
bodies or organizations responsible for waste management.
1.2 Scope
The Waste Management Inspection Tracking System will provide a platform for
managing inspection schedules, recording inspection findings, generating reports, and
facilitating communication among stakeholders involved in waste management.
2. Overall Description
3. Specific Requirements
3.2.3 Reporting
The system shall generate comprehensive inspection reports including inspection details,
findings, recommendations, and corrective actions.
Reports shall be exportable in multiple formats such as PDF, Excel, and CSV.
3.2.5 Dashboard
The system shall provide a dashboard for real-time monitoring of inspection activities,
performance metrics, and analytics.
3.2.7 Communication
The system shall support communication features such as messaging and commenting to
facilitate collaboration among users.
3.3.1 Performance
The system shall be capable of handling concurrent user sessions without significant
performance degradation.
Response time for user interactions shall be within acceptable limits.
3.3.2 Security
The system shall implement industry-standard security measures including encryption,
secure authentication, and access controls to protect sensitive data.
Regular security audits and updates shall be performed to ensure system integrity.
3.3.3 Reliability
,
Software Engineering(102045602)
Department of Computer Engineering
The system shall have a high level of reliability with minimal downtime for maintenance
or upgrades.
Data backups shall be performed regularly to prevent data loss in case of system failures.
3.3.4 Scalability
The system shall be designed to accommodate future growth in terms of user base and
data volume.
Scalability measures such as load balancing and resource optimization shall be
implemented.
4. Other Requirements
5. Conclusion
,
Software Engineering(102045602)
Department of Computer Engineering
Practical- 12
AIM : Why Agile process models with DevOps are recommended in big companies like
Infosys. Justify with one of the case studies (You can explore it with any tool like JIRA).
Write a report of 3-5 pages on case study.
Agile Model | Introduction
The Agile Model is an incremental and iterative process of software development. It defines
eachiteration’s number, duration, and scope in advance. Every iteration is considered a short
“frame” in the Agile process model, which mostly lasts from two to four weeks.
Agile Model divides tasks into time boxes to provide specific functionality for the release.
Each build is incremental in terms of functionality, with the final build containing all the
attributes. The division of the entire project into small parts helps minimize the project risk
and the overall project delivery time.
,
Software Engineering(102045602)
Department of Computer Engineering
Phases of Agile MODEL:
Requirements Gathering: In this Agile model phase, you must define the requirements.
The business opportunities and the time and effort required for the project should also be
discussed.
Design the Requirements: Following the feasibility study, you can work with
stakeholders to define requirements. Using the high-level UML diagram, you can
determine how the new system will be incorporated into your existing software system.
Develop/Iteration: The real work begins at this stage after the software development
team defines and designs the requirements.
Test: This phase of the Agile Model involves the testing team. For example, the Quality
Assurance team checks the system’s performance and reports bugs during this phase.
Deployment: In this phase, the initial product is released to the user.
Feedback: After releasing the product, in this phase, the team receives feedback about
the product and works on correcting bugs based on the received feedback.
Compared to Waterfall, Agile cycles are short. There may be many such cycles in a project.
Thephases are repeated until the product is delivered.
,
Software Engineering(102045602)
Department of Computer Engineering
2. Continuous Integration and Delivery (CI/CD): Agile, when combined with DevOps
practices, enables continuous integration and delivery. This means that code changes are
automatically integrated, tested, and delivered to production environments, reducing the
time between development and deployment.
4. Feedback Loops: Agile and DevOps emphasize the importance of feedback loops at
various stages of the development lifecycle. This enables continuous improvement by
identifying issues early in the process, allowing teams to make necessary adjustments.
5. Risk Management: The iterative nature of Agile and the automated testing and
deployment aspects of DevOps contribute to effective risk management. By delivering
smaller, incremental updates, teams can identify and address issues earlier in the
development process.
Netflix, an entertainment giant, has emerged as a pioneering force in the tech world due to
its unparalleled tech innovation. Their practices, especially in DevOps and Agile, have
significantly influenced the technology world with its world-class engineering efforts,
culture, and product development over the years.
DevOps at Netflix
Netflix's approach to DevOps involves moving their infrastructure from on-premises to the
cloudto scale their service, a process that took several years to complete. One of the key
reasons Netflix is successful today is because they recognized the scalability advantages of
the cloud early on and allowed Amazon to handle the heavy lifting of building the best data
centers.
,
Software Engineering(102045602)
Department of Computer Engineering
Netflix also implemented containerization, which provides consistency between
environments and allows containers to be destroyed and created very quickly, which helps
with scaling,reliability, and efficient rollbacks.
,
Software Engineering(102045602)
Department of Computer Engineering
Netflix doesn't enforce using specific programming languages and frameworks. They aim to
hireintelligent people and provide them with the freedom to solve problems in their own
way. Every engineer at Netflix has full access to the production environment, and there are
neither strict policies nor procedures that prevent them from accessing the production
environment.
Netflix is a data-driven, decision-driven company. It doesn't rely on guesses or fall victim to
gut instincts and traditional thinking. Instead, it invests in algorithms and systems that comb
enormous amounts of data quickly and notify when there's an issue.
Agile at Netflix
Netflix operates in an Agile fashion, focusing on fast feedback, iterative changes, and cross-
collaboration. One of the major advantages of Agile is that it allows teams to release
software more often instead of having longer release cycles. Netflix has found that releasing
new movies and shows on a weekly basis keeps customers excited and intrigued, so they
don’t get bored by the same selections over and over.
Netflix takes user stories to the next level by understanding every user story with advanced
personalization. In fact, 75% of Netflix views are a result of their recommendation engine. By
creating different trailers and artwork for content based on viewers' previous movie and
show choices, they’re able to more precisely communicate recommendations with people
based ontheir interests and behavior.
Scrum Methodology
The adoption of the Scrum framework facilitated the iterative and incremental
development of the recommendation system. Sprints, typically lasting two weeks,
allowed teams to prioritize and deliver high-value features rapidly. Regular sprint
reviewsand retrospectives provided valuable feedback loops for continuous
improvement.
,
Software Engineering(102045602)
Department of Computer Engineering
Benefits Realized
Conclusion
Netflix's Agile implementation for the content recommendation system showcases the
effectiveness of Agile methodologies in the dynamic and fast-paced world of streaming
services. By embracing cross-functional teams, Scrum, and continuous improvement
through A/B testing, Netflix enhanced its ability to deliver a personalized and engaging user
experience. The benefits realized, including rapid adaptation to user preferences and a quick
response to market trends, emphasize the importance of agility in the highly competitive
streaming industry. As Netflix continues to innovate, its Agile practices serve as a valuable
model for other organizations seeking to navigate the ever-changing landscape of digital
entertainment.