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

SE_Lab manual[1]

The document outlines the coursework and practical assignments for the Software Engineering subject (203105304) for B.Tech 3rd Year students in the 2023-24 academic year. It includes a certification of completion for a student, practical aims, project definitions, and various software engineering models with justifications for their selection or rejection. The main project focuses on developing a navigation software that uses hand gesture recognition to replace traditional input devices.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

SE_Lab manual[1]

The document outlines the coursework and practical assignments for the Software Engineering subject (203105304) for B.Tech 3rd Year students in the 2023-24 academic year. It includes a certification of completion for a student, practical aims, project definitions, and various software engineering models with justifications for their selection or rejection. The main project focuses on developing a navigation software that uses hand gesture recognition to replace traditional input devices.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 25

Faculty of Engineering & Technology

Subject Name: SOFTWARE ENGINEERING


Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

FACULTY OF ENGINEERING AND TECHNOLOGY


BATCHELOR OF TECHNOLOGY
SOFTWARE ENGINEERING

(203105304)

Date of Submission: ......................... Staff In charge: ...........................

Head Of Department: ..........................................

1|Page Enrolment No:210304124262


Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

Certificate
This is to certify that Mr./Ms. RAVULA BHAVYA SREE with

enrolment no. 210304124262 has successfully completed his laboratory

experiments in the Software Engineering (203105304) from the department

of PIET- CSE(AI) during the academic 2023-24

Date of Submission: ......................... Staff In charge: ...........................

Head Of Department: ...........................................

2|Page Enrolment No:210304124262


Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

TABLE OF CONTENT
SR Practical Name Page Performance Assessment Marks Sign
No. No. date date

project Definition and 5


1 objective of the
specified module and
Perform Requirement
Engineering Process.
2 identify Suitable 7
Design and
Implementation
model from the
different software
engineering models.
3 prepare Software 12
Requirement
Specification (SRS) for
the selected module.
4 develop Software 22
project management
planning (SPMP) for
the specified module.
5 do Cost and Effort 24
Estimation using
different Software
Cost Estimation
models.
6 Prepare System
Analysis and System
Design of identified
Requirement
specification using
structure design as
DFD with data
dictionary and
Structure chart for
the specific module.
7 designing the module
using Object Oriented
approach including
Use case Diagram
with scenarios, Class
Diagram and State
Diagram,
Collaboration

3|Page Enrolment No:210304124262


Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

Diagram, Sequence
Diagram and Activity
Diagram.
8 defining Coding
Standards and walk
through.
9 write the test cases
for the identified
module.
10 demonstrate the use
of different Testing
Tools with
comparison.
11 define security and
quality aspects of the
identified module.

4|Page Enrolment No:210304124262


Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

Practical 1
Aim: Project Definition and objective of the specified module and Perform Requirement
Engineering Process.

Team Members:
V. Nageswarrao (210304124473) (Team Lead)
Y. Ritesh (210304124451)
S. Priyanka (210304124463)
S. Padma Sri (210304124300)
R. Bhavya Sree (210304124262)

Project Title: Cursor Movement by Hand Gesture: A Navigation Software

Project Definition:
• Hand gesture recognition is one method of interaction for human beings. Hand gestures are defined
as movements of the human hand that are used to express meaningful information and thoughts. We
use our hands every day while talking to present ideas, points at people or things, and so on.
Everyone is familiar with hand gesture interaction. It has even been suggested that hand gestures will
soon replace the touchscreen technology of mobile phones and other devices. In HCI systems, hand
gesture-based interfaces are broadly applied in many practical applications, such as sign language
recognition, robot control, virtual mouse control, exploration of medical image data, human–vehicle
interaction, and immersive gaming technology. Therefore, the recognition of human hand gestures
from videos has been one of the main goals of computer vision for decades, particularly with
traditional cameras (RGB cameras).
• However, even when using RGB cameras, most existing algorithms tend to fail when faced with
changing light levels, complex backgrounds, different user–camera distances, multiple people, or
background or foreground movements during the hand tracking. Microsoft’s Kinect RGB with depth
(RGB-D) camera has extended depth-sensing technology and interfaces for human-motion analysis
applications.

Vision:
At present, with constant developments in information technology, human beings are attempting to
communicate with computers in more natural ways. The traditional input devices for human–
computer interaction (HCI), such as mice, keyboards, remotes, and so on, no longer serve as natural
means of interaction owing to their lack of flexibility. In general, the natural ways for humans to
interact with computers include voice commands and body language, and these are available in many
commercial electronic products. Although speech recognition is one of the natural methods for
human–computer interaction, it is limited by noisy environments and the different ways that people
pronounce the same words. Another human–computer communication method involves body
language-based interaction. In many cases, interacting with a computer through body language is
more reliable than other methods. Body language can involve different types of expression, such as
hand gestures, body poses, and facial emotions. Compared with gestures with other body parts, hand

5|Page Enrolment No:210304124262


Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

gestures are the most efficient means of meaningful expression and serve as a common language for
all humans.

Objective:
• The final product/ software is meant to replace traditional mouse and touchpads.
• Lessen the hardware uses.
• Software designed to use as less computer resources (RAM, CPU) as possible to reduce the
computer load and decrease technical lags and human errors.

Elicitation and Analysis:


