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 | |
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 |
|
Internet | Authorized users SPbPU |
|
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