A C-based dataset analyzer (mini project for FY: PC-L)
Develop functions to compute the standard deviation and variance of a dataset.
- Project Management Style: Agile TDD
- Coding Style: GNU
- Build System: CMake
- Testing Methodology: Unit testing + Integration testing using GTest
- Documentation: Doxygen
- CI/CD: GitHub Actions
- Initialize CMake build system.
- Configure CMake for the project.
- Write user stories for calculating standard deviation and variance.
- Define acceptance criteria for each user story.
- Create a GitHub issue tracking each user story.
- Create test cases for each acceptance criteria.
- Organize tests into unit tests and integration tests.
- Write failing GTest test files for standard deviation and variance calculation.
- Implement functions for standard deviation and variance calculation.
- Document function signatures and purpose using Doxygen comments.
- Write integration tests to verify interactions between components.
- Document code using Doxygen comments.
- Generate documentation using Doxygen. Review and update documentation as needed.
- Set up GitHub Actions for automated testing and building.
- Configure GitHub Actions to run unit tests and integration tests on each push.
- Ensure build artifacts are generated and packaged correctly.
- Conduct code reviews to ensure code quality and adherence to coding style.
- Generate synthetic datasets and test comprehensively with them.
- Refactor code for clarity, performance, and maintainability.
- Update tests and documentation as needed based on code changes.
- Tag a release version in Git once the features are complete and stable.
- Update release notes with changes and improvements.
- Make the release artifacts available for distribution.
- Upgrade to multiplatform CMake
Teschner, T.R., 2020. A practical guide towards agile test-driven development for scientific software projects. arXiv preprint arXiv:2010.03896.