• Upon gathering information from various websites and research papers from other institutes, we
came to know that there are a few problems with the traditional mouse, such as frequent hardware
failure, problems with drivers, touchpad glitches, cursor disappearing from the screen, the cursor
jumping around, the pointer freezing and then disappearing, and the cursor not moving.
• Our software can solve such problems with ease.
• It opens an entirely new way of possibilities to communicate with the device.

Scope:
• Designing and implementing computer vision algorithms to track the position and movement of the
user's hand in real-time.
• Developing machine learning algorithms to recognize predefined hand gestures made by the user.
• Mapping recognized gestures to corresponding cursor movements, such as left/right, up/down, or
click actions.
• Integrating the system with the operating system's user interface to provide seamless cursor control
across different platforms and applications.
• Including a calibration step to adapt the system to individual users' hand sizes and movements.
• Allowing users to customize or define their own gestures for specific actions.
• Conducting rigorous testing to ensure the accuracy, reliability, and responsiveness of the gesture-
based cursor control system.
• Evaluating the performance of the system and gathering user feedback for iterative improvements.

6|Page Enrolment No:210304124262


Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

Practical 2
Aim: Identify Suitable Design and implementation model from the different software engineering
models.

Team Members:
V. Nageswarrao (210304124473) (Team Lead)
Y. Ritesh (210304124451)
S. Priyanka (210304124463)
S. Padma Sri (210304124300)
R. Bhavya Sri (210304124262)

Project Title: Cursor Movement by Hand Gesture: A Navigation Software

Models:
• Software models are abstract representations or structures that help software developers and
stakeholders understand, design, and communicate various aspects of a software system. These
models provide a visual or conceptual framework that aids in the analysis, design, implementation,
and maintenance of software.
• These models serve as guidelines or frameworks to structure the software development process.
They help teams plan, organize, and execute software projects by providing a roadmap and defining
the relationships between different development activities. The choice of model depends on various
factors, including project size, complexity, requirements volatility, and the team's preferences and
expertise.

Water fall model: 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.
Justification For not choosing Waterfall Model
• Lack of Flexibility: The Waterfall model follows a sequential and rigid approach, where each phase
is completed before moving on to the next. This lack of flexibility makes it challenging to
accommodate changes in requirements or address issues discovered during later stages of the
development process
• Limited Customer Involvement: The Waterfall model typically involves minimal customer
involvement after the initial requirements gathering phase.
• Higher Risk of Requirement Misinterpretation: In the Waterfall model, the requirements are
gathered and finalized at the beginning of the project, with little room for changes or refinements
later on.
• Development Cycles: The Waterfall model typically follows a linear sequence of phases, with each
phase being completed in its entirety before moving on to the next.
• Long Development Cycles: The Waterfall model typically follows a linear sequence of phases, with
each phase being completed in its entirety before moving on to the next.

7|Page Enrolment No:210304124262


Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

Incremental Model: The incremental 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.
Justification for not choosing Incremental Model
• Complexity Management: The Incremental model is suitable for projects that can be easily divided
into independent and functional increments. However, for complex projects with interdependent
modules or components, managing the dependencies and ensuring smooth integration of increments
can become challenging.
• Lack of Early Customer Feedback: The Incremental model focuses on delivering functional
increments in a sequential manner. While this approach allows for early delivery of usable
functionality, it may not provide opportunities for frequent customer feedback.
• Limited Scope for Requirement Changes: The Incremental model assumes that the initial
requirements are well-defined and stable. Once an increment is defined and implemented, making
significant changes to the requirements of subsequent increments can be challenging.
• Increased Effort for Integration and Testing: With the Incremental model, each increment is
developed and tested separately before being integrated into the larger system.

Iterative model: In this Model, you can start with some of the software specifications and develop
the first version of the software. After the first version if there is a need to change the software, then
a new version of the software is created with a new iteration. Every release of the Iterative Model
finishes in an exact and fixed period that is called iteration. The Iterative Model allows the accessing
earlier phases, in which the variations made respectively. The final output of the project renewed at
the end of the Software Development Life Cycle (SDLC) process.
Justification for not choosing Iterative Model
• Clear and Stable Requirements: The Iterative model is well-suited for projects where requirements
are not well-defined or are likely to evolve over time. However, if the project has clear, stable, and
well-understood requirements from the beginning, following an iterative approach may introduce
unnecessary complexity and overhead.
• Time and Resource Constraints: The Iterative model requires multiple iterations or cycles to
complete the development process. Each iteration involves activities such as requirements gathering,
design, implementation, testing, and evaluation.
• Minimal Scope for Customer Involvement: The Iterative model relies heavily on customer
feedback and collaboration at each iteration. However, there may be situations where customer
involvement is limited or not feasible due to various reasons such as confidentiality constraints,
regulatory compliance, or the unavailability of key stakeholders.
• Low Risk Tolerance: The Iterative model involves a level of uncertainty and risk due to its iterative
nature. Each iteration presents an opportunity to identify and address risks, issues, and changes.
• Small, Simple Projects: The Iterative model is often considered beneficial for complex and large-
scale projects where the requirements are not fully known upfront. However, for small and relatively
simple projects with well-defined requirements and a limited scope, adopting an iterative approach
may add unnecessary complexity and overhead.

8|Page Enrolment No:210304124262


Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

