|
|
@@ -0,0 +1,210 @@
|
|
|
+# ТЕХНИЧЕСКОЕ ЗАДАНИЕ
|
|
|
+на разработку программного продукта
|
|
|
+«Интерактивная игра: Управление доступом и контроль печати конфиденциальной информации»
|
|
|
+
|
|
|
+## 1. Общие сведения
|
|
|
+### 1.1. Наименование продукта
|
|
|
+«Интерактивная игра: Управление доступом и контроль печати конфиденциальной информации» (далее — Игра).
|
|
|
+
|
|
|
+### 1.2. Назначение
|
|
|
+Игра предназначена для обучения сотрудников организаций, студентов и специалистов в области информационной безопасности основам:
|
|
|
+
|
|
|
+моделей управления доступом (DAC, MAC, RBAC);
|
|
|
+
|
|
|
+принципа минимальных привилегий;
|
|
|
+
|
|
|
+безопасной печати конфиденциальных документов;
|
|
|
+
|
|
|
+маркировки и уничтожения бумажных носителей;
|
|
|
+
|
|
|
+расследования инцидентов, связанных с утечкой через печать.
|
|
|
+
|
|
|
+Цель — закрепление теоретических знаний в интерактивной форме, проверка правильности принятия решений в симулированных ситуациях.
|
|
|
+
|
|
|
+### 1.3. Заказчик и исполнитель
|
|
|
+Заказчик: (указывается по требованию).
|
|
|
+Исполнитель: разработчик (физическое или юридическое лицо).
|
|
|
+
|
|
|
+### 1.4. Основания для разработки
|
|
|
+Настоящее ТЗ составлено на основании требований к обучающим системам по курсу «Информационная безопасность» и необходимости автоматизированной проверки знаний по теме контроля печати и управления доступом.
|
|
|
+
|
|
|
+## 2. Требования к функциональности
|
|
|
+### 2.1. Общая структура
|
|
|
+Игра должна состоять из последовательных сцен (этапов). Количество сцен — 5 (пять). Каждая сцена представляет собой интерактивное задание с проверкой правильности ответа. Переход к следующей сцене возможен только после успешного выполнения текущей.
|
|
|
+
|
|
|
+### 2.2. Перечень сцен и их функциональные требования
|
|
|
+Сцена 1: Выбор модели доступа
|
|
|
+
|
|
|
+Описание: Пользователю предъявляются 3 описания моделей DAC, MAC, RBAC и выпадающие списки для выбора правильной модели.
|
|
|
+
|
|
|
+Критерий успеха: Все 3 соответствия верны.
|
|
|
+
|
|
|
+Сцена 2: Принцип минимальных привилегий
|
|
|
+
|
|
|
+Описание: Пользователь назначает права доступа (чтение/печать) для ролей: Бухгалтер, Кадровик, Сисадмин, Стажёр к объектам: «Зарплата», «Личные дела», «Журналы сервера», «Общие инструкции».
|
|
|
+
|
|
|
+Критерий успеха: Выбор должен в точности соответствовать матрице: Бухгалтер → только «Зарплата»; Кадровик → только «Личные дела»; Сисадмин → только «Журналы»; Стажёр → только «Инструкции».
|
|
|
+
|
|
|
+Сцена 3: Настройка безопасной печати
|
|
|
+
|
|
|
+Описание: Пользователь выбирает принтер (из трёх вариантов), время автоматического удаления невостребованного задания (5, 15, 30 минут), необходимость аутентификации.
|
|
|
+
|
|
|
+Критерий успеха: Принтер — «Принтер в сейфовой комнате», время = 5 минут, аутентификация = Да.
|
|
|
+
|
|
|
+Сцена 4: Маркировка и уничтожение
|
|
|
+
|
|
|
+Описание: Два вопроса:
|
|
|
+
|
|
|
+Как промаркировать конфиденциальный документ (варианты: только гриф, штамп с номером экземпляра, без маркировки).
|
|
|
+
|
|
|
+Что сделать с бракованной распечаткой (мусор, черновик, шредер 3-й степени, сжечь).
|
|
|
+
|
|
|
+Критерий успеха: Штамп с номером экземпляра + шредер 3-й степени.
|
|
|
+
|
|
|
+Сцена 5: Расследование инцидента
|
|
|
+
|
|
|
+Описание: Представлен журнал печати (таблица). Пользователь должен указать, кто из сотрудников распечатал тот же конфиденциальный файл сразу после Петрова и не имел прав.
|
|
|
+
|
|
|
+Критерий успеха: Ответ — Иванов.
|
|
|
+
|
|
|
+### 2.3. Дополнительные функциональные требования
|
|
|
+Прогресс и очки: отображение текущего этапа (счётчик или прогресс-бар) и накопленных баллов (по +10 баллов за каждый успешно пройденный этап).
|
|
|
+
|
|
|
+Звуковое сопровождение: короткий звуковой сигнал при правильном ответе (1000 Гц, 200 мс) и при ошибке (400 Гц, 500 мс). Возможность отключения звука не требуется.
|
|
|
+
|
|
|
+Анимация: при проверке ответа фон основного рабочего фрейма должен плавно менять цвет на зелёный (успех) или красный (ошибка) с последующим возвратом к исходному цвету. Длительность анимации не более 0,5 секунды.
|
|
|
+
|
|
|
+Подсказки: на каждой сцене должна быть кнопка «Подсказка». При нажатии в нижней части окна на 5 секунд отображается текст с полезным советом по текущему заданию.
|
|
|
+
|
|
|
+Завершение игры: после успешного прохождения всех 5 сцен выводится финальное сообщение с итоговым количеством очков. Приложение закрывается по желанию пользователя (кнопка OK в сообщении или крестик окна).
|
|
|
+
|
|
|
+### 2.4. Обработка ошибок
|
|
|
+При неправильном ответе на любом этапе игра не переходит к следующей сцене, выдаёт сообщение об ошибке с пояснением и остаётся на текущей сцене для повторной попытки.
|
|
|
+
|
|
|
+Количество попыток не ограничено.
|
|
|
+
|
|
|
+Пользователь может менять свои ответы до момента нажатия кнопки «Проверить».
|
|
|
+
|
|
|
+## 3. Требования к пользовательскому интерфейсу
|
|
|
+### 3.1. Окно приложения
|
|
|
+Размер окна: не менее 900×700 пикселей (рекомендуется 900×700).
|
|
|
+
|
|
|
+Заголовок окна: «Игра: Управление доступом и контроль печати».
|
|
|
+
|
|
|
+Цветовая схема: тёмный фон (основной #2c3e50, заголовок #1a252f), светлый текст (#ecf0f1, #bdc3c7), акцентные кнопки (#3498db, #f39c12).
|
|
|
+
|
|
|
+### 3.2. Элементы интерфейса (постоянные)
|
|
|
+Верхняя панель (header): название игры, прогресс-бар (ttk.Progressbar), индикатор очков.
|
|
|
+
|
|
|
+Основная область (content): сменяемый контент в зависимости от сцены.
|
|
|
+
|
|
|
+Нижняя панель (footer): поле для отображения подсказок (изначально нейтральный текст).
|
|
|
+
|
|
|
+### 3.3. Элементы управления на сценах
|
|
|
+Кнопка «Проверить» (или аналогичная) — запускает проверку ответов.
|
|
|
+
|
|
|
+Кнопка «Подсказка» — отображает подсказку.
|
|
|
+
|
|
|
+На сцене 1 — выпадающие списки (Combobox) для выбора модели.
|
|
|
+
|
|
|
+На сцене 2 — чекбоксы в виде таблицы.
|
|
|
+
|
|
|
+На сцене 3 — радиокнопки и чекбокс.
|
|
|
+
|
|
|
+На сцене 4 — радиокнопки.
|
|
|
+
|
|
|
+На сцене 5 — радиокнопки и таблица (Treeview).
|
|
|
+
|
|
|
+Все элементы должны быть читаемыми, с достаточными отступами.
|
|
|
+
|
|
|
+## 4. Технические требования
|
|
|
+### 4.1. Платформа и язык реализации
|
|
|
+Язык программирования: Python версии 3.7 и выше.
|
|
|
+
|
|
|
+Графическая библиотека: tkinter (входит в стандартную поставку Python).
|
|
|
+
|
|
|
+Дополнительные библиотеки: не требуются (кроме стандартных: tkinter, random, time, winsound — опционально).
|
|
|
+
|
|
|
+### 4.2. Требования к коду
|
|
|
+Код должен быть самодостаточным, не требовать установки дополнительных пакетов.
|
|
|
+
|
|
|
+Структура: класс SecurityGame, методы для каждой сцены, методы анимации, звука, перехода между сценами.
|
|
|
+
|
|
|
+Использовать объектно-ориентированный подход.
|
|
|
+
|
|
|
+Код должен быть документирован (комментарии на русском или английском языке, поясняющие ключевые моменты).
|
|
|
+
|
|
|
+### 4.3. Обработка исключений
|
|
|
+При отсутствии звуковой поддержки (например, на Linux/macOS) программа не должна завершаться с ошибкой; функция звука должна корректно обрабатывать исключения (try/except).
|
|
|
+
|
|
|
+### 4.4. Производительность
|
|
|
+Интерфейс должен откликаться мгновенно на действия пользователя. Анимация не должна вызывать заметных задержек.
|
|
|
+
|
|
|
+## 5. Состав и содержание работ по разработке
|
|
|
+Разработка архитектуры приложения (класс, методы, хранение состояния).
|
|
|
+
|
|
|
+Реализация главного окна и постоянных элементов (прогресс, очки, подсказки).
|
|
|
+
|
|
|
+Реализация каждой из 5 сцен в соответствии с функциональными требованиями.
|
|
|
+
|
|
|
+Реализация звуковых эффектов и анимации.
|
|
|
+
|
|
|
+Интеграция подсказок и логики проверки ответов.
|
|
|
+
|
|
|
+Тестирование на корректность работы всех сценариев (правильные и неправильные ответы).
|
|
|
+
|
|
|
+Написание инструкции по запуску (в виде комментариев в коде или отдельного файла README).
|
|
|
+
|
|
|
+## 6. Требования к документации
|
|
|
+Документация должна включать:
|
|
|
+
|
|
|
+Краткое описание игры и её целей.
|
|
|
+
|
|
|
+Инструкцию по запуску (команда python filename.py).
|
|
|
+
|
|
|
+Краткое описание сцен и правильных ответов.
|
|
|
+
|
|
|
+Перечень использованных библиотек.
|
|
|
+
|
|
|
+Документация может быть оформлена в виде отдельного файла README.md или в виде комментариев в начале исходного кода.
|
|
|
+
|
|
|
+## 7. Порядок сдачи и приёмки
|
|
|
+Результатом работы является один файл с исходным кодом на Python (расширение .py), который при запуске открывает окно игры.
|
|
|
+
|
|
|
+Приёмка осуществляется по критериям:
|
|
|
+
|
|
|
+работа всех 5 сцен без ошибок;
|
|
|
+
|
|
|
+корректная обработка правильных и неправильных ответов;
|
|
|
+
|
|
|
+наличие прогресс-бара и счёта очков;
|
|
|
+
|
|
|
+наличие анимации и звуковых сигналов (или их корректное отключение при отсутствии поддержки);
|
|
|
+
|
|
|
+удобство интерфейса.
|
|
|
+
|
|
|
+Тестирование проводится на операционной системе Windows 10/11 (приоритет) и, опционально, на Linux/macOS.
|
|
|
+
|
|
|
+## 8. Сроки разработки
|
|
|
+(Указываются при необходимости, например: 5 рабочих дней с момента утверждения ТЗ.)
|
|
|
+
|
|
|
+## 9. Предполагаемые риски и их минимизация
|
|
|
+Риск: Отсутствие звука на платформах, отличных от Windows
|
|
|
+Минимизация: Использовать try/except, при отсутствии winsound просто не воспроизводить звук, не выдавая ошибку.
|
|
|
+
|
|
|
+Риск: Некорректное отображение анимации при медленной системе
|
|
|
+Минимизация: Установить минимальную задержку между шагами анимации (0.02 с) и ограничить число шагов (10).
|
|
|
+
|
|
|
+Риск: Сложность размещения чекбоксов на сцене 2
|
|
|
+Минимизация: Использовать Canvas.create_window для точного позиционирования.
|
|
|
+
|
|
|
+## 10. Приложение: эталонные правильные ответы
|
|
|
+Сцена 1: (1) DAC, (2) MAC, (3) RBAC
|
|
|
+
|
|
|
+Сцена 2: Бухгалтер → Зарплата; Кадровик → Личные дела; Сисадмин → Журналы; Стажёр → Инструкции
|
|
|
+
|
|
|
+Сцена 3: Принтер в сейфовой комнате, 5 минут, аутентификация Да
|
|
|
+
|
|
|
+Сцена 4: Штамп с номером экземпляра; шредер 3-й степени
|
|
|
+
|
|
|
+Сцена 5: Иванов
|