5.11M

ПРЕЗА КУРСОВОЙ ТСППО

1.

Министерство науки и высшего образования Российской Федерации
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ имени В.А. Бондаренко»
Институт математики и информационных технологий
Кафедра компьютерной безопасности и математического обеспечения информационных систем
КУРСОВАЯ РАБОТА
по дисциплине «Технология создания прикладного программного обеспечения»
Проектирование и разработка системы web-конфигурации паролей
ОГУ 10.05.01.2026. 546 ОО
Консультант
ст. преподаватель кафедры КБМОИС
Н.А. Заельская
Студент группы 24КБ(с)РЗПО-2
Д.Д. Машенко
Оренбург 06.05.2026

2.

Введение
Актуальность
За последнее время наблюдается рост количества онлайн-сервисов, что
усложняет управление доступа к ним. Поскольку пользователи используют
простые пароли, это создаёт уязвимости, которые могут повлечь кражу
конфиденциальной информации. Поэтому разработка веб-системы для
централизованного безопасного хранения паролей – это актуальная на
сегодняшний день задача.
2

3.

Введение
Цель – разработка системы конфигурации паролей через элементы webразработки.
Задачи:
– провести анализ существующих программ для web-конфигурации паролей,
изучить и проанализировать методы и способы конфигурирования паролей;
– определить критерии качества программного средства web-конфигурации
паролей;
– разработать и реализовать пользовательский интерфейс программного
средства;
– разработать концептуальную и функциональную модели системы webконфигурации паролей;
– провести обоснование выбора модели жизненного цикла программного
средства;
– построить модель программного средства с использованием языка UML;
– оценить качество программного средства с использованием метрик.
3

4.

Описание предметной области
Система web-конфигурации паролей (Web Password Manager) – это вебприложение для централизованного безопасного хранения, управления и
синхронизации учётных данных пользователя между различными устройствами.
Программа подразумевает регистрацию пользователя с использованием мастерпароля, который хешируется на стороне клиента (SHA-256) и не передаётся в
открытом виде. Система обеспечивает выполнение операций добавления,
редактирования, удаления, категоризации и поиска записей.
4

5.

Качества программного средства
В разработанной системе web-конфигурации паролей можно выделить
следующие качества:
1. Безопасность данных
2. Удобство использования
3. Надёжность и отказоустойчивость
4. Модульность
5

6.

Выбор модели жизненного цикла
Для разработки выбрана гибридная
модель (Agile + Спиральная).
Данный
выбор
обусловлен
следующим:
1. Безопасность – на каждом этапе
требуется
анализ
рисков,
что
обеспечивает спиральная модель.
2. Гибкость – требования к вебинтерфейсу
могут
уточняться
в
процессе
разработки
на
основе
обратной связи, что даёт Agile-подход.
3. Интеграция с существующим
C++ приложением
6

7.

Выбор метода разработки
Данное программное средство было разработано с использованием метода
нисходящей разработки (Top-Down):
1. Сначала был спроектирован бэкенд (главный модуль main.py, модули API,
модули сервисов, модели и схемы).
2. Затем настроена инфраструктура (база данных PostgreSQL, миграции
Alembic).
3. После этого разработан фронтенд (компоненты для входа, регистрации и
хранилища, сервисы для API-запросов).
4. Интеграция компонентов:
– подключение CloudSync к UI;
– настройка общих API;
– тестирование синхронизации.
7

8.

Диаграмма вариантов использования системы web-конфигурации паролей
8

9.

Диаграмма классов системы
web-конфигурации паролей
9

10.

Контекстная диаграмма системы web-конфигурации паролей
10

11.

Декомпозиция контекстной диаграммы системы web-конфигурации паролей
11

12.

Модульная структура
Модули бэкенда
main, auth_api, vault_api, deps, config, database, security, user_model,
session_model, auth_schema, vault_schema, auth_service, vault_service,
alembic_config, alembic_env, venv_activate
Модули базы данных
docker_compose
Модули фронтенда
package_json, tsconfig
12

13.

Интерфейс приложения
13

14.

Метрики Холстеда
Для модуля main.py:
14

15.

Метрики Холстеда
Для модуля config.py:
15

16.

Метрики Холстеда
Для модуля security.py:
16

17.

Вывод по метрикам Холстеда
– объём программы (V = 235 для main, V = 91 для config, V = 142 для
database) — информационная ёмкость модулей соответствует низкой и средней
сложности;
– уровень языка (λ = 0,272 для main, λ = 2,63 для config, λ = 0,156 для
database) — использование высокоуровневых абстракций FastAPI и
SQLAlchemy;
– прогноз ошибок (B ≤ 0,12 для всех модулей) — предполагает отсутствие
скрытых ошибок;
– отклонение расчётной длины от фактической (10–40%) — связано с
использованием фреймворков.
17

18.

Метрики МакКейна
Для модуля main.py:
18

19.

Метрики МакКейна
Для модуля config.py:
19