Spiral model: Spiral model is one of the most important Software Development Life Cycle
models, which provides support for Risk Handling. In its diagrammatic representation, it looks like a
spiral with many loops. The exact number of loops of the spiral is unknown and can vary from
project to project. Each loop of the spiral is called a Phase of the software development process. The
exact number of phases needed to develop the product can be varied by the project manager
depending upon the project risks. As the project manager dynamically determines the number of
phases, so the project manager has an important role to develop a product using the spiral model.
Justification for not choosing Spiral Model
• Less suitable for small projects: The Spiral Model is better suited for large and complex projects
due to its focus on risk analysis and extensive planning. For small projects with limited risks, the
overhead of this model might not be justified.
• Time-consuming: The iterative nature of the Spiral Model requires multiple cycles, each involving
risk analysis, planning, and evaluation. This can lead to a longer development timeline compared to
more streamlined models like Agile.
• Costly: The Spiral Model can be costlier to implement due to the additional time and effort spent
on risk analysis, documentation, and planning. Smaller organizations with limited budgets might find
it impractical.
• Complexity of risk analysis: Conducting comprehensive risk analysis at each cycle can be
challenging, and if not done effectively, it may not provide significant benefits. This complexity can
lead to inadequate risk assessment and management.
• Difficulty in managing changes: While the Spiral Model does allow for changes during
development, it can be less flexible compared to Agile, making it challenging to accommodate
frequent or major changes in requirements.
• Lack of emphasis on customer collaboration: The Spiral Model does not prioritize extensive
customer involvement throughout the development process as much as Agile does. This might result
in a product that does not fully meet customer expectations.

V Model: The V-Model is a software development life cycle (SDLC) model that provides a
systematic and visual representation of the software development process. It is based on the idea of a
“V” shape, with the two legs of the “V” representing the progression of the software development
process from requirements gathering and analysis to design, implementation, testing, and
maintenance.
Justification for not choosing V Model
• Limited Flexibility and Adaptability: The V-model is a sequential development model that follows
a strict and predetermined sequence of activities. It lacks the flexibility to accommodate
• changes in requirements or address issues that may arise during the development process. Any
modifications or additions to the initial requirements may require significant rework and can lead to
delays and cost overruns.
• Limited Customer Collaboration: The V-model typically involves minimal customer involvement
during the development process. Customers are often only engaged during the initial requirements
gathering phase and then again during the final acceptance testing phase.
• This approach increases the risk of detecting defects or issues late in the process when they are
more expensive and time-consuming to fix. This approach increases the risk of detecting defects or
issues late in the process when they are more expensive and time-consuming to fix. • Limited
Visibility and Traceability: The V-model lacks the visibility and traceability offered by iterative
models. It does not provide intermediate deliverables or review points during the development

9|Page Enrolment No:210304124262


Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

process. As a result, it becomes difficult to track progress, identify potential issues, and ensure
alignment with project goals.
Agile Model: The Agile Model, often referred to as Agile methodology, is an iterative and
incremental approach to software development. It emphasizes flexibility, customer collaboration, and
delivering working software in small, frequent increments. Agile methodologies prioritize
adaptability to changing requirements and focus on delivering value to the customer throughout the
development process.

Justification for Choosing Agile Model


• Iterative and Incremental: Development is divided into small iterations, typically lasting 1-4 weeks,
called sprints. Each sprint results in a potentially shippable product increment.
• Customer Collaboration: Customers, stakeholders, and the development team work closely together
throughout the project. Customer feedback and requirements are actively sought and incorporated
into the product.
• Adaptive and Flexible: Agile embraces change and welcomes new requirements, even late in the
development process. It allows teams to adapt and adjust their plans based on evolving needs.
• Empowered and Self-Organizing Teams: Agile encourages teams to be self-organizing and take
ownership of their work. Decision-making is decentralized, empowering team members to make
choices that benefit the project.
• Continuous Delivery of Value: The focus is on delivering valuable features and functionality with
each iteration, enabling early and frequent delivery of working software.

Visual Representation of Agile Model

10 | P a g e Enrolment No:210304124262
Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

Why Agile Model is better than other models


• Adaptability to Change: Agile embraces change and allows for frequent adjustments in
requirements, making it suitable for projects with evolving or uncertain needs.
• Customer-Centric Approach: Agile puts a strong emphasis on customer collaboration and
feedback, ensuring the delivered product meets customer expectations and delivers value.
• Continuous Delivery of Value: Agile focuses on delivering functional increments regularly,
enabling quicker realization of benefits and early market feedback.
• Reduced Project Risks: Iterative development and regular reviews help identify and address
potential issues early in the process, reducing overall project risks.
• Improved Quality: Frequent testing and continuous integration lead to improved product quality,
as issues are identified and fixed promptly.
• Transparency and Visibility: Agile provides clear visibility into the project's progress, enabling
stakeholders to monitor development and make informed decisions.
• Flexibility in Prioritization: Agile allows for dynamic backlog prioritization, enabling teams to
focus on high-priority features based on changing needs.
• Easier Risk Management: Agile's incremental delivery and constant feedback loop make risk
management more effective and responsive.
• Continuous Improvement: Regular retrospectives in Agile enable teams to reflect on their
processes and improve them iteratively, leading to ongoing optimization.
• Better Handling of Complex Projects: Agile's incremental approach can be more effective in
managing complex projects that require flexibility and continuous learning.
• Customer Satisfaction: Agile's focus on customer involvement and delivering value helps ensure
higher customer satisfaction with the end product.

