Functional requirements

ID Requirement Description
FR-01 Basic Matrix Operations The library shall implement basic functions for matrix, such as addition, subtraction, multiplication and scalar multiplication.
FR-02 Advanced Matrix Operations The library shall provide advanced functions for matrix, such as calculating the determinant of a matrix or transposition.
FR-03 Matrix Validation and Checking Class The library shall include functions to check the compatibility of matrices for operations and multiple checks to determine the kind of matrix.
FR-04 File Operations Class The library shall provide functions to save matrices to a file and to load matrix file.
FR-05 Error Reporting The library shall provide clear error messages for failed operations, such as dimension mismatches or attempts to invert a singular matrix.
FR-06 Software Documentation The library shall include comprehensive software documentation with examples for each function.

Non-functional requirements

ID Requirement Description
NFR-01 Programming Language The application shall be written in C++.
NFR-02 Code Quality The library shall adhere to industry-standard coding practices, including proper indentation, naming conventions, and use of comments for clarity.
NFR-03 Error Handling The library shall include robust error handling mechanisms to manage exceptions and unexpected inputs without crashing.
NFR-04 Modular Design The library shall be developed with a modular design, allowing individual components to be updated or replaced without affecting the entire system.
NFR-05 Testing Framework The library shall include a comprehensive test suite using a testing framework.
NFR-06 Version Control The library shall be maintained using the Git version control system to track changes and manage versions.