Matrix-based Project Dataset Parsers
project-parsers
Parsers for multiple project datasets like PSPLIB (ProGen), MMLIB (RanGen1/2), Real-life (ProTrack), Boctor, Patterson [...]
-
Table of Contents
-
About/Goal/description Parse standard project datasets with different formats in Matlab format as an input for simulations
-
Prerequisites Mathworks MATLAB R2017a
-
Installation instructions Copy the files to Matlab working directory
3.1 Folders
├ <- Root directory
├── src <- Code directory for matlab source files
├── data <- Containing several standard datasets
│ ├── e.g. j30 <- Folder of example dataset
│ ├── e.g. j30_out <- Example (parsed) result data output folder
│ ├── e.g. mmlib50 <- Folder of example dataset
│ ├── ... <- ...
├── doc <- Contains additional documentation, results, info etc.
├── test_data <- Directory for test related datasets, mat files etc.
├── tool <- Contains additional tools, converters, generators etc.
- Features and examples
4.1 Parse RanGen 1-2 (Patterson format) files in Matlab
input: file with patterson format (e.g. *.rcp)
example: >> PDM = parse_rangen('data/Patterson/pat80.rcp', 1) where 1=NTP trade-off problem type (single mode)
output: PDM file containing PDM = [DSM,TD,CD,{QD,RD}], format depending on the selected simulation type (trade-off problem)
4.2 Parse ProTrack files in Matlab
input: file with protrack format (e.g. *.p2x) in xml
example: >> PDM = parse_protrack('data/protrack/C2011-09 Commercial IT Project.p2x',1) where 1=NTP trade-off problem type (single mode)
output: PDM file containing PDM = [DSM,TD,CD,{QD,RD}], format depending on the selected simulation type (trade-off problem)
4.3 Parse PSPLIB or MMLIB files in Matlab
input: file with PSPLIB/MMLIB library format (e.g. *.mm)
example: >> PDM = parse_xlib('data/mmlib100',1) where 1=NTP, 2=CTP, 3=DTP simulation trade-off problem type (multi-mode)
output: PDM file containing PDM = [DSM,TD,CD,{QD,RD}], format depending on the selected simulation type (trade-off problem)
4.4 Parse Boctor files in Matlab
input: file with Boctor library format (e.g. *.prb)
example: >> PDM = parse_boctor('data/boctor100',1) where 1=NTP, 2=CTP, 3=DTP simulation trade-off problem type (multi-mode)
output: PDM file containing PDM = [DSM,TD,CD,{QD,RD}], format depending on the selected simulation type (trade-off problem)
4.5 Export parsed data to *.mat files (batch process all files in a directory) It is possible to export the parsed data to *.mat files, including the desired runtime/workspace variables for all type of trade-off problems (NTP,CTP,DTP) automatically or manually.
input: folder containing datasets for parsing and exporting to *.mat
example: >> save_rangen('data/Patterson')
example output: ../data/Patterson_output containing all the converted matlab binaries *.mat for all trade-off problem type with naming like *_NTP.mat, *_DTP.mat *_CTP.mat and *_DSM.mat.
4.6 Export all datasets It is also possible to batch process all datasets with the available parsers.
input: existing data folder
example: >> save_all
example output: ../data/<dataset_folder>_output containing all the converted matlab binaries *.mat for all supported trade-off problem types for the specific dataset with naming like *_NTP.mat, *_DTP.mat *_CTP.mat *_DSM.mat.
- Tests
Each folder contains the relevant unit tests for the parsers. To run the corresponding unit tests:
examples: >> results = run(parse_rangen_test) or equivalent >> runtests('parse_rangen_test')
examples: >> results = run(parse_protrack_test) or equivalent >> runtests('parse_protrack_test')
examples: >> results = run(parse_xlib_test) or equivalent >> runtests('parse_xlib_test')
Note: ../test_data contains the necessary input files for the provided unit tests.
- Other documents and files
- All supported datasets are in the main folder of each parser package. For example ../data/RG30 contains the RG30 dataset and it's files in the actual format.
- An overview excel is provided in ../doc/datasets_info.xlsx folder summarizing the available (supported/not yet supported) datasets and their formats etc.
- Mario Vanhoucke's summary excel is provided in ../doc/Datasets with Parameters and BKS (Version 3 - 2017).xlsx for all the datasets and their indicator scores/values. This is a good source for cross-validating calculations with the parser e.g. I1-I6 etc.
- ../tools/rangen/Rangen.exe is an application for generating new project data in patterson format (Vanhoucke et al.). Also can be used to generate new data with desired indicator values and then cross-check with the parser.
- ../tools/PMConverter/PMConverter.exe is a useful application to convert real-life project data excel files (can also be an own project file based on template) and protrack format *.p2x, vice versa. This can also be used to test the parser on artificial / modified projects or used for debugging.
- ../doc/boctor_format.xlsx contains "reverse engineered" information regarding the format/structure of Boctor dataset (not all details published in original paper)
- Changelog (README.md, this file)
- 1.0 initial revision: documenting rangenx_v2 and protrack parsers, NovakG, 18.05.2018.
- 1.1 update for all-in-one parser like folder names, add psplib/mmlib support etc., NovakG, 14.08.2018.
- 1.2 minor update after adding Boctor dataset, NovakG, 18.03.2021.
- 1.3 minor update, remark for RG300(_corr) removed, NovakG, 17.04.2023.
- 1.4 minor update for code structure according to guideline and authors
- Links, useful docs
- Patterson format description and examples: http://www.p2engine.com/p2reader/patterson_format
- Already available results for comparison (Vanhoucke et al.): http://www.projectmanagement.ugent.be/sites/default/files/files/datasets/AboutData.zip
- Summary excel including indicators (Vanhoucke et al.): http://www.projectmanagement.ugent.be/sites/default/files/files/datasets/Datasets%20with%20Parameters%20and%20BKS.xlsx
- Useful tool for reading xml files in human readable format: https://www.samltool.com/prettyprint.php
- To easily prepare e.g. test files, Excel<->ProTrack converter can be found at http://ghbonne.github.io/PMConverter
- Unit tests in Matlab howto and examples: https://www.mathworks.com/help/matlab/matlab-unit-test-framework.html
- Real-life project data (Vanhoucke et al.) http://www.projectmanagement.ugent.be/?q=research/data/realdata
- Authors
Gergely Novák, Zsolt Tibor Kosztyán, 2018-2023
- Contribution
Please contact before making a pull request.
- License
This project is licensed under the terms of the GNU General Public License v3.0.
Cite As
Kosztyán, Zsolt T., et al. “A Matrix-Based Flexible Project-Planning Library and Indicators.” Expert Systems with Applications, vol. 216, Elsevier BV, Apr. 2023, p. 119472, doi:10.1016/j.eswa.2022.119472.
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxTags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
doc/alvarez_tamarit_preparation
src
Version | Published | Release Notes | |
---|---|---|---|
0.2.2.0 | See release notes for this release on GitHub: https://github.com/novakge/project-parsers/releases/tag/v0.2.2 |