11 | P a g e Enrolment No:210304124262
Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

Practical 3
Aim: Prepare Software Requirement Specification (SRS) for the selected module.

Team Members:
V. Nageswarrao (210304124473) (Team Lead)
Y. Ritesh (210304124451)
S. Priyanka (210304124463)
S. Padma Sri (210304124300)
R. Bhavya Sri (210304124262)

Project Title: Cursor Movement by Hand Gesture: A Navigation Software

Software Requirement Specification (IEEE 830)

Title
Cursor Movement by Hand Gesture

Table of content
1. Introduction
2. Overall Description
3. Specific Requirements

Introduction
- 1.1 Purpose
The purpose of the project is to create a system that enables users to control the movement of a
computer cursor through hand gestures. By leveraging computer vision and gesture recognition
techniques, the project aims to provide an intuitive and natural interface for cursor control,
eliminating the need for traditional input devices such as a mouse or trackpad. The primary goal
is to enhance accessibility, convenience, and interactivity in various domains, including
accessibility support for individuals with physical disabilities, facilitating presentations and
demonstrations, enabling immersive gaming experiences, and integrating with virtual and
augmented reality environments. By developing this gesture-based cursor control system, the
project aims to explore innovative ways of interaction and advance the field of human-computer
interaction.

- 1.2 Scope
1.2.1. Designing and implementing computer vision algorithms to track the position and
movement of the user's hand in real-time.
1.2.2. Developing machine learning algorithms to recognize predefined hand gestures made
by the user.
1.2.3. Mapping recognized gestures to corresponding cursor movements, such as left/right,
up/down, or click actions.
1.2.4. Integrating the system with the operating system's user interface to provide seamless
cursor control across different platforms and applications.

12 | P a g e Enrolment No:210304124262
Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

1.2.5. Including a calibration step to adapt the system to individual users' hand sizes and
movements.
1.2.6. Allowing users to customize or define their own gestures for specific actions.
1.2.7. Conducting rigorous testing to ensure the accuracy, reliability, and responsiveness of
the gesture-based cursor control system.
1.2.8. Evaluating the performance of the system and gathering user feedback for iterative
improvements.

- 1.3 Definition, Acronyms and Abbreviations


1.3.1. Gesture-Based Cursor Control System: A software system that enables users to
control the movement of a computer cursor using hand gestures instead of traditional input
devices like a mouse or trackpad.

- 1.4 References
1.4.1. Shotton, J., Fitzgibbon, A., Cook, M., Sharp, T., Finocchio, M., Moore, R., ... &
Blake, A. (2011). Real-time human pose recognition in parts from single depth images. In
Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)
(pp. 1297-1304).
1.4.2. OpenCV: Open Source Computer Vision Library. Retrieved from https://opencv.org/
1.4.3. TensorFlow: An open-source machine learning framework. Retrieved from
https://www.tensorflow.org/
1.4.4. PyTorch: An open-source machine learning library. Retrieved from
https://pytorch.org/
1.4.5. Unity: A cross-platform game development engine. Retrieved from https://unity.com/

- 1.5 Overview
The project aims to develop a gesture-based cursor control system that allows users to control the
movement of a computer cursor using hand gestures. It leverages computer vision and machine
learning techniques to track hand movements and recognize gestures. The system will integrate
with the operating system's user interface and provide calibration and customization options. The
project targets improved accessibility, convenience, and interactivity in domains such as
accessibility support, presentations, gaming, and virtual/augmented reality. The focus is on
usability, accuracy, and robustness, with thorough testing and evaluation to ensure performance
and reliability. The project aims to provide an intuitive and natural interface for cursor control.

Overall Description
- 2.1 product Perspective
The gesture-based cursor control system is a standalone software product that enhances human-
computer interaction by allowing users to control the computer cursor through hand gestures. It
complements existing input methods and integrates with the operating system's user interface.
The system offers improved accessibility, convenience, and interactivity, providing an intuitive
and natural interface for cursor control.
- 2.2 product functions
2.2.1. Hand tracking and real-time movement detection.
2.2.2. Gesture recognition and mapping to cursor movements.

13 | P a g e Enrolment No:210304124262
Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

2.2.3. Integration with the operating system's user interface.


2.2.4. Calibration for individual user hand size and movements.
2.2.5. Gesture customization for user-defined actions.
2.2.6. Clicking and selecting functionality.
2.2.7. Compatibility with various operating systems and applications.
2.2.8. Real-time responsiveness and accurate tracking.
2.2.9. Usability and accessibility enhancements.
2.2.10. Integration with virtual and augmented reality environments.
2.2.11. Security of user data during tracking and recognition processes.
2.2.12. System configuration options for user preferences.

- 2.3 User Characteristics


