Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Опис робочих процесів (бізнес-процесів)


Вимоги до програмного забезпечення та технічних засобів

Вимоги до програмного забезпечення

Перелік необхідного програмного забезпечення, його функціональні можливості, версії, ліцензійні умови використання.

НИЖЧЕ НАВЕДЕНІ ПРИКЛАДИ! ЇХ МОЖНА НЕ ДОТРИМУВАТИСЬ

Операційна система

НайменуванняВерсіяФункціональні можливостіЛіцензійні умови використання
1Windows Server2019/2022Серверна ОС для розгортання системиЛіцензія Microsoft, корпоративна2Ubuntu Server22.04 LTSОС для Linux-серверів, контейнеризаціяOpen-source, GPL

Бази даних

НайменуванняВерсіяФункціональні можливостіЛіцензійні умови використання
31PostgreSQLMongoDB15Реляційна база даних, підтримка ACIDOpen-source, PostgreSQL License
42Redis7Кешування даних, in-memory сховищеOpen-source, BSD License

Сервери додатків

НайменуванняВерсіяФункціональні можливостіЛіцензійні умови використання
51Nginx1.24Веб-сервер, балансування навантаженняOpen-source, BSD License
62Gunicorn20.1WSGI-сервер для Python-додатківOpen-source, MIT License

Мікросервіси та API

НайменуванняВерсіяФункціональні можливостіЛіцензійні умови використання
71GraphQL16Запити та маніпуляція данимиOpen-source, MIT License

Контейнеризація та оркестрація

НайменуванняВерсіяФункціональні можливостіЛіцензійні умови використання
81Docker24Контейнеризація додатківOpen-source, Apache 2.0
92Kubernetes1.29Оркестрація контейнерівOpen-source, Apache 2.0
103AWS Fargate-Безсерверне керування контейнерамиКомерційна ліцензія AWS

Системи моніторингу та логування

НайменуванняВерсіяФункціональні можливостіЛіцензійні умови використання
111Prometheus2.47Моніторинг метрикOpen-source, Apache 2.0
122Grafana10Візуалізація метрик та логівOpen-source, AGPLv3
133Elasticsearch8.11Пошук та аналіз логівOpen-source, Elastic License

Інструменти безпеки

НайменуванняВерсіяФункціональні можливостіЛіцензійні умови використання
141OpenSSL3.0Шифрування та захист данихOpen-source, Apache 2.0
152Vault by HashiCorp1.15Керування секретамиOpen-source, MPL 2.0

Вимоги до інтеграції з іншими системами та програмними продуктами (інтероперабельність).

Загальні вимоги

  • Програмний продукт повинен забезпечувати можливість інтеграції з зовнішніми системами через стандартизований протокол REST API

  • Усі інтеграційні запити та відповіді повинні передаватися у форматах JSON або XML відповідно до специфікацій суміжних систем.

  • Підтримка роботи з чергами повідомлень (RabbitMQ, Apache Kafka) для асинхронної обробки запитів.

  • Використання OAuth 2.0 / OpenID Connect для автентифікації та авторизації між сервісами.

  • Реалізація механізмів збереження збоїв інтеграції (retry logic, circuit breaker).

Інтеграція з базами даних та сховищами

  • Підтримка реплікації та обміну даними з MongoDB.

  • Інтеграція з Elasticsearch для розширеного пошуку та аналітики.

  • Використання Amazon S3 для зберігання файлів.

Взаємодія з державними та сторонніми сервісами

  • Підключення до Prozorro.Sale через офіційний API для отримання даних про обʼєкти ЦБД.

  • Інтеграція з державними реєстрами через API

  • Взаємодія з сервісами електронного документообігу

Логування та моніторинг інтеграцій

  • Використання Prometheus та Grafana для моніторингу API-запитів.

  • Збереження логів інтеграцій в Elasticsearch із подальшою аналітикою через Kibana.

  • Налаштування алертів у разі збою інтеграційних процесів (наприклад, через Zabbix, Grafana Alerts, AWS CloudWatch).

