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:

  • graphviz
  • doxygen

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 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.