2.3.1. General Users: These are individuals who use computers for various purposes such as
browsing the internet, using productivity applications, or engaging in multimedia activities.
They may have different levels of computer literacy and familiarity with alternative input
methods.
2.3.2. Individuals with Physical Disabilities: Users with physical disabilities or mobility
impairments who may have difficulty using traditional input devices like a mouse or
trackpad. The gesture-based cursor control system provides an accessible and alternative
means of controlling the computer cursor.
2.3.3. Presenters and Educators: Professionals who frequently deliver presentations or
conduct demonstrations. The system allows them to control the cursor during presentations
without being tethered to a mouse or trackpad, enhancing their freedom of movement and
interaction with content.
2.3.4. Gamers: Gaming enthusiasts who seek a more immersive and interactive gaming
experience. The gesture-based cursor control system can be integrated into gaming
applications, enabling users to control in-game elements or navigate interfaces using hand
gestures.
2.3.5. Virtual and Augmented Reality Users: Users who engage with virtual and augmented
reality environments. The gesture-based cursor control system can be integrated with VR or
AR devices, allowing users to interact with virtual objects or navigate interfaces using hand
gestures.
2.3.6. Individuals Seeking Novel Interaction Methods: Users interested in exploring
innovative ways of interacting with technology. They may be early adopters or technology
enthusiasts eager to experiment with gesture-based interaction and alternative input
methods.
2.3.7. Users with Specialized Needs: Users with specific requirements or preferences for
alternative input methods. The system can cater to their unique needs by offering
customization options, allowing them to define their own gestures or adjust settings to suit
their preferences.

- 2.4 Constraints

14 | P a g e Enrolment No:210304124262
Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

2.4.1. Hardware Requirements: The gesture-based cursor control system relies on the
availability of a camera or depth sensor capable of capturing hand movements. The project
must consider the hardware limitations and ensure compatibility with commonly used
devices.
2.4.2. Processing Power: The system's performance may be constrained by the processing
power of the computer or device running the application. Optimizations should be
implemented to ensure efficient and real-time processing of hand tracking and gesture
recognition algorithms.
2.4.3. Lighting Conditions: The accuracy and reliability of hand tracking algorithms may be
affected by varying lighting conditions. The system should be designed to handle different
lighting environments, including low-light conditions or situations with harsh lighting.
2.4.4. User Adaptation: The system may require a calibration step to adapt to individual
users' hand sizes and movements. It should provide an intuitive and straightforward
calibration process to ensure accurate tracking and gesture recognition for each user.
2.4.5. Gesture Complexity: The system should consider the limitations and practicality of
recognizing complex or intricate hand gestures. Designing gestures that are easily
distinguishable and reproducible by users will contribute to improved accuracy and usability.
2.4.6. System Responsiveness: The system should be highly responsive to user gestures,
ensuring minimal delay between the user's action and the corresponding cursor movement.
Low-latency performance is essential for providing a smooth and natural interaction
experience.
2.4.7. User Comfort and Fatigue: The system should be designed to minimize user fatigue
during extended usage periods. Continuous hand gestures may strain the user's muscles and
lead to discomfort, so the system should incorporate ergonomic considerations and provide
breaks or alternative input methods when necessary.
2.4.8. Operating System Compatibility: The system should be compatible with popular
operating systems, such as Windows, macOS, and Linux, to ensure broad accessibility and
usability across different platforms.
2.4.9. Security and Privacy: The system should prioritize the privacy and security of user
data, including hand tracking information and gesture recognition data. Measures should be
implemented to safeguard sensitive information and adhere to relevant data protection
regulations.
2.4.10. User Learning Curve: The system should be intuitive and user-friendly, minimizing
the learning curve for users to familiarize themselves with the hand gestures and interaction
techniques. Clear instructions, tutorials, and visual feedback can help users quickly
understand and adapt to the system.

- 2.5 Assumptions and Dependencies


Assumptions:
2.5.1. Hardware Availability: The project assumes that the necessary hardware, such as a
camera or depth sensor, is readily available for capturing hand movements. It is assumed that
users will have access to compatible devices or can easily acquire them.
2.5.2. Operating System Support: The project assumes that the gesture-based cursor control
system will be developed to support popular operating systems, such as Windows, macOS,

15 | P a g e Enrolment No:210304124262
Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

and Linux. It is assumed that the system can interface with the operating system's user
interface and cursor control functionality.
2.5.3. Hand Visibility: The project assumes that the user's hand will be visible and within
the field of view of the camera or depth sensor during interaction. It is assumed that hand
tracking algorithms will be able to accurately detect and track the user's hand movements.
2.5.4. User Acceptance and Adaptation: The project assumes that users will accept and
adapt to the gesture-based cursor control system. It is assumed that users will be willing to
learn and use hand gestures as an alternative input method, embracing the benefits of
improved accessibility and interactivity.
Dependencies:
2.5.5. Computer Vision Libraries/Frameworks: The project depends on the availability and
functionality of computer vision libraries or frameworks, such as OpenCV or TensorFlow.
These libraries provide essential tools and algorithms for hand tracking and gesture
recognition.
2.5.6. Machine Learning Models: The project relies on machine learning models for gesture
recognition. Dependencies exist on the availability of pre-trained models or the ability to train
models using appropriate datasets and frameworks like PyTorch or TensorFlow.
2.5.7. Software Development Tools: The project depends on standard software development
tools, such as integrated development environments (IDEs), code editors, version control
systems, and build systems. These tools are essential for the development, testing, and
deployment of the gesture-based cursor control system.
2.5.8. User Feedback and Iterative Development: The project may depend on user feedback
and iterative development cycles to refine the system's performance, usability, and overall
user experience. User testing and feedback collection may be necessary to identify and
address any shortcomings or areas for improvement.
2.5.9. Compatibility with Existing Applications: The project may have dependencies on the
compatibility and integration of the gesture-based cursor control system with existing
applications or software environments. Ensuring seamless integration and interoperability
may require coordination and collaboration with application developers or relevant APIs.
2.5.10. Hardware Drivers and Support: The project may depend on the availability and
compatibility of drivers or software support for the camera or depth sensor used for hand
tracking. Compatibility with the underlying hardware and its associated software ecosystem
is essential for reliable and optimal system performance.

