SE Practical1
SE Practical1
AIM: Define the Problem statement of Software development and after identifying the
requirements based on the requirement engineering tasks prepare the Software Requirement
Specification (SRS) document.
• Objectives: To learn how to define the problem statement for software development
and how to identify the requirements while performing requirements engineering
tasks and to learn what are the contents of SRS and how to write the contents in SRS.
• Theory:
o The process of collecting the software requirement from the client then
understand, evaluate and document it is called as requirement engineering.
o Requirement engineering constructs a bridge for design and construction.
(3). Full labels and references to all figures, tables, and diagrams in the SRS
and definitions of all terms and units of measure.
3. Consistency: The SRS is consistent if, and only if, no subset of individual
requirements described in its conflict. There are three types of possible conflict
in the SRS:
2. Forward Traceability: This depends upon each element in the SRS having
a unique name or reference number.
The forward traceability of the SRS is especially crucial when the software
product enters the operation and maintenance phase. As code and design
document is modified, it is necessary to be able to ascertain the complete set of
requirements that may be concerned by those modifications.
Concise: The SRS report should be concise and at the same time, unambiguous,
consistent, and complete. Verbose and irrelevant descriptions decrease readability and
also increase error possibilities.
Black-box view: It should only define what the system should do and refrain from
stating how to do these. This means that the SRS document should define the external
behavior of the system and not discuss the implementation issues. The SRS report
should view the system to be developed as a black box and should define the externally
visible behavior of the system. For this reason, the SRS report is also known as the
black-box specification of a system.
Conceptual integrity: It should show conceptual integrity so that the reader can merely
understand it. Response to undesired events: It should characterize acceptable
responses to unwanted events. These are called system responses to exceptional
conditions.
Verifiable: All requirements of the system, as documented in the SRS document,
should be correct. This means that it should be possible to decide whether or not
requirements have been met in an implementation.
• Background / Preparation:
1. Inception
2. Elicitation
In this task, the information taken from user during inception and elaboration
and are expanded and refined in elaboration.
Its main task is developing pure model of software using functions, feature and
constraints of a software.
4. Negotiation
In negotiation task, a software engineer decides the how will the project be
achieved with limited business resources.
6. Validation
The work product is built as an output of the requirement engineering and that
is accessed for the quality through a validation step.
The formal technical reviews from the software engineer, customer and other
stakeholders helps for the primary requirements validation mechanism.
7. Requirement management
It is a set of activities that help the project team to identify, control and track the
requirements and changes can be made to the requirements at any time of the
ongoing project.
These tasks start with the identification and assign a unique identifier to each of
the requirements.
• In order to form a good SRS, here you will see some points which can be used and
should be considered to form a structure of good SRS. These are as follows :
1. Introduction
▪ (i) Purpose of this document
▪ (ii) Scope of this document
▪ (iii) Overview
2. General description
3. Functional Requirements
4. Interface Requirements
5. Performance Requirements
6. Design Constraints
7. Non-Functional Attributes
8. Preliminary Schedule and Budget
9. Appendices
• Tools / Material Needed:
1. Hardware: Development Workstations:
• CPU: Intel Core i5 or AMD Ryzen 5 (or higher)
• RAM: 8 GB (minimum), 16 GB (recommended)
• Storage: 256 GB SSD (minimum), for fast access to development tools and
files
• Network: Stable internet connection for accessing repositories and remote
servers
2. Server Hardware:
• CPU: Multi-core processor (Intel Xeon or AMD EPYC)
• RAM: 16 GB to 32 GB (depending on user load)
• Storage: SSD or NVMe with 1 TB (to store application files and logs)
• Network: High-speed internet connection with redundancy options
o Software :
3. Development Tools:
• Integrated Development Environment (IDE): VS Code, JetBrains, or Sublime
Text
• Version Control: Git and GitHub/GitLab/Bitbucket for managing source code
• Frontend Framework: React.js, Vue.js, or Angular
• Backend Framework: Node.js (Express), Django, or Ruby on Rails
• Database Management System (DBMS): MySQL, PostgreSQL, or MongoDB
• Testing Tools: Jest, Mocha, Selenium for automated testing
• Package Managers: npm (Node.js), pip (Python)
4. Production Environment:
• Web Server: Apache, Nginx, or Microsoft IIS
• Database Server: MySQL or PostgreSQL
• Operating System: Linux (Ubuntu, CentOS) or Windows Server for server
hosting
Purpose
Collab Hub is designed to connect students with other students and faculty by offering
a centralized platform for discovering, organizing, and participating in large-scale events like
hackathons. It helps users stay informed about ongoing campus activities while enabling team
collaboration, individual or team registration, and providing seamless communication
through Q&A sections and event notifications.
Scope
Collab Hub is a centralized platform where faculty members can post event
information, and students can discover, register, and interact with these events. It supports
individual or team registration and includes a Q&A section for inquiries. The platform serves
users from various institutions, enhancing event visibility and participation while providing
seamless communication through notifications and collaboration features.
Overview
Collab Hub is a web platform connecting students and faculty by enabling event
discovery, registration, and collaboration. Faculty can post event details, while students can
register individually or in teams. The platform includes a Q&A section and provides
notifications for event updates
General description :
Collab Hub is a web-based platform designed to streamline event organization and
participation across universities and colleges. It enables faculty to post event details such as
hackathons, seminars, and workshops, and allows students to browse, search, and register for
these events. Students can register individually or as teams, and faculty can manage participant
registrations. Additionally, the platform provides a Q&A section for event-related queries and
sends notifications to keep users updated. It supports user roles like students, faculty, and
administrators, ensuring smooth coordination and communication across campuses
Functional Requirements:
➢ Student Functionalities:
• Event Discovery: Students can browse, search, and filter events based on criteria such
as date, event type, and location.
• Event Registration: Students can register for events individually or in teams.
Registration details are tracked in the user's profile.
• Q&A Section: Students can post questions related to events and respond to queries in
the Q&A section.
• Notifications: Students receive notifications about event updates, including registration
confirmation, event changes, and cancellations.
• Profile Management: Students can manage and update their personal information,
including username, email, and academic details.
• Team Formation: Students can form or join teams for collaborative events like
hackathons.
➢ Faculty Functionalities:
• Event Creation: Faculty members can post event details, including title, description,
date, location, and registration options.
• Manage Event Registrations: Faculty can track and manage student registrations,
approve or deny participation, and communicate with participants.
• Edit/Delete Events: Faculty members can modify or remove events they have created.
➢ Administrator Functionalities:
• User Management: Administrators can manage user accounts, roles, and permissions,
including adding or removing users.
• System Monitoring: Administrators oversee platform performance, manage database
operations, and ensure event accuracy.
• Event Moderation: Admins approve and moderate event listings to ensure content
quality and relevance
Interface Requirements:
➢ User Interface (UI):
• Login/Sign Up Pages: Simple and intuitive login and registration pages for students,
faculty, and administrators with options for password recovery.
• Event Discovery Page: A user-friendly interface displaying events in a list or calendar
view with search and filter options based on event type, date, and location.
• Event Registration Page: A clear registration form for individual or team-based event
participation, displaying registration status and event details.
• Q&A Section: An easy-to-navigate interface where users can ask and answer questions,
categorized by event or topic.
• Profile Management: An interface that allows users to update their personal information
and track their registered events.
• Notification System: In-app notifications or emails to inform users about event updates,
registration status, or event cancellations.
➢ Hardware Interfaces:
• Server Requirements:
o Multi-core CPU with at least 16 GB RAM and SSD storage for handling user
requests, event data, and registrations.
o High-speed network connection to ensure smooth user experience and real-time
updates.
• Client-Side Hardware:
o Students and faculty should have devices with a modern processor (e.g., Intel i3
or equivalent), 4 GB RAM, and sufficient storage to handle the web application
in standard browsers.
➢ Software Interfaces:
• Web Browsers: Supports modern web browsers like Google Chrome, Mozilla Firefox,
Safari, and Microsoft Edge, with compatibility for the latest versions.
• Operating Systems: Compatibility with Windows, macOS, Linux, iOS, and Android for
a responsive, cross-platform user experience.
• Database Management: Interfaces with relational databases like MySQL or
PostgreSQL for storing and managing event and user data.
➢ Communication Interfaces:
• HTTP/HTTPS Protocols: Secure communication using HTTPS to ensure data integrity
and privacy during transactions.
• Email/Push Notifications: Integration with email systems to notify users about
important updates, reminders, or event-related messages
Performance Requirements:
➢ Page Load Time:
• Pages should load within 3 seconds for 90% of users on standard broadband
connections to ensure a smooth user experience.
➢ Response Time for User Actions:
• User interactions such as form submissions (e.g., event registration) and page
navigation should complete within 2 seconds under typical load conditions.
➢ Concurrent Users:
• The platform must support up to 10,000 concurrent users without significant
performance degradation or slowing down.
➢ Database Query Performance:
• Queries for common operations like searching for events, updating profiles, and
viewing event registrations should execute within 1 second.
➢ System Throughput:
• The system should handle at least 500 transactions per minute, including actions like
event registration and feedback submission.
➢ Load Testing:
• The platform should manage up to 20,000 virtual users performing standard activities
simultaneously while maintaining performance benchmarks.
➢ Latency:
• The client-server interactions should maintain a latency of less than 100 milliseconds
for smooth communication.
Design Constraints:
• Browser Compatibility: Must function across modern browsers (Chrome, Firefox,
Safari, Edge) and their versions.
• Internet Dependency: Requires a stable internet connection; offline functionality not
supported.
• Database Constraints: Needs to manage large volumes of data with efficient query
management for concurrent access.
• Scalability: Designed to scale with increasing users and events without service
disruption.
• Mobile Responsiveness: Optimized for mobile devices, ensuring smooth functionality
on various screen sizes.
• Security Standards: Adhere to security best practices (HTTPS, strong authentication)
while managing performance overhead.
• Accessibility: Comply with WCAG standards for usability by individuals with
disabilities, affecting design choices.
• Data Privacy: Ensure compliance with regulations (e.g., GDPR) for secure handling of
personal information
Non-Functional Attributes:
• Performance:
Supports high concurrency with fast response times; optimized database queries.
• Scalability:
Easily accommodates growth in users and events without performance loss.
• Reliability:
High availability and minimal downtime; robust backup and accurate information
delivery.
• Security:
Strong data protection measures; compliance with data privacy regulations (e.g.,
GDPR).
• Usability:
Intuitive UI for all users; accessible help resources for navigation.
• Accessibility:
Compliance with WCAG standards for users with disabilities; inclusive design.
• Interoperability:
Compatible with modern web browsers; potential integration with educational tools.
• Maintainability:
Well-documented codebase for easy updates; robust testing framework.
• Data Integrity:
Ensures accurate data management; regular audits to prevent loss or corruption.
• Response Time:
Aims for quick load times (under 3 seconds); timely notifications for users.
Appendices:
Appendix : Glossary of Terms
• UI/UX: User Interface/User Experience, focusing on the design and usability of the
platform.
• Concurrent Users: Users accessing the platform simultaneously.
• GDPR: General Data Protection Regulation, a data privacy law in the EU.
• WCAG: Web Content Accessibility Guidelines, standards for web accessibility.
Quiz:
1. Which are properties of good SRS?
ANS: A good Software Requirements Specification (SRS) document is clear, complete, and
consistent. It should be testable, traceable, and feasible, with a defined process for change
control. Visual aids can enhance understanding, and formal approval is essential.
Suggested Reference:
1. Lecture on "System Analysis and Design", NPTEL
2. When Telepathy Won’t Do: Requirements Engineering Key Practices
3. Requirements Analysis: Process of requirements gathering and requirement definition
4. IEEE Recommended Practice for Software Requirements Specifications
5. Requirements Trace-ability and Use Cases
Rubric wise marks obtained:
Rubrics 1 2 3 4 5 Total
Marks Complete Complete Complete Complete Complete
implementation implementation implementation implementation implementation
as asked as asked as asked as asked as asked
Problem Problem Problem Problem
analysis analysis analysis analysis
Development Development Development
of the Solution of the Solution of the Solution
Concept Concept
Clarity & Clarity &
understanding understanding
Correct answer
to all questions
Signature of Faculty: