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

SE Practical1

software enginerring material which helps to devlop software tools

Uploaded by

bepow53813
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views

SE Practical1

software enginerring material which helps to devlop software tools

Uploaded by

bepow53813
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Practical – 1

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.

Figure: Requirements Engineering Process

o The production of the requirements stage of the software development process is


Software Requirements Specifications (SRS) (also called a requirements
document). This report lays a foundation for software engineering activities and is
constructing when entire requirements are elicited and analyzed. SRS is a formal report,
which acts as a representation of software that enables the customers to review whether
it (SRS) is according to their requirements. Also, it comprises user requirements for a
system as well as detailed specifications of the system requirements.
o The SRS is a specification for a specific software product, program, or set of
applications that perform particular functions in a specific environment. It serves
several goals depending on who is writing it. First, the SRS could be written by the
client of a system. Second, the SRS could be written by a developer of the system. The
two methods create entirely various situations and establish different purposes for the
document altogether. The first case, SRS, is used to define the needs and expectation
of the users. The second case, SRS, is written for various purposes and serves as a
contract document between customer and developer.

Characteristics of good SRS


1. Correctness
2. Completeness
3. Consistency
4. Unambiguousness
5. Ranking for importance and stability
6. Modifiability
7. Verifiability
8. Traceability
9. Design Independence
10. Testability
11. Understandable by the customer
12. The right level of abstraction

The following are the features of a good SRS document:

1. Correctness: User review is used to provide the accuracy of requirements stated


in the SRS. SRS is said to be perfect if it covers all the needs that are truly
expected from the system.
2. Completeness: The SRS is complete if, and only if, it includes the following
elements:

(1). All essential requirements, whether relating to functionality,


performance, design, constraints, attributes, or external interfaces.

(2). Definition of their responses of the software to all realizable classes of


input data in all available categories of situations.

(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:

(1). The specified characteristics of real-world objects may conflicts. For


example,
(a) The format of an output report may be described in one requirement as
tabular but in another as textual.
(b) One condition may state that all lights shall be green while another states
that all lights shall be blue.
(2). There may be a reasonable or temporal conflict between the two specified
actions. For example,
(a) One requirement may determine that the program will add two inputs, and
another determine that the program will multiply them.
(b) One condition may state that "A" must always follow "B," while other
requires that "A and B" co-occurs.
(3). Two or more requirements may define the same real-world object but use
different terms for that object. For example, a program's request for user input
may be called a "prompt" in one requirement's and a "cue" in another. The use
of standard terminology and descriptions promotes consistency.

4. Unambiguousness: SRS is unambiguous when every fixed requirement has


only one interpretation. This suggests that each element is uniquely interpreted.
In case there is a method used with multiple definitions, the requirements report
should determine the implications in the SRS so that it is clear and simple to
understand.
5. Ranking for importance and stability: The SRS is ranked for importance and
stability if each requirement in it has an identifier to indicate either the
significance or stability of that particular requirement.

Typically, all requirements are not equally important. Some prerequisites


may be essential, especially for life-critical applications, while others may be
desirable. Each element should be identified to make these differences clear and
explicit. Another way to rank requirements is to distinguish classes of items as
essential, conditional, and optional.

6. Modifiability: SRS should be made as modifiable as likely and should be


capable of quickly obtain changes to the system to some extent. Modifications
should be perfectly indexed and cross-referenced.
7. Verifiability: SRS is correct when the specified requirements can be verified
with a cost-effective system to check whether the final software meets those
requirements. The requirements are verified with the help of reviews.
8. Traceability: The SRS is traceable if the origin of each of the requirements is
clear and if it facilitates the referencing of each condition in future development
or enhancement documentation.

There are two types of Traceability:

1. Backward Traceability: This depends upon each requirement explicitly


referencing its source in earlier documents.

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.

9. Design Independence: There should be an option to select from multiple


design alternatives for the final system. More specifically, the SRS should not
contain any implementation details.
10. Testability: An SRS should be written in such a method that it is simple to
generate test cases and test plans from the report.
11. Understandable by the customer: An end user may be an expert in his/her
explicit domain but might not be trained in computer science. Hence, the
purpose of formal notations and symbols should be avoided too as much extent
as possible. The language should be kept simple and clear.
12. The right level of abstraction: If the SRS is written for the requirements stage,
the details should be explained explicitly. Whereas, for a feasibility study, fewer
analysis can be used. Hence, the level of abstraction modifies according to the
objective of the SRS.

Properties of a good SRS document

The essential properties of a good SRS document are the following:

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.

Structured: It should be well-structured. A well-structured document is simple to


understand and modify. In practice, the SRS document undergoes several revisions to
cope up with the user requirements. Often, user requirements evolve over a period of
time. Therefore, to make the modifications to the SRS document easy, it is vital to make
the report well-structured.

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:

Requirement engineering consists of seven different tasks as follows:

1. Inception

• Inception is a task where the requirement engineering asks a set of questions to


establish a software process.
• In this task, it understands the problem and evaluates with the proper solution.
• It collaborates with the relationship between the customer and the developer.
• The developer and customer decide the overall scope and the nature of the
question

2. Elicitation

Elicitation means to find the requirements from anybody.


The requirements are difficult because the following problems occur in
elicitation.
Problem of scope: The customer gives the unnecessary technical detail rather
than clarity of the overall system objective.
Problem of understanding: Poor understanding between the customer and the
developer regarding various aspect of the project like capability, limitation of
the computing environment.
Problem of volatility: In this problem, the requirements change from time to
time and it is difficult while developing the project
3. Elaboration

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.

To create rough guesses of development and access the impact of the


requirements on the project cost and delivery time.
5. Specification

In this task, the requirement engineer constructs a final work product.

The work product is in the form of software requirement specification.

In this task, formalize the requirement of the proposed software such as


informative, functional and behavioral.

The requirements are formalize in both graphical and textual formats.

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.

After finalizing the requirement traceability table is developed.

• 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

• Software Requirement Specification (SRS) Format as name suggests, is complete


specification and description of requirements of software that needs to be fulfilled for
successful development of software system. These requirements can be functional as
well as non-functional depending upon type of requirement. The interaction between
different customers and contractor is done because its necessary to fully understand
needs of customers.
• Given below is SRS for Collabe HUB:
INTRODUCTION

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.

2. What is functional and non-functional requirement?


ANS: Functional requirements define the specific functions and behaviors of a system, while
non-functional requirements specify system attributes like performance, security, and usability.

3. are different requirement engineering tasks?


ANS: Requirement engineering tasks include elicitation (gathering requirements), analysis,
specification, validation, and management. These activities ensure that the system meets its
intended purpose, aligning with stakeholder needs and expectations.

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:

You might also like