Specific Requirement
- 3.1 external interfaces
3.1.1. Camera or Depth Sensor Interface: The gesture-based cursor control system requires
an interface with a camera or depth sensor to capture hand movements. This interface allows
the system to receive video or depth data as input for hand tracking and gesture recognition
algorithms.
3.1.2. Operating System Interface: The system interfaces with the operating system to
control the computer cursor. It utilizes the operating system's cursor control functionality,
allowing the system to translate recognized gestures into cursor movements on the screen.
16 | P a g e Enrolment No:210304124262
Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

3.1.3. User Interface (UI): The system may have its own user interface, providing visual
feedback, customization options, and calibration settings. The UI allows users to interact with
the system, configure preferences, and receive feedback on gesture recognition and cursor
movement.
3.1.4. Application Programming Interface (API): The system may provide an API that
allows developers to integrate gesture-based cursor control into their own applications. This
API enables seamless integration with third-party software, empowering developers to
incorporate gesture-based interaction into their applications.
3.1.5. Hardware Drivers and Support: The gesture-based cursor control system may rely on
specific hardware drivers or software support for camera or depth sensor devices. These
drivers or software components facilitate the interaction between the system and the
hardware, ensuring proper functionality and compatibility.
3.1.6. Networking Interfaces: If the project involves networked functionality, the system
may utilize networking interfaces such as TCP/IP or wireless protocols like WLAN to
communicate with other devices or transmit data. This can be relevant in scenarios where the
system interacts with remote applications or services.
3.1.7. External Libraries and Frameworks: The project may rely on external libraries and
frameworks for computer vision, machine learning, or user interface development. These
interfaces provide pre-built functionalities and tools that enhance the development process
and expand the capabilities of the system.
3.1.8. External Storage or Database Interfaces: If the project involves data storage or
interaction with databases, the system may interface with external storage systems or
databases. This interface allows the system to store or retrieve data related to gesture
recognition, user preferences, or customization settings.

- 3.2 Functions
3.2.1. Hand Tracking: The system tracks the position and movement of the user's hand in
real-time using computer vision algorithms.
3.2.2. Gesture Recognition: The system employs machine learning algorithms to recognize
predefined hand gestures made by the user.
3.2.3. Cursor Movement Mapping: Recognized gestures are mapped to corresponding cursor
movements, such as left/right, up/down, or click actions.
3.2.4. User Interface Integration: The system seamlessly integrates with the operating
system's user interface, allowing users to control the cursor in various applications and
platforms.
3.2.5. Calibration: The system includes a calibration step to adapt to individual users' hand
sizes and movements, enhancing accuracy and usability.
3.2.6. Gesture Customization: Users have the option to customize or define their own
gestures for specific actions, providing flexibility and personalized interaction.
3.2.7. Click and Select: The system supports gestures for mouse clicks and selection,
allowing users to interact with buttons, menus, and other clickable elements.
3.2.8. Compatibility: The system is designed to be compatible with different operating
systems, applications, and hardware configurations.
3.2.9. Performance Optimization: The system ensures efficient performance, minimizing

17 | P a g e Enrolment No:210304124262
Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

latency and providing smooth and responsive cursor control.


3.2.10. Error Handling: The system incorporates error handling mechanisms to address cases
of false recognition or inaccurate tracking, ensuring reliable and consistent performance.
3.2.11. User Feedback: The system provides visual or auditory feedback to users, confirming
successful gesture recognition and cursor movement.

- 3.3 Performance requirements


3.3.1. Real-time Responsiveness: The gesture-based cursor control system should provide
real-time responsiveness to hand movements and recognized gestures. The system should
minimize any perceptible delay between the user's gesture and the corresponding cursor
movement, ensuring a smooth and natural interaction experience.
3.3.2. Tracking Accuracy: The system should accurately track the position and movement of
the user's hand. It should be able to handle various hand orientations, lighting conditions, and
potential occlusions to ensure reliable and accurate tracking performance.
3.3.3. Gesture Recognition Accuracy: The system's gesture recognition algorithms should
achieve a high level of accuracy in recognizing predefined hand gestures. It should be able to
distinguish between different gestures reliably, minimizing false positives and false
negatives.
3.3.4. Robustness to Noise and Variability: The system should be robust to noise and
variations in hand movements. It should be able to handle common challenges such as
occlusions, changes in lighting conditions, and variations in hand shapes or sizes, without
significant degradation in tracking or gesture recognition performance.
3.3.5. Scalability: The system should be designed to handle a scalable number of users and
gestures without a significant decrease in performance. It should be able to accommodate
multiple users interacting simultaneously, providing accurate tracking and gesture recognition
for each user.
3.3.6. Efficient Resource Utilization: The system should utilize system resources, such as
CPU, memory, and power, efficiently. It should aim to minimize resource usage while
maintaining optimal performance and responsiveness.
3.3.7. Compatibility: The system should be compatible with a range of hardware
configurations, operating systems, and software environments. It should be designed to work
seamlessly across different platforms, ensuring a consistent and reliable user experience.
3.3.8. Usability and Intuitiveness: The system should be user-friendly and intuitive,
allowing users to quickly understand and adapt to the hand gestures and interaction
techniques. The gestures should be easy to perform and recognize, reducing the learning
curve for users.
3.3.9. Error Handling and Recovery: The system should handle errors and unexpected
scenarios gracefully. It should provide appropriate feedback or instructions to users in case of
gesture recognition failures or tracking errors, guiding them on how to correct or troubleshoot
issues.
3.3.10. Performance Testing and Optimization: The system should undergo rigorous
performance testing to identify and address any bottlenecks or performance limitations.
Optimization techniques should be employed to improve overall system performance,
reducing computational overhead and enhancing efficiency.

