SRS Team7 v5
SRS Team7 v5
SRS Team7 v5
Specification
for
02/28/2022
Copyright © 1999 by Karl E. Wiegers. Permission is granted to use, modify, and distribute this document.
Software Requirements Specification for Document Sharing Website Page 2
Table of Contents
Table of Contents ii
Revision History iii
1. Introduction 1
1.1 Purpose 1
1.2 Intended Audience and Reading Suggestions 1
1.3 Product Scope 1
1.4 References 1
2. Overall Description 1
2.1 Product Perspective 1
2.2 Product Functions 1
2.3 User Classes and Characteristics 2
2.4 Operating Environment 2
2.5 Design and Implementation Constraints 2
2.6 Assumptions and Dependencies 2
3. External Interface Requirements 3
3.1 User Interfaces 3
3.2 Hardware Interfaces 3
3.3 Software Interfaces 3
4. System Features 3
4.1 Uploading Files 3
4.2 Downloading Files 4
5. Other Nonfunctional Requirements 5
5.1 Performance Requirements 5
5.2 Safety Requirements 5
5.3 Security Requirements 5
5.4 Software Quality Attributes 5
Appendix A: Glossary 5
Appendix B: Analysis Models 6
Appendix C: Estimation 14
Appendix D: Testing 17
Appendix E: Snapshots 23
Appendix F: Code 25
Software Requirements Specification for Document Sharing Website Page 3
Revision History
Name Date Reason For Changes Version
Version 1 28.2.2022 The first implementation 1
Version 2 21.3.2022 Added DFD0 and Use Case 2
Diagrams
Version 3 30.3.2022 Added Class Diagram and updated 3
Design and Implementation
Constraints
Version 4 09.05.2022 Added Remaining UML Diagrams 4
Version 5 20.05.2022 Added Testing, Snapshots and Code 5
Software Requirements Specification for Document Sharing Website Page 1
1. Introduction
1.1 Purpose
The Document Sharing System is an online platform which helps users to upload and
download documents. It is a user-friendly system which can be handled and
understood easily by people of all age groups. It works on a many-to-many relationship
basis.
A website for viewing and sharing documents with others in a fast and easy way.
1.4 References
● React - A JavaScript library for building user interfaces
● Supabase - Backend Service Provider (open-source alternative to Firebase)
● Chakra UI - UI and component library for React
2. Overall Description
2.1 Product Perspective
This project uses Supabase - a Backend Service Provider to manage Authentication and
Storage which is fast, reliable and scalable to build a robust backend for the purpose of
sharing and viewing documents and files.
For Registered Users, they can perform all the functions of the Unregistered Users as
well as:
● Upload Documents: Upload documents as long as the file type, file size and file
limit constraints are satisfied.
● Delete Documents: Delete their uploaded documents.
● Manage Documents: Manage the visibility of the documents or lock it with a
password.
4. System Features
4.1 Uploading Files
4.1.1 Description and Priority
The user should be able to upload any file of the supported format to the website.
The file then can be managed by the user to manage it (i.e. make it public,
lock file with password, etc.). Although, the user can only upload a limited
amount of files and there is a maximum file size limit.
Software Requirements Specification for Document Sharing Website Page 4
These constraints are present to decrease load in the backend. Also to increase
security, the user can set a password which is needed by everyone who
needs access.
Priority: Critical
Appendix A: Glossary
● API (Application Programming Interface): A software intermediary that allows two
applications to talk to each other. Eg: Website and Database
● Backend Service Provider: Backend-as-a-Service Providers help provide web and
mobile app developers with pre-written software. BaaS vendors offer automation
for backend applications and integrate them with cloud services.
● Libraries: These are collections of prewritten code snippets that can be used and
reused to perform common functions.This leads to faster development and fewer
vulnerabilities to have errors.
Software Requirements Specification for Document Sharing Website Page 6
Class Diagram
● The User class is a singleton class which is responsible for managing all functions
related to the authentication and session management of the user.
● The File class represents a file which has been uploaded to the system.
● The UserData class represents the Files uploaded by the user and contains the
free storage space remaining for the user.
● The Server class represents the Server which is responsible for actions pertaining
to Authentication, Database and Storage.
Software Requirements Specification for Document Sharing Website Page 9
Activity Diagram
The above diagram shows the message flow from one activity to another.
The process starts with the Login Activity and then allows the user to Upload a document if
there is sufficient storage space. If upload is successful the user is shown with a list of
uploaded documents they can access.
Software Requirements Specification for Document Sharing Website Page 10
State Diagram
Above diagram shows the states of the User Object reached by calling different functions.
On Logging in the system fetches the data of the user. The user can then Sign Out,
Download/Preview any of the uploaded files by selecting one or Upload a new File. If the
uploaded file is verified and successfully uploaded, the user requests the server again for the
updated user data and the newly uploaded file can be seen. The user can also download other
files by accessing the document link and entering the correct passcode.
Software Requirements Specification for Document Sharing Website Page 11
Communication Diagrams
The above diagram shows the flow of data from one class to another.
On logging in the User object gets instantiated with the user data fetched after authentication.
The User can then request the Server for its data which gets instantiated in the UserData
Object. The UserData Object contains a list of Files which have been uploaded. The User
object and access the File object in order to download or manage it. File object as a response
requests the server to carry out the actions.
The Downloader is not assigned a User but a File object gets instantiated on entering the
correct link and passcode. The File can then be accessed by the Downloader.
Software Requirements Specification for Document Sharing Website Page 12
Sequence Diagrams
The above diagrams show the sequential flow of data between the Objects. The Website
comprises the Local classes in the system.
The Uploader follows the sequence of Logging in, Requesting Data, Uploading a File and
Accessing an uploaded File respectively
.
The Downloader requests for a File by providing necessary data and after getting a response
can access the File.
Appendix C: Estimation
Function Point & COCOMO
(Refer to Figure 1: Level 0 DFD)
1. Login
3. Upload File
4. Download File
Total = 19
TDI = 19
Software Requirements Specification for Document Sharing Website Page 16
For Organic,
a = 2.4, b = 1.05, c= 2.5, d = 0.38
Effort = a x KLOC^b
= 2.4 x 1.739^1.05
Effort = 4.05 PM
Time = c x Effort^d
= 2.5 x 4.29^0.38
Time = 4.25 M
Appendix D: Testing
Black Box Testing
1. Boundary Value Analysis
Our website has a limit of uploading files not more than 50MB i.e. 50000000 Bytes and the file
name should be of length [1, 50]
6 1 25 Upload Successful
7 2 25 Upload Successful
12 0 25 Invalid size
2 0 25 Invalid size
CONDITIONS
C1: is filetype N Y
supported?
ACTIONS
insertUserFiles is a JavaScript function which takes input from an HTML Form and uploads a
file to storage and file details to the database.
Cyclomatic Complexity
CC = No of Predicate Statements + 1 = 5 + 1 = 6
Independent Paths
1. A → B
2. A → C → D
3. A → C → E → F
4. A → C → E → G → H
5. A → C → E → G → I → J → K
6. A → C → E → G → I → J → L → M → N
Software Requirements Specification for Document Sharing Website Page 22
Test Cases
Appendix E: Snapshots
Appendix F: Code