Software Requirements Specification - AVanDeBrook/citation-graph GitHub Wiki
Software Requirements Specification for Citation Graph
Team Members:
- Aaron Van De Brook
- Corrina Del Greco
- Luis Mora
- Samantha Shultz
- Sultan Alteneiji
| Version/Author |
Date |
| 1.0 |
2.11.2021 |
| 2.0 |
3.04.2021 |
| 3.0 |
3.13.2021 |
Table of Contents
Section 1: Introduction
System to be Produced
The product to be produced is a web-based tool with which a user can input research papers, view graphs of the citations, and add necessary info. The system will accept research papers that contain references in the LaTex/BibTex format in order to output a visual dependency graph that shows the dependencies between the paper and its references. The purpose of the project is to create a tool which a user can use to see the dependencies between a paper and its references. The user will be able to view the dependencies between the papers and will be able to add to and modify information about the papers.
Definitions, Acronyms, and Abbreviations
- Attribute - A piece of metadata about a research paper.
- BibTeX - A bibliography system/format meant to be used as an extension to LaTeX
- Doxygen - A tool for generating software reference documentation
- LaTeX - A typesetting system/format for writing papers and documentation
Section 2: Product Overview
Assumptions
Assume all the necessary software and dependencies are available, either for installation by the user or to be packaged with the final product. The user will have the LaTeX form of their paper available and is able to input extra relevant information about the paper as needed.
Python v3.x Dependencies:
- bibtexparser
- pylatexenc
- re (if not provided by Python v3.x)
System Dependencies:
Stakeholders
- Customer: Jianhua Liu
- The customer's interest is to help bolster research efforts by filling in gaps left by other products that provide a similar service to ours.
- Product Owner: David Jefts
- Researchers
- People who want to easily see related papers
Use Case Diagram