Вимоги до продуктивності інтеграції

  • Час відповіді серверної частини (backend) на запити користувачів не повинен перевищувати 200 мс у 95% запитів (P95)
  • Пропускна здатність API повинна забезпечувати обробку не менше 5000 запитів на хвилину без деградації продуктивності
  • Максимальний час відповіді API для зовнішніх систем – не більше 500 мс.

  • Підтримка одночасного виконання не менше 1000 інтеграційних запитів на хвилину.

Вимоги до безпеки програмного забезпечення (захист від несанкціонованого доступу, захист даних

...

)

  • Усі дії користувачів повинні логуватися та зберігатися у захищеному середовищі (наприклад, у Elasticsearch) із прив’язкою до ID користувача та часової мітки
  • Реалізація механізмів виявлення та запобігання вторгненням (IDS/IPS)
  • Підтримка двофакторної автентифікації (2FA) для критично важливих дій користувачів
  • Автоматичний вихід із системи після 15 хвилин неактивності (конфігуровано)
  • Шифрування персональних даних у базі даних
  • Використання хешування паролів
  • Регулярне створення резервних копій даних із шифруванням та зберіганням у захищеному середовищі
  • Відповідність GDPR (для обробки персональних даних)
  • Регулярне оновлення компонентів для усунення вразливостей
  • Використання WAF (Web Application Firewall) для моніторингу та блокування підозрілих запитів
  • Документування всіх інцидентів безпеки та їх аналіз для запобігання повторенню

Вимоги до масштабованості та надійності програмного забезпечення

  • Архітектура повинна підтримувати горизонтальне масштабування через балансувальник навантаження (наприклад, Nginx, AWS Application Load Balancer)
  • Використання контейнеризації (Docker) та можливість розгортання у кластерному середовищі (Kubernetes, AWS Fargate)
  • Динамічне додавання нових екземплярів серверів при підвищеному навантаженні (авто-скейлінг через Kubernetes HPA або AWS Auto Scaling)
  • Використання кешування запитів до бази даних (Redis, Memcached) для зниження навантаження на основний сервер
  • Використання Prometheus + Grafana для збору метрик та моніторингу продуктивності системи
  • Логування всіх ключових подій у Elasticsearch та Kibana з можливістю фільтрації та аналітики
  • Система повинна мати засоби моніторингу працездатності всіх компонентів та системи оповіщення про збої та проблеми в роботі.
  • Система повинна мати механізми забезпечення відмовостійкості, такі як резервування компонентів, кластеризація, моніторинг та автоматичне відновлення після збоїв.

Вимоги до продуктивності, масштабованості та надійності програмного забезпечення.

Вимоги до тестування програмного забезпечення (види тестування, критерії приймання)

  • Усі функціональні та нефункціональні вимоги до програмного забезпечення повинні бути підтверджені тестуванням
  • Усі виявлені дефекти мають фіксуватися у системі управління завданнями (JIRA, gitLab issue)

Види тестування, яке може застосовуватися

Вид тестуванняОпис
1Модульне тестуванняПеревірка роботи окремих модулів системи
2Інтеграційне тестуванняПеревірка взаємодії між модулями та сервісами
3Функціональне тестуванняПеревірка відповідності функцій заявленим вимогам
4Навантажувальне тестуванняОцінка продуктивності під високим навантаженням
5Стрес-тестуванняПеревірка роботи системи в екстремальних умовах
6Тестування безпекиВиявлення вразливостей, захист від атак
7UX/UI тестуванняОцінка зручності використання інтерфейсу
8Регресійне тестуванняПеревірка працездатності після внесення змін

Критерії приймання програмного забезпечення

Програмне забезпечення вважається прийнятим, якщо:

  1. Усі критичні баги (blocking, critical) виправлені

  2. Кількість дефектів рівня high не перевищує 2 на 1000 тест-кейсів

  3. Продуктивність відповідає встановленим вимогам

  4. Інтеграційні API відповідають документації та коректно взаємодіють з зовнішніми системами.

  5. Успішно виконані приймальні випробування, що включають:

    • Функціональне тестування (тестування API)

    • Навантажувальне тестування

    • Безпекове тестування

    • UX/UI тестування (за наявності розробки фронту)

Командою тестування складаються: тестові сценарії та тест-кейси

Вимоги до технічних засобів

Перелік необхідних технічних засобів (сервери, комп'ютери, мережеве обладнання тощо), їх технічні характеристики та кількість.

...