Details

Title Веб-приложение для оптимизации инвестиций между предприятиями с использованием динамического программирования: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_03 «Разработка программного обеспечения»
Creators Тюляндин Никита Юрьевич
Scientific adviser Амосов Владимир Владимирович
Organization Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Imprint Санкт-Петербург, 2025
Collection Выпускные квалификационные работы ; Общая коллекция
Subjects оптимизация инвестиций ; динамическое программирование ; веб-приложение ; банковские вклады ; c++ ; postgresql ; rest api ; клиент-серверная архитектура ; investment optimization ; dynamic programming ; web application ; bank deposits ; client-server architecture
Document type Bachelor graduation qualification work
File type PDF
Language Russian
Level of education Bachelor
Speciality code (FGOS) 09.03.04
Speciality group (FGOS) 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/3/2025/vr/vr25-1808
Rights Доступ по паролю из сети Интернет (чтение, печать)
Additionally New arrival
Record key ru\spstu\vkr\35761
Record create date 7/30/2025

Allowed Actions

Action 'Read' will be available if you login or access site from another network

Group Anonymous
Network Internet

Данная работа посвящена разработке веб-приложения для оптимального распределения инвестиционных средств между банками Российской Федерации с целью максимизации прибыли при заданных ограничениях. Задачи, которые решались в ходе исследования: 1. Анализ предметной области и формулировка математической постановки задачи. 2. Разработка математической модели и алгоритма на основе динамического программирования. 3. Проектирование архитектуры веб-приложения с учетом требований производительности и безопасности. 4. Реализация серверной и клиентской частей приложения. 5. Проведение тестирования и оценки производительности программного обеспечения. Работа проведена на базе Высшей школы программной инженерии СПбПУ. Проведен анализ предметной области, включая параметры банковских вкладов (процентные ставки, сроки вложения, ограничения по суммам). Разработана математическая модель задачи с использованием метода динамического программирования, обеспечивающего нахождение оптимального распределения средств (10 млн руб.) с учетом ограничения на максимальную сумму вклада в одном банке (1,4 млн руб.). Реализация выполнена на основе клиент-серверной архитектуры с применением REST API. Проведены расчеты, демонстрирующие эффективность алгоритма, и тестирование, включающее модульное, интеграционное и системное тестирование, а также нагрузочное тестирование, подтвердившее высокую производительность приложения (время отклика до 2 секунд, расчет оптимального распределения до 10 секунд). В результате разработано веб-приложение, обеспечивающее автоматизацию распределения инвестиций, гибкую настройку шага дискретизации и визуализацию результатов, применимое для финансовых аналитиков и инвесторов. Для достижения данных результатов в работе были использованы следующие информационные технологии, в том числе программное обеспечение, облачные сервисы, базы данных и прочие ресурсы: язык программирования C++, библиотеки libpqxx, cpp-httplib, nlohmann/json, СУБД PostgreSQL, веб-технологии HTML, CSS, JavaScript, инструменты тестирования Catch2, Jest, Postman, Selenium, инструменты профилирования Valgrind, Apache JMeter, система виртуализации Docker, платформа непрерывной интеграции GitHub Actions, инструменты анализа кода SonarQube, clang-tidy, Lizard, ESLint.

The given work is devoted to the development of a web application for the optimal allocation of investment funds among banks in the Russian Federation to maximize profit under specified constraints. The research set the following goals: 1. Analysis of the subject area and formulation of the mathematical problem statement. 2. Development of a mathematical model and algorithm based on dynamic programming. 3. Design of the web application architecture considering performance and security requirements. 4. Implementation of the server and client components of the application. 5. Conducting testing and performance evaluation of the software. The work was fulfilled on the premises of the Higher School of Software Engineering, SPbPU. An analysis of the subject area was conducted, including parameters of bank deposits (interest rates, investment terms, and amount constraints). A mathematical model was developed using the dynamic programming method, ensuring the optimal allocation of funds (10 million RUB) with a constraint on the maximum deposit per bank (1.4 million RUB). The implementation was based on a client-server architecture with a REST API. Calculations were performed to demonstrate the algorithm’s efficiency, and testing included unit, integration, and system testing, as well as load testing, confirming the application’s high performance (response time up to 2 seconds, optimization calculation up to 10 seconds). The resulting web application automates investment allocation, supports flexible discretization step configuration, and provides result visualization, making it applicable for financial analysts and investors. To achieve these results, the following information technologies, including software, cloud services, databases, and other resources, were used: C++ programming language, libpqxx, cpp-httplib, nlohmann/json libraries, PostgreSQL DBMS, web technologies HTML, CSS, JavaScript, testing tools Catch2, Jest, Postman, Selenium, profiling tools Valgrind, Apache JMeter, Docker virtualization system, GitHub Actions continuous integration platform, and code analysis tools SonarQube, clang-tidy, Lizard, ESLint.

Network User group Action
ILC SPbPU Local Network All
Read Print
Internet Authorized users SPbPU
Read Print
Internet Anonymous
  • ВВЕДЕНИЕ
  • 1 Постановка и описание задачи
    • 1.1 Описание предметной области
    • 1.2 Формулировка задачи
    • 1.3 Функциональные требования
    • 1.4 Нефункциональные требования
  • 2 Математическая модель
    • 2.1 Математическая постановка задачи
    • 2.2 Модель динамического программирования
    • 2.3 Ограничения и допустимые решения
    • 2.4 UML-диаграммы
  • 3 Архитектура системы
    • 3.1 Общая структура приложения
    • 3.2 Логическая архитектура
    • 3.3 Модули и взаимодействие компонентов
    • 3.4 Расширяемость и поддержка изменений
  • 4 Реализация
    • 4.1 Используемые технологии и инструменты
    • 4.2 Структура проекта и основные компоненты
    • 4.3 Документирование и стиль кодирования
    • 4.4 Метрики качества кода
  • 5 Тестирование и виртуализация
    • 5.1 Средства виртуализации
    • 5.2 Подходы к тестированию
    • 5.3 Автоматизация тестирования
    • 5.4 Оценка производительности приложения
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Access count: 0 
Last 30 days: 0

Detailed usage statistics