specification_template.md 11 KB

ЛИСТ СПЕЦИФИКАЦИИ И ПРИЁМКИ МОДЕЛИ

Тема по программе: [Например: 4.1.400 Защита информации от утечки по акустическим каналам] Название модели: [Например: Акустический щит] Автор: [Фамилия Имя, группа] Использованный ИИ-инструмент: [Например: ChatGPT-4o / YandexGPT / Claude 3.5] Ветка разработки: feature/название_модели Ссылка на Pull Request: [Ссылка на PR в Gogs]


1. Физическая (аналитическая) основа

Заполняется ДО генерации кода. Здесь мы фиксируем законы и формулы, которым должна подчиняться модель.

1.1. Моделируемые физические величины и их единицы:

  • Уровень речи: дБ (децибелы)
  • Уровень шума: дБ
  • Расстояние: метры (м)
  • Разборчивость: проценты (%)

1.2. Базовые формулы и законы:

  • Закон обратных квадратов для звука: падение уровня звука на 6 дБ при каждом удвоении расстояния от источника.
  • Отношение сигнал/шум (SNR) = Уровень речи - Уровень шума.
  • Формула Шеннона для разборчивости (или эмпирическая кривая артикуляции). [Студент должен привести конкретную формулу, которую он закладывает в основу]

1.3. Параметры по умолчанию:

  • Уровень речи в источнике: 60 дБ
  • Фоновый шум в помещении: 30 дБ
  • Диапазон изменения расстояния в модели: от 1 м до 10 м.

2. Граничные условия (Крайние случаи)

Модель обязана вести себя предсказуемо и физично на границах диапазонов.

  • Расстояние = 0: Модель не должна выдавать ошибку «деление на ноль» или бесконечность. Уровень сигнала ограничивается максимальным физическим пределом (например, 100 дБ у самого источника).
  • Шум = 0: Разборчивость должна быть 100% (или максимально возможной для данной модели).
  • Шум > Уровень речи: Отношение сигнал/шум отрицательное. Разборчивость должна падать до 0% и не уходить в отрицательные значения.
  • Маскирующий генератор включен: Уровень шума прибавляется к фоновому.

3. Упрощения модели (Что мы НЕ учитываем)

Заполняется студентом. Это показывает честность модели и понимание ее ограничений.

  • Мы не учитываем реверберацию (эхо) помещения.
  • Мы считаем, что источник звука ненаправленный (излучает во все стороны равномерно).
  • Мы не учитываем частотные характеристики (моделируем только интегральный уровень в дБ).

4. Сценарий

Заполняется студентом. Описывает экраны и логику переходов между ними. Минимум 4 сцены.

Сцена 1: Вводная.

  • Элементы: Текст вводной, кнопка «Включить питание».
  • Действия: Инициализация аудио-контекста, переход на Сцену 2.
  • Переход: Нажатие кнопки.

Сцена 2: Пульт управления.

  • Элементы: Ползунок расстояния, индикатор сигнала, тумблер генератора шума, ползунок уровня шума, индикатор SNR.
  • Действия: Движение ползунков, включение генератора.
  • Переход: Кнопка «Перейти к оценке».

Сцена 3: Оценка разборчивости.

  • Элементы: Шкала разборчивости, анимация.
  • Действия: Студент видит, как падает разборчивость.
  • Переход: Кнопка «Завершить».

Сцена 4: Итоговое тестирование.

  • Элементы: Тест из 5 вопросов.
  • Действия: Ответы на вопросы.
  • Переход: Вывод результата.

5. Методика проверки и тестирования

Заполняется студентом ДО сдачи работы. Описывает, как именно проверялась работоспособность.

5.1. Проверка формул (tester.html):

  • Сетка параметров: Расстояние от 1 до 10 с шагом 3; Шум от 0 до 100 с шагом 20.
  • Результат: Модель прошла 100% комбинаций (см. приложенный CSV). 5.2. Проверка звука и интерфейса:
  • Действие: Включить речь, включить генератор шума, выкрутить шум на 100 дБ.
  • Ожидаемый результат: Речь директора полностью заглушается шумом. Шкала разборчивости падает до 0%. 5.3. Проверка крайних случаев:
  • Действие: Установить расстояние 10 м, шум 0 дБ.
  • Ожидаемый результат: Уровень сигнала падает до 40 дБ, разборчивость около 95%.
  • Действие: Установить расстояние 10 м, шум 100 дБ.
  • Ожидаемый результат: Разборчивость 0%, нет отрицательных значений.

6. Стратегия работы с Git (Правила версионирования)

Заполняется студентом. Доказывает, что процесс разработки был осмысленным.

*Отдельные файлы версий (001.html, 002.html) создавать запрещено. Используем возможности системы контроля версий.*

  1. Ветка: Вся работа ведется в ветке feature/... (указана в шапке).
  2. Теги (Tags): Студент обязан поставить теги на ключевые вехи разработки.
    • v0.1-spec — код впервые сгенерирован ИИ.
    • v0.2-tested — прогнан tester.html, найдены ошибки (приложен CSV с FAIL).
    • v1.0-ready — ошибки исправлены, тест пройден на 100%, дизайн готов.
  3. Слияние (PR): В основную ветку работа попадает только через Pull Request. При слиянии используется Squash (вся история промежуточных коммитов сворачивается в один чистый коммит в мастере).

7. Журнал верификации и отладки (Борьба с галлюцинациями ИИ)

Заполняется ПОСЛЕ генерации кода. Это «навигационная карта» для преподавателя. Вам не нужно проверять все коммиты подряд — только те, что указаны в этой таблице.

№ Что попросили у ИИ Что сгенерировал ИИ Ошибка (галлюцинация) Как исправили Имя коммита (Git hash / сообщение)
1 Сгенерируй шкалу затухания звука от расстояния Сделал линейную шкалу: чем дальше, тем тише Звук затухает не линейно, а логарифмически (закон обратных квадратов). Заставили ИИ переписать формулу расчета дБ через логарифм. a1b2c3d — fix: correct attenuation formula to log scale
2 Добавь ползунок шума При значении шума 100 дБ разборчивость стала -20% Разборчивость не может быть отрицательной. Добавили условие Math.max(0, razborchivost) в код. e4f5g6h — fix: clamp intelligibility to 0-100%
3 ... ... ... ... ...

8. Критерии приёмки (Чек-лист преподавателя)

Работа не принимается, если хотя бы один пункт не выполнен.

  • Код модели физически корректен (соответствует формулам из п.1).
  • Граничные условия из п.2 работают без ошибок и зависаний.
  • В интерфейсе (на экране) выведены основные формулы расчета в виде текста.
  • В интерфейсе есть пометка «Учебная модель. Не калибрована».
  • В конце есть кнопка «Итоговое тестирование» (5-10 вопросов).
  • Студент может объяснить на защите, какие ошибки ИИ он нашел и как исправил.
  • Модель работает офлайн (PWA) и устанавливается на телефон.
  • В Gogs создан Pull Request, в описании PR есть ссылка на этот Лист спецификации и CSV-отчет из тестера.
  • В репозитории стоят теги v0.1-spec, v0.2-tested, v1.0-ready.

Подпись студента: _______________ Оценка: _______________