Part of the project being evaluated |
Tools |
% of points |
Description of the requirements using UML
- identify the client, end users and other parties interested in the results of the project (stakeholders);
- collect and analyze the details of the functional and non-functional requirements for particular tasks;
- determine the usage scenarios and create a functional specification, suitable for reading ; LI>
- optionally incorporate a UML usage scenarios to the documentation; LI>
- create a UML model the key elements of the proposed solutions; LI>
- examine the possibility of using additional libraries and tools for the task; LI>
- develop a brief technical specification summarizing this information together with the work schedule; LI>
- submit the specification to the teacher. LI>
|
Microsoft Visio |
10 |
Writing simple image processing software Assumptions:
- the software should be run from the command line;
- the paths of the source and destination files should be read from * .ini file(for ini file analysis, any free library
can be used, for example. iniParser);
- the software should read all image files from the source path;
- the software should align the brightness of the images (multi-threaded), e.g. on the basis of histograms;
- the processed images should be saved in the target folder;
- two images with the matrix of all image thumbnails (one for input files, another for the processed images)
should be saved for quick evaluation of the results.
It is suggested that you first familiarize yourself with the various elements of the project:
- INI file analysis;
- how to read, save and view images in OpenCV;
- the rules for operations on matrices / images in OpenCV;
- select and test methods to compensate the brightness of the images.
|
Visual Studio 2013 i C/C++ with OpenCV library |
20* |
The use of collaboration tools
- gain the access to the repository version control system (external hosting GitHub, Bitbucket);
- select a person responsible for maintaining order in the repository (maintainer);
- plan your repository structure, depending on your IDE, programming language, additional
artifacts (UI graphics, specifications, etc.).
|
GIT + GitHub |
10 |
Use of the bug tracking system B>
- access to the repository of Bug Tracking System (external hosting GitHub, Bitbucket);
- select a person responsible for maintaining order in the repository (maintainer).
- report the errors detected during testing cycles to the bug tracking system;
- optionally, use a method of test-driven development to ensure quality;
- demonstrate the use of block testing to validate the key elements of the software.
|
Bugzilla |
10 |
The use of the threads/processes |
Windows |
10 |
The use of IPC |
Windows |
10 |
Writing the project documentation B>
- implement the appropriate amount of work during your work to document the API (comments compatible with Doxygen)
use comments in the code, explaining the particularly confusing algorithms, mechanisms, relationships;
- generate HTML documentation from Doxygen comments on a regular basis, not after the completion of the project; LI>
- provide the documentation to your teacher. LI>
|
Doxygen |
10 |
Profiling of the project (detection of hotspots)
- use the profiler to detect the hotspots in your software, try to optimize the code.
|
Visual Studio Profiler |
10 |
Detecting memory leaks
- for example, use macro
_ASSERTE( _CrtCheckMemory( ) ); in DEBUG mode and check the data integrity in your code.
|
Visual Studio + CrtCheckMemory |
10 |