At the beginning of work with the program, the user must provide data on the transient process in response to the step function. Thіs data can be obtained, for example, from experiments and must be loaded as a csv file. Also, the step time size of provided data and input signal level must be specified in the form on page.
After clicking on the "NEXT" button, first of all, the type of transfer function with a fractional order must be selected. Secondly, user specify the range of coefficients, according to which the approximation will take place.
Next, the genetic algorithm is configured: the population size, the number of elites, the type of selection, and the probability of gene mutation must be set by user.
When all settings are specified, user can start the process of optimizing the transfer function parameters using a genetic algorithm. The figure will show the process of evolution of the fittest individual. At the output, we get the parameters with the best approximation index.
The project itself is built without frameworks - the controller function is performed by Servlet that runs in the Tomcat servlet container.
Web pages are created using JSP (JavaServer Pages). Some basic logic on the pages is done by JavaScript. Boostrap CSS is used for global style. Displaying graphs is done through the library Chart.js.
- break the Сontroller class into simpler ones according to the principle of Single Responsibility;
- displaying the five best individuals in the table after the end of the approximation;
- give several users access to the program (login);
- choice between different types of selection and crossover;
- fix elitism (to be able to set more than one elite);
- save approximation data in the database;
- upgrade the user interface;
- perform multithread calculations;
- rework the project - a big part of code is a procedural style of programming.