18 | P a g e Enrolment No:210304124262
Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

- 3.4 Logical Database Requirements


3.4.1. User Profiles: The database should store user profiles, including information such as
user IDs, usernames, and preferences. User profiles may include customized gestures,
calibration settings, and other user-specific configurations.
3.4.2. Gesture Definitions: The database should store predefined gesture definitions,
associating each gesture with its corresponding cursor movement or action. This allows the
system to recognize and map recognized gestures accurately.
3.4.3. Gesture History: The database may store gesture history for users, keeping a record of
their past gestures and cursor movements. Gesture history can be useful for analyzing user
behavior, improving gesture recognition algorithms, and providing personalized user
experiences.
3.4.4. Calibration Data: The database should store calibration data for individual users,
capturing their hand sizes, movements, and any other relevant calibration information. This
data helps adapt the system to each user's unique characteristics for accurate tracking and
gesture recognition.
3.4.5. Error Logging: The database may store error logs and diagnostic information related
to gesture recognition failures or tracking errors. This data can aid in troubleshooting and
improving the system's performance and reliability.
3.4.6. System Configuration: The database may store system configuration data, including
settings such as gesture sensitivity, interaction speed, or other customizable parameters. This
allows users to adjust the system's behavior to suit their preferences.
3.4.7. User Feedback: The database may store user feedback and ratings to gather insights
and identify areas for improvement in the system's performance, usability, and user
satisfaction.
3.4.8. Security and Access Control: The database should include mechanisms to enforce
security and access control, protecting sensitive user data and ensuring appropriate
authorization and authentication for database operations.
3.4.9. Backup and Recovery: The database should support backup and recovery mechanisms
to safeguard user data and ensure data integrity in the event of system failures or data loss.

- 3.5 Design Constraints


3.5.1. Hardware Limitations: The design of the gesture-based cursor control system should
consider the hardware limitations of the target devices. This includes factors such as
processing power, memory capacity, and camera or depth sensor capabilities. The system
should be designed to work within these constraints to ensure optimal performance and
compatibility.
3.5.2. Operating System Compatibility: The system should be designed to be compatible
with multiple operating systems, such as Windows, macOS, and Linux. Design constraints
may arise from differences in operating system architectures, APIs, and user interface
guidelines. The system should be adaptable to meet the requirements and constraints of each
target operating system.
3.5.3. Ergonomics and User Comfort: The design should take into account ergonomic
considerations to ensure user comfort and minimize fatigue during extended usage periods.

19 | P a g e Enrolment No:210304124262
Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

Hand gestures should be designed to be easily performed and not impose excessive strain on
the user's hand or arm muscles.
3.5.4. Lighting Conditions: The system design should consider varying lighting conditions
in which the hand tracking and gesture recognition algorithms operate. The system should be
robust enough to handle different lighting scenarios, including low-light environments or
situations with strong backlighting.
3.5.5. User Learning Curve: The system should be designed with an intuitive and user-
friendly interface to minimize the learning curve for users. Gestures should be easy to learn
and perform, ensuring a smooth and enjoyable user experience.
3.5.6. Software Compatibility: The design should consider the compatibility of the gesture-
based cursor control system with existing software applications. It should be designed to
integrate seamlessly with a wide range of applications, ensuring that the system does not
disrupt or conflict with the functionality of other software.
3.5.7. Privacy and Security: The design should prioritize the privacy and security of user
data. Measures should be implemented to protect user information, including hand tracking
data and gesture recognition data. The system should comply with relevant data protection
regulations and industry best practices.
3.5.8. Localization and Internationalization: The design should consider localization and
internationalization requirements to ensure the system can support different languages,
cultural norms, and user preferences. The user interface should be adaptable to accommodate
various languages and regional settings.
3.5.9. Performance Optimization: The design should focus on optimizing system
performance within the given hardware and software constraints. This includes efficient
utilization of system resources, minimizing latency, and ensuring responsive and real-time
cursor control.
3.5.10. Usability for Users with Disabilities: The design should consider the usability
requirements for users with disabilities. It should adhere to accessibility guidelines and
incorporate features such as alternative input methods, audio feedback, or screen reader
compatibility to ensure inclusivity and accessibility for all users.

- 3.7 Object Oriented models