20.

Метрики МакКейна
Для модуля security.py:
20

21.

Вывод по метрикам МакКейна
Z(G) = m – n + 2r
Модуль
Вершины (n)
Дуги (m)
Z(G) Интерпретация
main.py
7
6
1
config.py
2
1
1
database.py
6+3
5+3
3
Простая программа, низкий риск
Средняя программа, средний риск
21

22.

Метрики Чепина
CH = V + 2M + 3U + 0,5L
Модуль main.py:
CH = V + 2×M + 3×U+ 0,5×L = 2 + 2×1 + 3×0 + 0,5×0 = 2 + 2 + 0 + 0 = 4
Модуль config.py:
CH = V + 2×M + 3×U + 0,5×L = 0 + 2×6 + 3×0 + 0,5×0 = 0 + 12 + 0 + 0 = 12
Модуль database.py:
CH = V + 2×M + 3×U + 0,5×L = 3 + 2×5 + 3×0 + 0,5×0 = 3 + 10 + 0 + 0 = 13
Все показатели CH = 4, 12 и 13 соответствуют низкой и средней сложности
(CH < 50).
22

23.

Общий шаблон тестирования
Действие
Ожидаемый результат
1. Запустить бэкенд (FastAPI) и фронтенд (React)
Сервер запускается на порту 8000, фронтенд
доступен по адресу http://localhost:3000.
Открывается страница входа.
2. Перейти на страницу регистрации, ввести email и Пользователь создаётся в базе данных, выполняется
мастер-пароль (мин. 8 символов), нажать
автоматический вход, открывается страница
«Зарегистрироваться»
хранилища паролей. Отображается ключ
восстановления.
3. Добавить новую запись пароля (сайт, логин,
пароль, категория)
Запись появляется в таблице паролей. Пароль
отображается в замаскированном виде (*******).
23

24.

Позитивный тест-кейс №1: регистрация и вход пользователя
Действие
Ожидаемый результат
1. Открыть веб-интерфейс
Отображается страница входа.
2. Ввести email, мастер-пароль и подтверждение,
нажать «Зарегистрироваться»
Пользователь создаётся в БД. Выполняется
автоматический вход. Отображается страница
хранилища паролей. Появляется модальное окно с
ключом восстановления.
3. Нажать «Выйти», затем снова войти с теми же
данными
Вход выполнен успешно, отображается список
сохранённых паролей.
24

25.

Позитивный тест-кейс №2: синхронизация с C++ приложением
Действие
Ожидаемый результат
1. В веб-версии добавить пароль google.com
Запись появляется в таблице паролей веб-версии.
2. В C++ приложении нажать «Cloud Sync», затем
«Download from Cloud»
Пароль google.com появляется в списке паролей
C++ приложения.
3. В C++ приложении добавить пароль, нажать
«Upload to Cloud», затем в веб-версии нажать
«Обновить»
Пароль github.com сохраняется на сервере. В
таблице паролей веб-версии отображаются оба
пароля: google.com и github.com.
25

26.

Негативный тест-кейс №1: регистрация с некорректными данными
Действие
Ожидаемый результат
1. Открыть страницу регистрации, ввести email,
мастер-пароль (менее 8 символов) и подтверждение,
нажать «Зарегистрироваться»
Система не создаёт пользователя. Появляется
сообщение об ошибке: «Пароль должен быть
минимум 8 символов».
2. Ввести корректный пароль, но подтверждение не
совпадает, нажать «Зарегистрироваться»
Появляется сообщение: «Пароли не совпадают».
Пользователь не создаётся.
3. Ввести корректные данные и зарегистрироваться
повторно с тем же email
Появляется сообщение: «Ошибка при регистрации.
Возможно, email уже используется».
26

27.

Негативный тест-кейс №2: синхронизация без авторизации
Действие
Ожидаемый результат
1. Запустить C++ приложение, не выполняя вход в
облако, нажать «Cloud Sync»
Кнопка «Cloud Sync» отображается серой.
Открывается окно синхронизации, но кнопки
«Upload to Cloud» и «Download from Cloud»
неактивны или выдают ошибку.
2. Выполнить вход с неверным паролем
Появляется сообщение: «Invalid email or password».
Токен не сохраняется, кнопка «Cloud Sync» остаётся
серой.
3. Выполнить вход с верными данными
Кнопка становится зелёной «Cloud Sync». Данные
синхронизируются успешно.
27

28.

Отчет об ошибке: некорректное хеширование пароля при регистрации
28

29.

Отчет об ошибке: Ошибка 500 при синхронизации
29

30.

Результат работы
30

31.

Вывод
Цель курсовой работы была достигнута. Разработана
полноценная система web-конфигурации паролей с облачной
синхронизацией, включающая десктопное приложение на C++,
бэкенд на FastAPI и веб-интерфейс на React.
Поставленные задачи, определявшие правильность
разработанного приложения, были выполнены.
работы
31
English     Русский Rules