Wednesday, January 1, 2025

roles, use cases, and requirements

Tests are based on validating requirements. Requirements are derived from use cases that address the needs of people in specific roles.


Roles

  • Viewer: sees content on web UI, reads PDF versions. Uses either the web UI or the API. 
  • Editor: adds equations, inference rules, and derivations. Uses either the web UI or the API
  • Developer: uses the API to build an alternative web UI or runs a service that leverages the PDG
  • Contributor: edits documentation and source code, fixes bugs. Uses github issue tracker. 

Use cases per role

  • Viewer
    • reads documentation about PDG
    • sees the number of derivations
      • on the navigation page
    • sees the number of symbols
      • on the navigation page
    • sees the number of inference rules
      • on the navigation page
    • sees the number of expressions
      • on the navigation page
    • sees a list of derivations
      • accessed from the navigation page
    • sees a list of expressions
      • accessed from the navigation page
    • sees a list of inference rules
      • accessed from the navigation page
    • sees a list of symbols
      • accessed from the navigation page
    • see a list of derivations that use a specific symbol
    • see a list of derivations that use a specific inference rule
    • see a list of derivations that use a specific expression
    • see the steps of a specific derivation
      • accessed from the list of derivations
  • Editor has same as Viewer, plus:
    (the following actions require being logged in)
    • adds a new derivation
      • accessed from the navigation page
      • next page is create new step
    • edits an existing derivation
      • accessed from the list of derivations
      • after edit is submitted, return to viewing that derivation
    • deletes an derivation
      • accessed from the list of derivations
      • after delete is confirmed, return to list of derivations
    • adds a new step
      • return to derivation
    • edits an existing step
    • deletes a step
      • return to derivation
    • adds a new expression
      • return to derivation step
    • edits an existing expression
      • change Latex
      • change relation (e.g., = to >)
      • change label
    • deletes an expression
    • adds a new inference rule
    • edits an existing inference rule
      • change number of arguments
    • deletes an inference rule. (What happens to all the instances of use in various derivations?)
    • adds a new symbol
    • edits an existing symbol
      • change the latex
      • change the sympy
    • deletes a symbol. (What happens to all the instances of use in various expressions?)
    • delete all database content
      • return to navigation page
For each of the use cases per role,
  • test in web UI
  • test in API

No comments:

Post a Comment