3.6.1. HandTracker Class:
Description: Represents the hand tracking module responsible for detecting and tracking the
user's hand movements.
Attributes: Camera, HandDetectionAlgorithm, TrackingParameters
Methods: StartTracking(), StopTracking(), GetHandPosition()
3.6.2. GestureRecognizer Class:
Description: Handles the recognition of predefined hand gestures.
Attributes: GestureDefinitions, GestureRecognitionAlgorithm
Methods: RecognizeGesture(), AddGestureDefinition(), RemoveGestureDefinition()
3.6.3. CursorControl Class:
Description: Controls the movement of the computer cursor based on recognized gestures.
Attributes: Cursor, GestureToCursorMapping
Methods: MoveCursor(), PerformClick(), PerformDoubleClick()

20 | P a g e Enrolment No:210304124262
Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

3.6.4. UserInterface Class:


Description: Represents the user interface for the gesture-based cursor control system.
Attributes: CalibrationParameters, GestureCustomizationOptions
Methods: DisplayInstructions(), CustomizeGestures(), CalibrateHandSize()
3.6.5. UserProfiles Class:
Description: Manages user profiles, storing individual user configurations and preferences.
Attributes: UserProfileData
Methods: CreateUserProfile(), UpdateUserProfile(), GetUserProfile()
3.6.6. GestureHistory Class:
Description: Stores and manages the history of recognized gestures and associated cursor
movements.
Attributes: GestureRecords
Methods: AddGestureRecord(), GetGestureHistory()

Appendix A: Glossary
Acronyms and Abbreviations:
1. SRS: Software Requirements Specification
2. UI: User Interface
3. AI: Artificial Intelligence
4. CV: Computer Vision
5. ML: Machine Learning
6. GUI: Graphical User Interface
7. OS: Operating System
8. VR: Virtual Reality
9. AR: Augmented Reality
10. API: Application Programming Interface
11. FPS: Frames Per Second
12. HCI: Human-Computer Interaction
13. SDK: Software Development Kit
14. ROI: Region of Interest
15. CNN: Convolutional Neural Network
16. FPS: Frames Per Second
17. SDK: Software Development Kit
18. UX: User Experience
19. GUI: Graphical User Interface
20. HMD: Head-Mounted Display
21. RGB: Red Green Blue
22. FPS: Frames Per Second
23. TCP/IP: Transmission Control Protocol/Internet Protocol
24. JSON: JavaScript Object Notation
25. API: Application Programming Interface
26. RAM: Random Access Memory
27. CPU: Central Processing Unit
28. GPU: Graphics Processing Unit
29. I/O: Input/Output

21 | P a g e Enrolment No:210304124262
Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

30. RGB-D: Red Green Blue Depth


Practical 4
Aim: Develop Software Project Management Planning (SPMP) for the specified module.

Team Members:
V. Nageswarrao (210304124473) (Team Lead)
Y. Ritesh (210304124451)
S. Priyanka (210304124463)
S. Padma Sri (210304124300)
R. Bhavya Sri (210304124262)

Project Title: Cursor Movement by Hand Gesture: A Navigation Software

Gantt chart
• A Gantt chart is a visual representation of a project schedule that is often included in the Software
Project Management Plan (SPMP). It is a bar chart that displays the project's tasks and activities
along with their corresponding start and end dates. The Gantt chart provides project managers and
stakeholders with a clear, easy-to-understand view of the project timeline, allowing them to track
progress, identify dependencies, and manage resources effectively.
• In the SPMP, the Gantt chart is typically used as a part of the project schedule and planning section.
It helps in communicating the project's timeline, setting milestones, and coordinating tasks. By
breaking down the project into individual tasks and representing them as horizontal bars on the chart,
the Gantt chart clearly shows the duration of each task and any dependencies between tasks.

Key elements of the Gantt chart in the SPMP may include:

• Task List: A list of all the tasks and activities required to complete the project.
• Task Duration: The estimated duration for each task, represented by the length of the
corresponding bar on the chart.
• Dependencies: Arrows or lines connecting tasks to show which tasks are dependent on others.
• Milestones: Important project milestones, such as project phases or deliverables, marked as
significant points on the Gantt chart.
• Critical Path: The critical path, which shows the longest sequence of dependent tasks and
determines the shortest possible project duration.
• Progress Tracking: The Gantt chart can be updated regularly to track actual progress against the
planned schedule.
• Communication Tool: The Gantt chart is an effective communication tool, enabling project
managers to share project status with stakeholders and team members.
• Baseline vs. Actual: The Gantt chart can highlight any deviations between the original baseline
schedule and the actual progress.

22 | P a g e Enrolment No:210304124262
Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

23 | P a g e Enrolment No:210304124262
Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

GANTT CHART:

24 | P a g e Enrolment No:210304124262
Faculty of Engineering & Technology
Subject Name: SOFTWARE ENGINEERING
Subject Code: 203105304
B.Tech 3rd Year 2023-24 Semester 5th

Practical 5
Aim: Do Cost and Effort Estimation using different Software Cost Estimation models.

Team Members:
V. Nageswarrao (210304124473) (Team Lead)
Y. Ritesh (210304124451)
S. Priyanka (210304124463)
S. Padma Sri (210304124300)
R. Bhavya Sri (210304124262)

Project Title: Cursor Movement by Hand Gesture: A Navigation Software

25 | P a g e Enrolment No:210304124262

You might also like