From 436248937243a3c71df1549f324280226a1077d6 Mon Sep 17 00:00:00 2001 From: Kavalar Date: Sat, 26 Sep 2026 18:42:46 +0300 Subject: [PATCH] docs: add technical specification (GOST 34.602-2020) and analysis --- docs/analiz_TZ.md | 156 ++++++++++++ docs/spec_text.txt | 456 ++++++++++++++++++++++++++++++++++ docs/ТЗ_ГОСТ_34.602-2020.docx | Bin 0 -> 51282 bytes 3 files changed, 612 insertions(+) create mode 100644 docs/analiz_TZ.md create mode 100644 docs/spec_text.txt create mode 100644 docs/ТЗ_ГОСТ_34.602-2020.docx diff --git a/docs/analiz_TZ.md b/docs/analiz_TZ.md new file mode 100644 index 0000000..cf1d9ad --- /dev/null +++ b/docs/analiz_TZ.md @@ -0,0 +1,156 @@ +# Анализ технического задания + +**Документ:** ТЗ на создание автоматизированной системы «Платформа ОПОРА РОССИИ» +**Основание:** ГОСТ 34.602-2020 +**Версия:** 0.3 от 25.09.2026, статус — проект ТЗ (черновик для согласования) +**Объём:** 9 разделов + 3 приложения (А, Б, В) + +--- + +## 1. Общая характеристика + +Документ описывает создание автоматизированной системы для общероссийской общественной организации МСП «ОПОРА РОССИИ». Система объединяет три канала: + +- **мессенджер-бот** (Telegram, вариант — MAX) — точка входа, авторизация, рассылки; +- **веб-приложение (mobile-first)** — личный кабинет, цели, рейтинги, карточки регионов, задачи, артефакты; +- **серверная часть (API) + БД** — единое хранилище для бота и сайта. + +Ключевая бизнес-идея — прозрачный учёт целевых показателей (рост базы членов, «точка 0», прирост, рейтинг 89 регионов и 8 округов) и вовлечение региональных отделений через персональные рассылки и «красную зону». + +Документ подготовлен аккуратно, структура соответствует ГОСТ, открытые вопросы вынесены в варианты решений. Это **хороший черновик уровня «концепция + ТЗ»**, но до подписания требует устранения ряда пробелов и внутренних несоответствий. + +--- + +## 2. Соответствие ГОСТ 34.602-2020 + +| Требуемый раздел ГОСТ | Наличие | Комментарий | +|---|---|---| +| Общие сведения | ✅ | п. 1, но часть полей — заглушки | +| Назначение и цели создания | ✅ | п. 2, цели измеримы | +| Характеристика объектов автоматизации | ✅ | п. 3 | +| Требования к системе | ✅ | п. 4 (в целом, функции, виды обеспечения) | +| Состав и содержание работ | ✅ | п. 5, таблица по стадиям ГОСТ 34.601 | +| Порядок контроля и приёмки | ✅ | п. 6 | +| Требования к подготовке объекта | ✅ | п. 7 | +| Требования к документированию | ✅ | п. 8 | +| Источники разработки | ✅ | п. 9 | + +**Вывод:** формально структура полная. Основные проблемы — не в составе разделов, а в глубине и непротиворечивости требований. + +--- + +## 3. Сильные стороны + +1. **Чёткая структура и трассируемость** — функции (4.2), виды обеспечения (4.3) и приёмка (6.3) связаны между собой. +2. **Измеримые показатели назначения** (4.1.3): время загрузки ≤ 3 с, экран целей ≤ 2 с, рассылка ≤ 1 ч, доступность ≥ 99%. +3. **Явные варианты решений** (Приложение В) — 10 открытых вопросов с рекомендацией «Вариант 1». Это правильный способ зафиксировать неопределённость до согласования. +4. **Mobile-first и эргономика** (4.1.6) — учтён основной сценарий (смартфон, встроенные браузеры мессенджеров). +5. **Безопасность входа** — одноразовые ссылки, блокировка повторного использования, привязка сессии к аккаунту мессенджера, журналирование. +6. **Референс функциональности** (Приложение Б) — состав экранов аналогичной платформы, что снижает риск недопонимания. +7. **Хостинг на территории РФ** (4.3.5) и патентная чистота (4.1.11) — учтены российские требования. + +--- + +## 4. Пробелы и риски + +### 4.1. Незаполненные обязательные поля +- Шифр темы, заказчик и разработчик, сроки начала/окончания, источники финансирования, домен (пп. 1.1–1.5, 7). +- Без этих данных ТЗ не может быть утверждено и не может служить основанием договора. + +### 4.2. Персональные данные и регуляторика (критично) +- Система хранит ФИО, аккаунты мессенджеров, членство, контакты. **Нет ни одного упоминания 152-ФЗ** «О персональных данных»: согласие на обработку, цели, сроки хранения, права субъекта, требования к защите (ПП-1119, при необходимости — ФСТЭК). +- Нет требований к согласию и **отписке от массовых рассылок** (риск спама и жалоб). +- Для AI-ассистента «Зам» (Вариант 1) не определено, где обрабатываются данные и какому LLM-провайдеру передаются — риск утечки ПДн за периметр РФ. + +### 4.3. Нефункциональные требования заданы поверхностно +- **Нагрузка:** нет профиля (число одновременных пользователей, пиковые нагрузки), хотя масштаб задан в пользователях/подписчиках. +- **Надёжность:** RPO/RTO не заданы явно (только «восстановление ≤ 24 ч» и ежесуточный бэкап → RPO до 24 ч, что может быть неприемлемо). +- **Мониторинг/алертинг/наблюдаемость** не описаны. +- **Сроки хранения журналов** (аудит, действия ассистента, рассылки) не заданы. +- **SLA** ограничен доступностью 99%; нет описания поддержки, времени реакции на инциденты. + +### 4.4. Интеграции и данные +- Интеграция с существующими учётными системами — только «при наличии» (п. 7), без анализа. +- **MAX Bot API** — возможность интеграции не подтверждена (п. 4.1.13.2, Вариант 2). Это внешний риск, влияющий на сроки. +- Нет требований к API: версионирование, лимиты, форматы ошибок, идемпотентность. +- Не определён **владелец и жизненный цикл «точки 0»** (кто задаёт, можно ли менять, как корректируются ошибки выгрузок). + +### 4.5. Функциональные неоднозначности +- **Рейтинг, Вариант 2** — «взвешенная формула», но веса не заданы и не определены шкалы. +- **Рассылки, Вариант 2** — конструктор, A/B-тесты, статистика открытий: существенно расширяет объём, но без оценки трудозатрат. +- **Артефакты, Вариант 2** — медиатека с версионированием и правами: отдельная подсистема. +- **AI-ассистент** — не заданы модель угроз, ограничения по типам действий, механизм подтверждения владельцем, поведение при ошибке публикации. +- Нет требований к **модерации** «Советов от регионов» и пользовательского контента. + +### 4.6. Отсутствующие разделы/темы +- Оценка стоимости и трудозатрат (в п. 5 упоминается «оценка стоимости» на этапе концепции, но цифр нет). +- Требования к тестированию и покрытию (кроме видов испытаний в п. 6). +- Требования к доступности для людей с ограниченными возможностями. +- Требования к резервному копированию файлов (артефактов), а не только БД. +- План миграции данных и критерии качества данных. + +--- + +## 5. Внутренние несоответствия и дефекты + +1. **Битая ссылка на подпункты.** П. 4.1.13 (строка 142) ссылается на «пп. 4.1.13.1–4.1.13.10», но фактически существуют только 4.1.13.1–4.1.13.3. Нужно либо добавить подпункты, либо исправить диапазон. +2. **Расхождение онбординга.** П. 4.2.2: 5 шагов — «…защита проекта и получение поддержки». Приложение Б: «…Мурманск → защита проекта и грант». Формулировки и содержание шагов не совпадают. +3. **Терминология.** В основном тексте — «проекты Организации», в Приложении Б — «МПР 2026» / «Регистрации МПР 2026». Нужен единый глоссарий (частично есть в 4.3.3, но «МПР» не раскрыт). +4. **Ссылки на пункты в таблице В.1** корректны, но в тексте п. 4.1.13.1 назван «Масштаб системы», а в таблице — «Масштаб»; мелочь, но для утверждаемого документа важна точность. +5. **Приложение Б** описывает референс, но не помечено, какие экраны **обязательны**, а какие — только ориентир. Это создаёт риск спора на приёмке. +6. **Критерии приёмки** (6.3) ссылаются на «выбранные варианты», которые ещё не выбраны. До фиксации вариантов приёмка неопределима. + +--- + +## 6. Сводка открытых вопросов (Приложение В) + +| № | Вопрос | Рекомендуемый вариант | Влияние на объём | +|---|---|---|---| +| 1 | Ассистент «Зам» | AI-ассистент | Высокое (LLM, безопасность, ПДн) | +| 2 | Доступ к задачам | Все авторизованные | Среднее | +| 3 | Артефакты | Простая загрузка | Низкое/Высокое (медиатека) | +| 4 | Карточка региона | Только своё отделение | Среднее (риск открытой модели) | +| 5 | Рассылки | Фиксированные шаблоны | Высокое (конструктор) | +| 6 | Рейтинг | По приросту от точки 0 | Среднее | +| 7 | История платформы | Публичная лента | Низкое | +| 8 | Мессенджеры | Telegram + MAX сразу | Высокое (риск MAX API) | +| 9 | Масштаб | До 10 тыс. пользователей | Высокое (кластер) | +| 10 | Дизайн | По брендбуку | Среднее | + +**Рекомендация:** зафиксировать все 10 вариантов **до** заключения договора, иначе объём и стоимость будут плавающими. + +--- + +## 7. Рекомендации + +**Приоритет 1 (блокеры утверждения):** +1. Заполнить обязательные поля (заказчик, разработчик, сроки, финансирование, шифр, домен). +2. Добавить раздел по **152-ФЗ**: правовые основания, согласия, сроки хранения, меры защиты, локализация ПДн. +3. Зафиксировать выбор по всем 10 вариантам Приложения В. +4. Устранить внутренние несоответствия (п. 5 настоящего анализа). + +**Приоритет 2 (управление рисками):** +5. Провести техническое обследование **MAX Bot API** до фиксации Варианта 1 по п. 4.1.13.2. +6. Задать профиль нагрузки и уточнить RPO/RTO, мониторинг, сроки хранения журналов. +7. Для AI-ассистента — модель угроз, ограничения действий, требования к LLM-провайдеру и локализации данных. +8. Определить жизненный цикл «точки 0» и правила корректировки данных. + +**Приоритет 3 (качество):** +9. Добавить требования к API (версионирование, лимиты, ошибки). +10. Добавить требования к тестированию, доступности (a11y), резервному копированию файлов. +11. Пометить в Приложении Б обязательные и опциональные экраны. +12. Приложить оценку трудозатрат и стоимости по каждому варианту. + +--- + +## 8. Итоговая оценка + +| Критерий | Оценка | +|---|---| +| Соответствие ГОСТ 34.602-2020 (структура) | 9/10 | +| Полнота требований | 6/10 | +| Непротиворечивость | 6/10 | +| Готовность к утверждению | 4/10 (черновик) | +| Управление неопределённостью (варианты) | 9/10 | + +**Вывод:** документ — качественный черновик с правильной структурой и хорошей проработкой бизнес-логики. Главные доработки перед утверждением: правовой блок (152-ФЗ), фиксация вариантов, устранение внутренних расхождений и уточнение нефункциональных требований. После этого ТЗ может служить основанием для договора и календарного плана. diff --git a/docs/spec_text.txt b/docs/spec_text.txt new file mode 100644 index 0000000..3402d56 --- /dev/null +++ b/docs/spec_text.txt @@ -0,0 +1,456 @@ +ТЕХНИЧЕСКОЕ ЗАДАНИЕ +на создание автоматизированной системы «Платформа ОПОРА РОССИИ» +Документ разработан в соответствии с ГОСТ 34.602-2020 «Информационные технологии. Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы» +Таблица 1 — Сведения о документе +Шифр темы +(заполняется при утверждении) +Версия документа +0.3 +Дата +25.09.2026 +Статус +Проект ТЗ (черновик для согласования) + +1. Общие сведения +1.1. Полное наименование системы: Автоматизированная система «Платформа ОПОРА РОССИИ» (далее — Система). +Условное обозначение: АС «Платформа ОПОРА РОССИИ». +1.2. Наименования заказчика и разработчика (участников работ) — заполняются при утверждении настоящего ТЗ. +1.3. Перечень документов, на основании которых создаётся Система: +– настоящее техническое задание; +– описание бизнес-процессов Организации «ОПОРА РОССИИ» (Приложение А); +– материалы обследования аналогичной действующей платформы (референс функциональности): скриншоты экранов сайта `rmpred.ru` и бота `@pmpred_bot` (Приложение Б). +1.4. Плановые сроки начала и окончания работ по созданию Системы — заполняются при утверждении настоящего ТЗ. +1.5. Сведения об источниках и порядке финансирования — заполняются при утверждении настоящего ТЗ. +1.6. Порядок оформления и предъявления заказчику результатов работ: результаты работ по этапам предъявляются заказчику в соответствии с календарным планом; приёмка осуществляется в порядке, установленном разделом 6 настоящего ТЗ. +2. Назначение и цели создания (развития) системы +2.1. Назначение Системы. +Система предназначена для автоматизации деятельности общероссийской общественной организации малого и среднего предпринимательства «ОПОРА РОССИИ» (далее — Организация), а именно: +– автоматизации учёта, расчёта и отображения целевых показателей Организации (цели, рейтинги, динамика региональных отделений и округов); +– автоматизации коммуникаций с членами Организации через мессенджер-бот (информационные, образовательные и рейтинговые рассылки); +– обеспечения авторизованного доступа членов Организации к личному кабинету через бота (мессенджеры Telegram и MAX); +– ведения данных региональных отделений (карточка отделения, члены, численность, ссылки на сообщества и чаты); +– хранения и загрузки артефактов; +– ведения задач (трекер); +– обмена практиками между региональными отделениями («Советы от регионов»); +– поддержки ассистента «Зам» (вариант — см. п. 4.2.14). +2.2. Цели создания Системы: +– рост базы членов Организации до целевого значения (общая цель, например +1096 к базе от «точки 0»); +– обеспечение прозрачности результатов: каждое региональное отделение и округ видит свой вклад в общий результат; +– сокращение времени на сбор, обработку и публикацию данных (автообновление срезов); +– повышение вовлечённости региональных отделений: выявление «красной зоны» (отделения без динамики) и адресная помощь; +– снижение рутинных операций за счёт автоматических рассылок и (вариант) AI-ассистента; +– создание единой точки входа: бот → сайт → личный кабинет. +3. Характеристика объектов автоматизации +3.1. Объектом автоматизации является деятельность Организации «ОПОРА РОССИИ», включающая: +– руководителей региональных отделений (89 регионов, 8 федеральных округов); +– членов Организации; +– координаторов (выдача ссылок для входа); +– администраторов платформы. +3.2. Автоматизируемые процессы: +– регистрация и авторизация членов Организации через бота; +– рассылки: информационные, образовательные, рейтинговые (еженедельный фокус целей); +– учёт целевых показателей (проекты Организации и др.): «точка 0», текущие срезы, прирост, динамика; +– формирование рейтингов региональных отделений; +– ведение карточек региональных отделений (численность, ссылки на сообщества и чаты, члены); +– загрузка и хранение артефактов; +– ведение задач; +– обработка запросов (заявки на вступление, на доступ, на участие в мероприятиях, на поддержку); +– ведение базы знаний, календаря событий, истории платформы. +3.3. Условия эксплуатации: пользователи работают с Системой преимущественно с мобильных устройств (основной сценарий) через браузер; бот функционирует в мессенджерах Telegram и (вариант) MAX. Допускается работа с персональных компьютеров. +4. Требования к системе +4.1. Требования к системе в целом +4.1.1. Требования к структуре и функционированию Системы. +Система включает следующие подсистемы и компоненты: +1. Мессенджер-бот (Telegram, MAX) — точка входа, авторизация, рассылки, интерактив. +2. Веб-приложение (mobile-first) — личный кабинет, цели, рейтинги, данные региональных отделений, задачи, артефакты. +3. Серверная часть (API) — единое API для бота и сайта. +4. База данных — единое хранилище данных. +5. Модуль выгрузок данных — загрузка срезов, расчёт прироста от «точки 0», автообновление. +6. Модуль рассылок — формирование и отправка сообщений через бота. +7. Модуль AI-ассистента «Зам» (вариант — см. п. 4.2.14). +Требования к функционированию: +– бот и сайт используют единые данные (то, что загружено на сайте, используется в рассылках бота); +– вход на сайт выполняется только через бота по одноразовой ссылке; +– после подтверждения входа ботом сайт открывается автоматически (при сбое — кнопка «Открыть сайт»); +– данные целей обновляются автоматически по выгрузкам (режим «Автообновление»). +4.1.2. Требования к численности и квалификации персонала Системы. +Таблица 2 — Роли и функции персонала +Роль +Функции +Кол-во (ориентировочно) +Администратор платформы +Управление ролями, выгрузками, рассылками, справочниками +1–3 +Координатор +Выдача одноразовых ссылок, поддержка пользователей +5–20 +Руководитель регионального отделения +Работа с целями, рейтингами, карточкой отделения +до 89 +Член Организации +Регистрация, участие, загрузка артефактов +по мере роста базы + +Квалификация: уверенный пользователь мобильных устройств и мессенджеров; специальная подготовка не требуется (обучение — по п. 7). +4.1.3. Показатели назначения. +– время загрузки основных экранов мобильной версии — не более 3 с при типовом канале связи; +– отображение экрана «Цели организации» с данными по 89+ регионам — без заметных задержек (не более 2 с); +– доставка массовой рассылки по всей базе подписчиков — не более 1 часа; +– автообновление срезов — без ручного вмешательства, по расписанию; +– доступность Системы — не менее 99% в месяц. +4.1.4. Требования к надёжности. +– доступность Системы — не менее 99% в месяц (допустимый простой — не более 7,2 ч/мес); +– корректная обработка устаревших выгрузок: цели со свежестью выгрузки более 7 дней исключаются из рассылки «Еженедельный фокус целей»; +– резервное копирование базы данных — ежесуточно; +– восстановление работоспособности после сбоя — не более 24 часов; +– отсутствие потери данных при штатном завершении работы. +4.1.5. Требования к безопасности. +– вход по одноразовым ссылкам; повторное использование ссылки блокируется с сообщением «Ссылка уже была использована. Запросите новую у координатора»; +– привязка сессии к аккаунту мессенджера пользователя; +– разграничение прав доступа по ролям (п. 4.1.8); +– передача данных по защищённому протоколу (TLS); +– журналирование действий пользователей и ассистента (кто, что, когда). +4.1.6. Требования к эргономике и технической эстетике. +– интерфейс проектируется по принципу mobile-first (ширина экрана 360–430 px); +– крупные элементы управления, удобные для касания; +– ключевые показатели отображаются крупными цифрами с подписями («Точка 0», «Сейчас», «Цель»); +– цветовое кодирование зон: динамика / «красная зона» / нейтральное состояние; +– единый визуальный стиль с брендом «ОПОРА РОССИИ»; +– пустые состояния сопровождаются подсказками (например: «Советов пока нет. Когда отделение даст динамику по цели, в боте появится кнопка "Дать совет для других лидеров"»). +4.1.7. Требования к эксплуатации, техническому обслуживанию, ремонту и хранению. +Эксплуатация Системы осуществляется в соответствии с регламентом, разрабатываемым на этапе «Ввод в действие». Техническое обслуживание — силами разработчика (или эксплуатационной организации) по договору сопровождения. +4.1.8. Требования к защите информации от несанкционированного доступа. +– ролевая модель доступа: администратор, координатор, руководитель регионального отделения, член Организации, (вариант) заместитель; +– аутентификация — через аккаунт мессенджера (Telegram/MAX) по одноразовой ссылке; +– авторизация — на уровне API и интерфейса; +– защита от перебора ссылок (случайные токены достаточной длины); +– журналирование попыток несанкционированного доступа. +4.1.9. Требования по сохранности информации при авариях. +– ежесуточное резервное копирование БД; +– хранение резервных копий не менее 30 дней; +– восстановление данных — не более 24 часов. +4.1.10. Требования к защите от влияния внешних воздействий. +Система функционирует в стандартной серверной среде; специальные требования к стойкости к внешним воздействиям не предъявляются (типовые требования к веб-приложениям: защита от DDoS, ограничение частоты запросов). +4.1.11. Требования к патентной чистоте. +Используемые технические решения должны обеспечивать патентную чистоту на территории Российской Федерации. +4.1.12. Требования по стандартизации и унификации. +При создании Системы руководствоваться: ГОСТ 34.601-2020 (стадии создания), ГОСТ 34.602-2020 (настоящее ТЗ), ГОСТ 34.603-2021 (испытания), ГОСТ 19.201-78 (при разработке программной документации). +4.1.13. Дополнительные требования. +– поддержка русского языка интерфейса; +– работа в основных мобильных браузерах (Chrome, Safari) и встроенных браузерах мессенджеров; +– масштабируемость в соответствии с выбранным вариантом (п. 4.1.13.1); +– варианты решений по открытым вопросам приведены в пп. 4.1.13.1–4.1.13.10. +4.1.13.1. Масштаб системы (варианты). +Вариант 1 (рекомендуемый): до 10 000 зарегистрированных пользователей, до 100 000 подписчиков рассылок. Достаточно одного сервера приложений и СУБД с репликацией. +Вариант 2: до 100 000 пользователей, до 1 000 000 подписчиков рассылок. Требуется кластерная архитектура, горизонтальное масштабирование, очередь сообщений для рассылок. +4.1.13.2. Мессенджеры (варианты). +Вариант 1 (рекомендуемый): интеграция с Telegram и MAX с первого этапа создания Системы (единый бот-адаптер с двумя каналами). +Вариант 2: на первом этапе — только Telegram; интеграция с MAX — на втором этапе, после подтверждения возможностей Bot API мессенджера MAX. +4.1.13.3. Дизайн интерфейса (варианты). +Вариант 1 (рекомендуемый): разработка интерфейса на основе брендбука / гайдлайнов «ОПОРА РОССИИ» (при наличии у заказчика). +Вариант 2: разработка нового дизайн-концепта с нуля (создание фирменного стиля интерфейса). +4.2. Требования к функциям (задачам), выполняемым системой +4.2.1. Функция «Авторизация и управление доступом». +– выбор мессенджера на сайте: «Войти через MAX» / «Войти через Telegram»; +– подтверждение входа ботом; автооткрытие личного кабинета; +– одноразовые ссылки входа, выдаваемые координатором; блокировка повторного использования; +– сценарий «Нет доступа? Начните регистрацию через бота»; +– подтверждение входа в боте: «{ФИО}, вход выполнен!»; +– завершение сессии («Выйти»). +4.2.2. Функция «Бот: онбординг, меню, команды». +– онбординг в формате 5 шагов: 1) регистрация на платформе; 2) заявка на вступление в Организацию; 3) онлайн-обучение; 4) участие в очном мероприятии; 5) защита проекта и получение поддержки; +– главное меню: «Войти на сайт», «Мои возможности», «Регионы и пользователи», «Цели организации», «Регистрации на мероприятия», «Помощь»; +– команды: `/start`, `/login`, `/requests`, `/regions`, `/goals`, `/events`, `/help`; +– кнопки: «Открыть сайт», «Открыть цели», «Меню», «Дать совет для других лидеров». +4.2.3. Функция «Рассылки». +Три типа рассылок: +Таблица 3 — Типы рассылок +Тип +Содержание +Периодичность +Информационные +Новости, анонсы, изменения платформы +По мере необходимости +Образовательные +Материалы обучения, шаги программ, практики +По расписанию программ +Рейтинговые / целевые +«Еженедельный фокус целей» — персональная сводка по региону +Еженедельно + +Формат «Еженедельного фокуса целей»: +– регион получателя (например, «Донецкая Народная Республика»); +– включаются только цели со свежей выгрузкой за последние 7 дней; +– позиция региона: «Ваш регион: топ прироста, прирост от 11.06.2026: +134»; +– динамика округа: «Округ: ЮФО: +365, с динамикой 12/12 регионов»; +– рекомендация: «Что делать: удержать темп и поделиться рабочими действиями с округом»; +– кнопка «Открыть цели» — переход на сайт. +4.2.3.1. Управление рассылками (варианты). +Вариант 1 (рекомендуемый): фиксированные шаблоны рассылок (еженедельный фокус целей, анонсы, образовательные материалы). Администратор редактирует тексты шаблонов и запускает рассылки; аудитория определяется автоматически (по региону, роли, подписке). +Вариант 2: конструктор рассылок: произвольный текст/медиа, выбор аудитории (регион, округ, роль), отложенный запуск, статистика доставки и открытий, A/B-тестирование. +4.2.4. Функция «Цели организации». +Экран целевых показателей: «что набираем, где есть движение и кому нужна помощь». Состав экрана: +– общая цель Организации — например, «+1096 к базе членов»; пояснение: «У Организации одна общая цель: вырасти на 1096 от точки 0. Округа показываются как вкладчики в общий результат»; +– вклад в общую цель — суммарный вклад округов (например, +338), численность, зарегистрированные члены, кнопка «Открыть»; +– динамика по цели — «Точка 0» / «Сейчас» / «Цель» с числовыми значениями; +– проекты Организации: активные цели, регионы с динамикой (например, 89), «Есть динамика», «Численность», «Организация: вклад сейчас» (+25), «Проекты: прирост от точки 0» (+2 594); +– параметры среза: «Точка 0: 2026-05-08; текущий срез: 2026-08-07», режим «Автообновление»; +– накопительная динамика регистраций по регионам — график/список прироста от точки 0, стартовая точка (например, 11.06.2026); +– топ включившихся регионов — «Кто сильнее всего включился в проекты» (Москва +224, Башкортостан +217, Санкт-Петербург +159, Донецкая Народная Республика +136, Татарстан +132 и др.); +– красная зона проектов — регионы без накопительного прироста от точки 0; при отсутствии проблемных регионов — статус «все регионы дали прирост»; кнопка «Полный список»; +– советы от регионов — практики региональных лидеров; пустое состояние с подсказкой о кнопке «Дать совет для других лидеров» в боте. +4.2.5. Функция «Рейтинг регионов». +– список/таблица регионов с показателями (прирост, динамика, численность); +– сортировка, фильтры по округам, выделение «красной зоны». +4.2.5.1. Методика расчёта рейтинга (варианты). +Вариант 1 (рекомендуемый): рейтинг по накопительному приросту от «точки 0» (чем больше прирост, тем выше место). +Вариант 2: комплексный рейтинг по взвешенной формуле: прирост от точки 0 + численность + активность членов + выполнение задач. Состав весов утверждается заказчиком. +4.2.6. Функция «Карточка региона». +– основные данные региона (название, округ, статус); +– численность — ввод и обновление; +– ссылки на сообщества и чаты — добавление, редактирование, удаление; +– члены — добавление, список, статусы; +– резиденты (активные члены) — добавление, список; +– история изменений карточки. +4.2.6.1. Права редактирования карточки региона (варианты). +Вариант 1 (рекомендуемый): руководитель регионального отделения редактирует только карточку своего отделения; администратор — карточки всех отделений. +Вариант 2: все авторизованные пользователи могут редактировать карточки любых региональных отделений (открытая модель). +4.2.7. Функция «Члены Организации». +– добавление членов и резидентов (активных членов); +– просмотр списков, поиск; +– учёт численности (общая и по категориям). +4.2.8. Функция «Артефакты». +– загрузка файлов с привязкой к региону / цели / задаче; +– список, скачивание, удаление. +4.2.8.1. Модель хранения артефактов (варианты). +Вариант 1 (рекомендуемый): простая загрузка файлов (изображения, PDF, DOCX, XLSX, до 50 МБ на файл) с привязкой к объекту. +Вариант 2: медиатека с категориями, тегами, поиском, версионированием файлов и контролем прав на скачивание. +4.2.9. Функция «Задачи» (трекер). +– создание задачи: название, описание, срок, приоритет, ответственный; +– назначение исполнителя (член Организации / отделение / роль); +– статусы: новая → в работе → на проверке → выполнена; +– комментарии, прикрепление артефактов; +– список задач с фильтрами (мои, по региону, просроченные). +4.2.9.1. Доступ к задачам (варианты). +Вариант 1 (рекомендуемый): задачи доступны всем авторизованным членам Организации: каждый ведёт свои задачи; руководитель регионального отделения видит задачи своего отделения; администратор — все задачи. +Вариант 2: задачи доступны только руководителям региональных отделений и администраторам (члены Организации задачи не ведут). +4.2.10. Функция «База знаний». +– статьи, инструкции, материалы Организации; +– категории, поиск. +4.2.11. Функция «Календарь событий». +– события Организации (мероприятия, вебинары, дедлайны); +– отображение по месяцам; +– напоминания через бота. +4.2.12. Функция «Запросы». +– заявки членов Организации (на вступление, на доступ, на участие в мероприятиях, на поддержку); +– статусы обработки, ответы. +4.2.13. Функция «История платформы». +4.2.13.1. Содержание раздела (варианты). +Вариант 1 (рекомендуемый): публичная лента новостей и достижений платформы (хронология событий, доступна всем пользователям). +Вариант 2: внутренний журнал изменений Системы (аудит-лог), доступен только администраторам. +4.2.14. Функция «Ассистент "Зам"». +4.2.14.1. Модель ассистента (варианты). +Вариант 1 (рекомендуемый): AI-ассистент — программный агент на базе технологий искусственного интеллекта. Подключается к личному кабинету владельца; по командам владельца публикует информацию от его имени: заполняет карточку региона, загружает данные для рейтинга, выкладывает артефакты, создаёт задачи. Требования: +– ассистент действует в рамках прав владельца (не выше); +– все действия ассистента фиксируются в журнале и доступны владельцу; +– владелец может отключить ассистента или ограничить его действия (например, только публикация, без удаления); +– подключение — через настройки кабинета с подтверждением владельца. +Вариант 2: живой заместитель — отдельная роль «Заместитель» (человек). Владелец кабинета выдаёт заместителю права на публикацию информации от своего имени. Требования: +– назначение заместителя — владельцем кабинета или администратором; +– действия заместителя журналируются; +– владелец может отозвать права в любой момент. +4.3. Требования к видам обеспечения +4.3.1. Математическое обеспечение. +– алгоритм расчёта накопительного прироста от «точки 0»: прирост = значение текущего среза − значение точки 0; +– алгоритм определения динамики региона/округа (наличие положительного прироста за период); +– алгоритм расчёта вклада округа в общую цель (сумма приростов регионов округа); +– алгоритм определения «свежести» выгрузки (не старше 7 дней); +– (вариант) алгоритм комплексного рейтинга (п. 4.2.5.1, Вариант 2). +4.3.2. Информационное обеспечение. +– справочники: регионы (89), федеральные округа (8), роли пользователей, типы целей, типы рассылок, статусы задач, статусы запросов; +– данные целей: «точка 0» (дата и значение), текущий срез (дата и значение), история срезов; +– данные региональных отделений: карточка отделения, численность, члены, ссылки на сообщества и чаты; +– артефакты: файлы с метаданными (тип, размер, автор, дата, привязка); +– задачи: атрибуты и статусы; +– советы регионов: текст, автор, регион, цель, дата; +– журналы: действий пользователей, действий ассистента, рассылок. +4.3.3. Лингвистическое обеспечение. +– язык интерфейса — русский; +– единая терминология: «точка 0», «текущий срез», «прирост», «динамика», «красная зона», «вклад округа», «фокус целей»; +– тексты сообщений бота — в едином стиле, с персональными вставками (регион, ФИО, числа). +4.3.4. Программное обеспечение. +– серверная часть: API (REST), СУБД (реляционная), очередь сообщений для рассылок (при Варианте 2 п. 4.1.13.1); +– веб-клиент: адаптивная вёрстка (mobile-first), поддержка Chrome и Safari; +– бот: адаптеры Telegram Bot API и (вариант) MAX Bot API; +– (вариант) модуль AI-ассистента: интеграция с LLM-провайдером через API; +– состав конкретного ПО определяется на этапе технического проектирования. +4.3.5. Техническое обеспечение. +– серверное оборудование — в соответствии с выбранным вариантом масштаба (п. 4.1.13.1); +– требования к клиентским устройствам: смартфон с современным браузером, ПК — не ниже типовых офисных конфигураций; +– хостинг — на территории Российской Федерации. +4.3.6. Метрологическое обеспечение. +Система не выполняет измерительных функций; метрологическое обеспечение не требуется. +4.3.7. Организационное обеспечение. +– регламент выдачи одноразовых ссылок координаторами; +– регламент проведения рассылок; +– регламент загрузки и обновления выгрузок данных; +– должностные инструкции администратора и координатора. +4.3.8. Методическое обеспечение. +– методика работы руководителя регионального отделения с целями и рейтингами; +– методика формирования «Советов от регионов»; +– (вариант) методика работы с AI-ассистентом «Зам». +5. Состав и содержание работ по созданию системы +Таблица 4 — Состав и содержание работ по созданию системы +Этап (по ГОСТ 34.601-2020) +Содержание работ +Результат +1. Формирование требований +Обследование объекта автоматизации, анализ референсной платформы, утверждение ТЗ +Утверждённое ТЗ +2. Разработка концепции +Выбор варианта реализации (по пп. 4.1.13, 4.2), оценка стоимости +Концепция, план +3. Техническое задание +Настоящий документ +ТЗ +4. Эскизный проект +Архитектура, макеты экранов, прототип бота +Эскизный проект +5. Технический проект +Проектные решения по подсистемам, структура БД, API +Технический проект +6. Рабочая документация +Разработка ПО, вёрстка, настройка бота, документация +Рабочая документация, ПО +7. Ввод в действие +Подготовка данных, обучение, опытная эксплуатация, приёмка +Акт ввода в действие +8. Сопровождение +Исправление ошибок, развитие +Регламент сопровождения + +6. Порядок контроля и приемки системы +6.1. Виды испытаний: +– предварительные испытания — после завершения разработки, на тестовых данных; +– опытная эксплуатация — продолжительностью не менее 30 дней, на реальных данных (пилотные регионы); +– приёмочные испытания — после успешной опытной эксплуатации. +6.2. Приёмка осуществляется комиссией заказчика с участием разработчика. +6.3. Критерии приёмки: +– реализованы все функции, закреплённые в разделе 4 настоящего ТЗ (по выбранным вариантам); +– показатели назначения (п. 4.1.3) достигнуты; +– замечания опытной эксплуатации устранены; +– документация передана в соответствии с разделом 8. +6.4. Результаты испытаний оформляются актами по ГОСТ 34.603-2021. +7. Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие +– подготовка исходных данных: справочник регионов и округов, «точка 0» и стартовые срезы по целям, база членов Организации; +– регистрация бота в Telegram и (вариант) MAX, настройка домена (заполняется при утверждении ТЗ); +– назначение администраторов и координаторов; +– обучение персонала: администраторов, координаторов, руководителей региональных отделений (вебинары + инструкции); +– разработка регламентов (п. 4.3.7); +– план переноса данных из действующих учётных систем Организации (при наличии). +8. Требования к документированию +Состав документации: +– руководство пользователя (сайт); +– руководство пользователя (бот); +– руководство администратора; +– руководство координатора; +– регламент рассылок; +– регламент выгрузок данных; +– (вариант) руководство по работе с AI-ассистентом «Зам»; +– протоколы и акты испытаний. +Документация разрабатывается в соответствии с ГОСТ 19.201-78 и ГОСТ 34.201-2020. +9. Источники разработки +1. Описание заказчика (краткое описание платформы, назначение, сценарии использования). +2. Материалы обследования аналогичной действующей платформы (референс функциональности): скриншоты сайта `rmpred.ru` и бота `@pmpred_bot` (Приложение Б). +3. ГОСТ 34.601-2020 «Стадии создания автоматизированных систем». +4. ГОСТ 34.602-2020 «Техническое задание на создание автоматизированной системы». +5. ГОСТ 34.603-2021 «Виды испытаний автоматизированных систем». +6. ГОСТ 19.201-78 «Техническое задание. Требования к содержанию и оформлению». +7. ГОСТ 34.201-2020 «Виды, комплектность и обозначение документов при создании автоматизированных систем». +Приложение А. Описание бизнес-процессов (краткое) +А.1. Сценарий «Вход на сайт». +Пользователь открывает сайт → выбирает мессенджер (MAX/Telegram) → бот подтверждает вход по одноразовой ссылке → открывается личный кабинет. При повторном использовании ссылки — сообщение об ошибке и запрос новой ссылки у координатора. +А.2. Сценарий «Еженедельная рассылка». +Система формирует персональную сводку по каждому региону (прирост от точки 0, динамика округа, рекомендация) → отправляет через бота → кнопка «Открыть цели» ведёт на сайт. +А.3. Сценарий «Работа с целями». +Руководитель регионального отделения открывает раздел «Цели организации» → видит общую цель, вклад округов, топ регионов, красную зону, советы → при наличии динамики у отделения в боте появляется кнопка «Дать совет для других лидеров». +А.4. Сценарий «Ведение региона». +Руководитель отделения заполняет карточку регионального отделения (численность, ссылки на сообщества и чаты), добавляет членов, загружает артефакты, ведёт задачи. +А.5. Сценарий «Ассистент "Зам"» (по выбранному варианту п. 4.2.14). +Владелец подключает ассистента → ассистент публикует информацию от имени владельца → действия фиксируются в журнале. +Приложение Б. Состав экранов аналогичной действующей платформы (референс функциональности, по скриншотам) +Ниже приведён состав экранов аналогичной действующей платформы, использованной в качестве референса функциональности. Финальный состав экранов Системы уточняется на этапе эскизного проектирования. +Таблица Б.1 — Состав экранов референсной платформы +Экран +Содержимое +Вход +«Вход через рабочий бот», выбор MAX/Telegram, одноразовая ссылка, «Нет доступа? Начните регистрацию через бота» +Бот — приветствие +5 шагов: регистрация → заявка на интенсив → онлайн-обучение → Мурманск → защита проекта и грант +Бот — меню +Войти на сайт, Мои возможности, Регионы и пользователи, Цели сообщества, Регистрации МПР 2026, Помощь; команды /start /login /requests /regions /goals /mpr /help +Бот — рассылка +«Еженедельный фокус целей»: регион, прирост от 11.06.2026, динамика округа, «Что делать», кнопка «Открыть цели» +Бот — вход +«{ФИО}, вход выполнен!», «Сайт откроется автоматически», кнопка «Открыть сайт» +Сайт — меню +Главная, Цели сообщества, Календарь событий, Запросы, База знаний, Рейтинг регионов, История платформы, Выйти +Сайт — цели +Общая цель +1096, вклад округов +338, точка 0 / сейчас / цель, МПР 2026: прирост +2594, 89 регионов с динамикой +Сайт — динамика +Точка 0: 2026-05-08, срез: 2026-08-07, автообновление, накопительная динамика регистраций +Сайт — топ +Москва +224, Башкортостан +217, Санкт-Петербург +159, ДНР +136, Татарстан +132 +Сайт — красная зона +Регионы без прироста от точки 0, «все регионы дали прирост», полный список +Сайт — советы +«Советы от регионов», пустое состояние с подсказкой про кнопку в боте + +Приложение В. Сводная таблица вариантов решений +Таблица В.1 — Сводная таблица вариантов решений +№ +Вопрос +Вариант 1 (рекомендуемый) +Вариант 2 +1 +Ассистент «Зам» (п. 4.2.14) +AI-ассистент (программный агент) +Живой заместитель (роль-человек) +2 +Доступ к задачам (п. 4.2.9.1) +Все авторизованные члены +Только руководители отделений и администраторы +3 +Артефакты (п. 4.2.8.1) +Простая загрузка файлов +Медиатека с категориями и версиями +4 +Карточка региона (п. 4.2.6.1) +Только своё отделение (+админ — все) +Открытое редактирование +5 +Рассылки (п. 4.2.3.1) +Фиксированные шаблоны +Конструктор рассылок +6 +Рейтинг (п. 4.2.5.1) +По приросту от точки 0 +Комплексный (взвешенная формула) +7 +История платформы (п. 4.2.13.1) +Публичная лента новостей +Внутренний аудит-лог +8 +Мессенджеры (п. 4.1.13.2) +Telegram + MAX сразу +Сначала Telegram, MAX — этап 2 +9 +Масштаб (п. 4.1.13.1) +До 10 тыс. пользователей +До 100 тыс. пользователей +10 +Дизайн (п. 4.1.13.3) +По брендбуку «ОПОРА РОССИИ» +Новый дизайн-концепт с нуля + +Документ подготовлен как проект для согласования. Позиции, отмеченные как «Вариант 1 (рекомендуемый)», предлагаются к утверждению по умолчанию; заказчик вправе выбрать Вариант 2 по любому пункту. diff --git a/docs/ТЗ_ГОСТ_34.602-2020.docx b/docs/ТЗ_ГОСТ_34.602-2020.docx new file mode 100644 index 0000000000000000000000000000000000000000..af801c876a63ae72e08a40100b75fa5a16b5d59f GIT binary patch literal 51282 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