Use Case Descriptions
- Use Case 1, Input LaTex/BibTex File: The User provides their research paper(s) in a .tex/.bib format. The LaTex file can be the full paper or a "reduced" paper (only includes paper attributes that the System will be using). The System saves these in its folder structure.
- Use Case 2, Create C File: The files provided by the User are not in a format usable by Doxygen to generate the graph, so the System converts them to a C file. The C file does not contain functional code, its purpose is to be interpretable by Doxygen for Use Case 3. This Use Case is included in the generation of the graph.
- Use Case 3, Generate Graph: Doxygen generates a citation graph using the C file created in Use Case 2.
- Use Case 4, View Graph: The citation graph is viewable in a web browser. In the beginning stages of development, the HTML will be generated by Doxygen. In the later stages of development, the developers will write their own front end for customizability.
- Use Case 5, Edit Paper Attributes: The User modifies paper Attributes. In the beginning stages of development, the user will edit their files in any text editor and the system will regenerate. In the later stages of development, there will be a forms page in the web browser allowing the user to modify and add fields.
Section 3: Specific Requirements
3.1 Functional Requirements
| No. |
FR1 |
| Statement |
The user shall be able to input a research paper in the LaTeX typesetting format. It may also use BibTeX for bibliographies, citations, and references. |
| Source |
The customer. |
| Dependency |
IR1. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
The inputted file is stored by the system. |
| Revision History |
Created version 1.0. |
| No. |
FR2 |
| Statement |
The user shall be notified if their research paper failed to be input. |
| Source |
The development team. |
| Dependency |
FR1, IR1. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
A paper in an invalid format (e.g. docx, pdf, etc.) will be input and the system will inform/notify the user of its failure to analyze the document. |
| Revision History |
Created version 1.0. |
| No. |
FR3 |
| Statement |
The software shall display a graph which represents how one paper interacts with or references other papers. |
| Source |
The customer. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
Multiple papers are inputted and a graph is shown with nodes representing papers and connections representing references. |
| Revision History |
Created version 1.0. |
| No. |
FR4 |
| Statement |
A paper's attribute shall consist of an identifier and a value (i.e. author, "Corrinna"). |
| Source |
The development team. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
An attribute with identifier and value is associated with an inputted paper. |
| Revision History |
Created version 1.0. |
| No. |
FR5 |
| Statement |
The software shall display a paper's attributes, such as its author(s), publication date, title, source, etc (to be added later). |
| Source |
The customer. |
| Dependency |
FR. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
The webpage will show the paper's attributes either on the graph node, a sidebar, or both. |
| Revision History |
Created version 1.0. |
| No. |
FR6 |
| Statement |
The user shall be able to add additional attributes to an existing paper or papers. |
| Source |
The customer. |
| Dependency |
FR. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
Affirm that an attribute created after the paper was initially provided the system is present upon its input by the user. Also, ensure that this new attribute is persistent upon reloading the system or refreshing the web page. |
| Revision History |
Created version 1.0. |
3.2 Interface Requirements
| No. |
IR1 |
| Statement |
The system shall accept files in LaTeX format with a '.tex' file extension. |
| Source |
Development team. |
| Dependency |
FR1, FR2. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
A .tex file is accepted. |
| Revision History |
Created: v1.0, Evaluation Method edited: v2.0. |
| No. |
IR2 |
| Statement |
The system shall accept files in BibTex format with a '.bib' file extension. |
| Source |
Development team. |
| Dependency |
FR1, FR2. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
A .bib file is accepted. |
| Revision History |
Created: v1.0, Evaluation Method edited: v2.0. |
| No. |
IR3 |
| Statement |
The citation graph shall update when attributes are changed or modified. |
| Source |
The development team. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
The new paper name shows on the webpage after update. |
| Revision History |
Created version 1.0. |
| No. |
IR4 |
| Statement |
The outputted citation graph shall regenerate upon update to the reference connections. |
| Source |
The development team. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
The new graph connection shows on the webpage after update. |
| Revision History |
Created version 1.0. |
| No. |
IR5 |
| Statement |
The paper attribute list shall update upon modification. |
| Source |
The development team. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
The new attribute(s) show on the webpage after update. |
| Revision History |
Created version 1.0. |
| No. |
IR6 |
| Statement |
Paper attributes shall be primarily ASCII characters in the UTF-8 encoding format. Any special unicode characters shall either be rejected by the system or not be expected to convert or display properly. |
| Source |
Development team. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
An attempt to add an attribute with a special symbol fails, resulting in some kind of notification to the user. |
| Revision History |
Created version 1.0. |
| No. |
IR7 |
| Statement |
The system shall notify the user of failure if an improper file is imported. |
| Source |
Development team. |
| Dependency |
FR1, FR2, IR2. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
A file with an extension other than .tex or .bib inputted will cause a notification of failure. |
| Revision History |
Created: v2.0. |
3.3 Physical Environment Requirements
| No. |
PER1 |
| Statement |
The system shall be accessible through a web browser. |
| Source |
The development team. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
Manual check. |
| Revision History |
Created version 1.0. |
| No. |
PER2 |
| Statement |
The system shall not depend on which operating system is used. |
| Source |
The development team. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
Manual check. |
| Revision History |
Created version 1.0. |
3.4 User and Human Factors Requirements
| No. |
UHR1 |
| Statement |
The system shall sanitize all user inputs. |
| Source |
The development team. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
Attempt bad inputs. |
| Revision History |
Created version 1.0. |
3.5 Documentation Requirements
| No. |
DoR |
| Statement |
The public shall be able to access the System Requirements Specification on the Citation Graph GitHub wiki. |
| Source |
The development team. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
Manually check. |
| Revision History |
Created version 1.0. |
| No. |
DoR1 |
| Statement |
The public shall be able to access the System Design Document on the Citation Graph GitHub wiki. |
| Source |
The development team. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
Manually check. |
| Revision History |
Created version 1.0. |
| No. |
DoR2 |
| Statement |
The public shall be able to access the Test Plan on the Citation Graph GitHub wiki. |
| Source |
The development team. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
Manually check. |
| Revision History |
Created version 1.0. |
| No. |
DoR3 |
| Statement |
Versions of the system shall be documented through GitHub. |
| Source |
The development team. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
Manually check. |
| Revision History |
Created version 1.0. |
3.6 Data Requirements
| No. |
DR1 |
| Statement |
The system shall maintain an all.bib header file. |
| Source |
The customer. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
Manually check. |
| Revision History |
Created version 1.0. |
| No. |
DR2 |
| Statement |
The system shall store the inputted LaTex papers in a folder called "Papers". |
| Source |
The customer. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
Manually check. |
| Revision History |
Created version 1.0. |
| No. |
DR3 |
| Statement |
The system shall store the reduced LaTex papers in a folder called "Graphs". |
| Source |
The customer. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
Manually check. |
| Revision History |
Created version 1.0. |
| No. |
DR4 |
| Statement |
The system shall create a C file from the LaTex files for Doxygen to interpret. |
| Source |
The customer. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
Doxygen is successfully run on the C file to generate the graphs. |
| Revision History |
Created version 1.0. |
3.7 Resource Requirements
| No. |
RR1 |
| Statement |
The system shall rely on Doxygen as a resource. |
| Source |
The customer. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
None. |
| Revision History |
Created version 1.0. |
3.8 Security Requirements
| No. |
SR1 |
| Statement |
The JavaScript files shall not be vulnerable to XSS attacks. |
| Source |
Development team. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
Input scripts into forms that will be handled to the back-end, to see if the back-end will process it as JavaScript. |
| Revision History |
Created: v2.0., edited v3.0. |
3.9 Quality Assurance Requirements
| No. |
QA1 |
| Statement |
The server shall inform the user if the server is down. |
| Source |
Development team. |
| Dependency |
None. |
| Conflicts |
None. |
| Supporting Material |
None. |
| Evaluation Method |
From the user perspective, when the server is down, see if there is a warning. |
| Revision History |
Created: v2.0. |
Section 4: Supporting Material
- This section does not apply to this project because it is a standalone project.