Title: | Operational Research User Stories |
---|---|
Description: | A first implementation of automated parsing of user stories, when used to defined functional requirements for operational research mathematical models. It allows reading user stories, splitting them on the who-what-why template, and classifying them according to the parts of the mathematical model that they represent. Also provides semantic grouping of stories, for project management purposes. |
Authors: | Melina Vidoni [aut, cre] , Laura Cunico [aut] |
Maintainer: | Melina Vidoni <[email protected]> |
License: | GPL-3 |
Version: | 1.0.0 |
Built: | 2024-10-08 06:48:26 UTC |
Source: | CRAN |
Main function that fully automates the process of analysing a dataset of user stories. It can also write results as an Excel sheet in a given directory, and generate an advanced report with highlights of missing features.
analyseStories( storiesFile, groupsNumber, topGroups = 1, sheetFilePath = NULL, reportFilePath = NULL, outputType = "pdf_document", ignoreWordsList = NULL )
analyseStories( storiesFile, groupsNumber, topGroups = 1, sheetFilePath = NULL, reportFilePath = NULL, outputType = "pdf_document", ignoreWordsList = NULL )
storiesFile |
The path an name to a text file containing one user story per line. They need to be written in English. |
groupsNumber |
The number of groups you want to generate between user stories. |
topGroups |
How many groups per stories you want to keep. The default is 1. |
sheetFilePath |
The path and filename of the Excel sheet that will be stored; must include the '*.xlsx' extension. If no value is passed, the file will not be written. |
reportFilePath |
The path where the extensive report will be stored. It must include the correct extension (according to the type selected in the following argument). If no value is passed, the report won't be generated. |
outputType |
The type of document to be generated (from an RMarkdown). By default it is a PDF file. |
ignoreWordsList |
The list of words that you want to avoid using during the grouping of user stories. If nothing is passed, a default list will be used. |
A list of two datasets: the first one contains the stories split up, classified in types, analysed and grouped. Second dataframe contains top words per group and the belonging value of the word.
Other Simplified Process:
createIgnoreWords()
,
reportStories()
# Libraries for the example library(reshape2) # Transform the stories fileUrl <- example_stories() stories <- analyseStories(fileUrl, 7) # Print some information head(dplyr::as_tibble(stories[[2]])) head(stories[[1]])
# Libraries for the example library(reshape2) # Transform the stories fileUrl <- example_stories() stories <- analyseStories(fileUrl, 7) # Print some information head(dplyr::as_tibble(stories[[2]])) head(stories[[1]])
List Ignored Words
createIgnoreWords(wordsList = c(), addToExisting = TRUE)
createIgnoreWords(wordsList = c(), addToExisting = TRUE)
wordsList |
List of words to be ignored when grouping user stories semantically by similarities of word. |
addToExisting |
If this param is TRUE, passed words will be added to a predefined set of words. Otherwise, only those in the previous argument will be ignored. |
Returns an array of words that will be ignored when processing the semantic groups.
Other Simplified Process:
analyseStories()
,
reportStories()
# Generating default words only createIgnoreWords() # Adding words createIgnoreWords(c("given", "said")) # Replacing words createIgnoreWords(c("given", "said"), FALSE)
# Generating default words only createIgnoreWords() # Adding words createIgnoreWords(c("given", "said")) # Replacing words createIgnoreWords(c("given", "said"), FALSE)
Path to Example Data
example_stories()
example_stories()
Local path to example text file, containing user stories for Operational Research mathmatical models.
example_stories()
example_stories()
oRus
packageAnalysis of User Stories for Operational Research
See the README on GitHub
This function will help you parse a set of stories into a dataframe, where one row is each user story; The user story gets splitted into who, what and why sections, according to the use of keywords. The file must be a text file written in English, with one user story per row.
readStories(url)
readStories(url)
url |
The URL of the text file to be parsed. Every user story must be
in a single line, and written in English. Punctuation is irrelevant as
it is processed out.
For this to work, user stories should follow the who, what, why
template, with keywords: |
A dataframe of three colums, representing sections who, what, why of the user stories. There is one row per user story, and they may not have the "why" part if it wasn't added. Using incorrect keywords means incorrect parsing, so be careful.
# Analyse without reports dataPath <- example_stories() stories <- readStories(dataPath) # Print some information head(dplyr::as_tibble(stories))
# Analyse without reports dataPath <- example_stories() stories <- readStories(dataPath) # Print some information head(dplyr::as_tibble(stories))
This function allows you to write the reports for the user stories if you didn't write them before on the analysis function. The key input is the output of ‘oRus::analyseStories()'.#’
reportStories( stories, sheetFilePath = NULL, reportFilePath = NULL, outputType = "html_document" )
reportStories( stories, sheetFilePath = NULL, reportFilePath = NULL, outputType = "html_document" )
stories |
The stories produced by the analysis function. |
sheetFilePath |
The path and filename of the Excel sheet that will be stored; must include the '*.xlsx' extension. If no value is passed, the file will not be written. |
reportFilePath |
The path where the extensive report will be stored. It must include the correct extension (according to the type selected in the following argument). If no value is passed, the report won't be generated. |
outputType |
The type of document to be generated (from an RMarkdown). By default it is a PDF file. Options are: 'html_output' or 'pdf_output'. |
Other Simplified Process:
analyseStories()
,
createIgnoreWords()