Table of Contents
Загальні вимоги до програмного продукту
Програмний продукт розробляється як система автоматизації електронних аукціонів, що:
Підтримує публікацію оголошення, реєстрацію учасників, подачу ставок, проведення торгів та визначення переможця.
Забезпечує інтеграцію ЦБД Prozorro.Sale із зовнішніми Майданчиками.
Використовує MongoDB у кластері AWS для зберігання даних.
Реалізує безпечний обмін даними та логування всіх подій у системі.
Працює на AWS з використанням S3 для зберігання файлів та Fargate для серверної логіки.
Функціональні та нефункціональні вимоги
Функціональні вимоги
Функціональні вимоги описані Опис Функціональних вимог присутній в ТЗ до конкретного продукту
Нефункціональні вимоги
Нефункціональні вимоги
Використання програмного забезпечення
Використання вільно розповсюджуваного програмного забезпечення.
Рівень відкритості програмного забезпечення
...
має бути сумісним з ліцензією Apache 2.0.
Незалежність рішення від пропрієтарних сервісів,
...
включаючи сервіси хостинг-провайдерів
...
.
Життєвий цикл технологій
Використовувані технології повинні мати невизначений або щонайменше річний залишковий життєвий цикл на момент прийняття рішення
...
.
Архітектурні вимоги
Використання контейнеризації (та оркестрації контейнерів)
...
для всіх оточень.
Виключення компонентів, чия втрата може спричинити значні втрати даних або функціональності.
Механізми синхронізації даних
...
та
...
паралельної обробки
...
повинні гарантувати відсутність конфліктів
...
.
Наявність механізмів повторних спроб
...
або використання проміжних черг між
...
компонентами
...
.
...
Орієнтація на асинхронну комунікацію між компонентами.
Можливість
...
"гарячого" додавання інстансів будь-яких
...
компонентів.
Тестування та продуктивність
Покриття коду юніт-тестами має
...
бути ≥85%
...
Покриття автоматизованими тестами має сукупно забезпечувати перевірку роботи всіх критичних бізнес-процесів
...
.
Автоматизоване тестування повинно перевіряти всі критичні бізнес-процеси.
Розробка універсального пакету автотестів для перевірки взаємодії клієнта (майданчика) з
...
Має бути виконано навантажувальне тестування, за результатами якого був би складений профайл конфігурації відповідно до очікуваної кількості одночасних та історичних артефактів в системі (кількість аукціонів, кількість учасників на аукціон, кількість процедур, кількість змін статусів, очікувані затримки під навантаженням, уповільнення відповідно до росту об’єму даних тощо)
Управління через конфігурацію (без потреби змінювати код та перевстановлювати сервіси) всіма змінними, що присутні в бізнес-логіці: набір періодів, тривалість періодів, набори даних процедури тощо
Зберігання усіх текстів, що відображаються в модулі аукціонів або на інших сторінках, у конфігураційних файлах
Можливість відновлення з бекапів бази в цілому, документів окремої процедури, окремих дій (репроцесинг черги/логів)
Наявність автоматизованої збірки контейнерів
Наявність автоматизованого деплойменту на різні оточення
...
API.
Проведення навантажувального тестування з профайлінгом конфігурації відповідно до очікуваного навантаження.
Гнучкість налаштувань
Управління змінними бізнес-логіки через конфігурацію без зміни коду.
Збереження текстів інтерфейсу в конфігураційних файлах.
Можливість відновлення даних з бекапів (ціла база, окрема процедура, окремі дії).
Автоматизація розгортання
Автоматизована збірка контейнерів.
Автоматизований деплоймент на різні оточення.
Управління доступом та безпека
Максимальне розділення доступу для окремих клієнтів (майданчиків).
...
Логування всіх дій адміністратора,
...
що впливають на бізнес-логіку.
Адміністратор не повинен мати доступу до ставок до початку аукціону.
...
Керування доступом майданчика через мережеві обмеження (білий список
...
IP) та
...
ключі доступу.
...
Швидке внесення змін
...
у доступи майданчиків.
Доступ до компонент, що не передбачають зовнішньої комунікації (тобто всіх, окрім публічних АРІ та АРІ для майданчиків) має бути заборонений на рівні мережі та доречним механізмом авторизації
Доступ безпосередньо до елементів інфраструктури має здійснюватись через єдиний шлюз
АРІ, відкриті узовні, мають надавати ті і тільки ті можливості, що прямо передбачені узгодженою документацією
Повсемісно має використовуватись безпечне (шифроване) з’єднання
Управління доступом до елементів ЕТС на основі рольової моделі
Логування всіх дій по зміні станів та проміжних станів даних по кожній процедурі
...
Заборона доступу до внутрішніх компонентів через мережеві обмеження та механізми авторизації.
Єдиний шлюз для доступу до інфраструктури.
API повинні надавати лише ті можливості, які передбачені документацією.
Використання лише безпечних (шифрованих) з’єднань.
Управління доступом на основі рольової моделі.
Логування
Логування всіх змін станів процедур.
Логування дій майданчиків (бізнес-дані, API виклики).
Логування дій користувачів модуля аукціону
...
, включаючи помилки фронтенду.
Можливість відстеження пов’язаних дій у межах однієї логічної транзакції (trackID).
Логування роботи оркестратора, контейнерів, ОС та інфраструктурних сервісів.
Автоматична ротація технічних логів.
Інтерфейс та UX
Коректне відображення у популярних браузерах
...
Можливість відслідкувати усі пов’язані дії для однієї логічної транзакції, що виконувались різними сервісами (trackID)
Технічний лог поведінки оркестратора, контейнерів, операційних систем, інфраструктурних сервісів тощо в об’ємі достатньому для продуктивного супроводження системи
Наявність автоматичної ротації технічних логів.
...
(Chrome, Firefox, Safari, Edge, IE)
...
.
Дизайн повинен бути адаптивним до різних екранів і пристроїв.
Повідомлення про помилки мають бути зрозумілими та містити рекомендації щодо їх усунення.
Вимоги до видів забезпечення
Вимоги до програмного забезпечення
- мати клієнт-серверну архітектуру, а саме обмін інформацією між сервером застосувань та клієнтською частиною системи та іншими зовнішніми системами повинен реалізовуватись із застосуванням технології веб-сервісів;
- пошук інформації повинен бути через розподілення по індексам, що знаходяться в іншій системі, що підтримує кирилецю (українську мову) та латиницю (англійську мову);
- фреймворк, який використовується для серверної частини порталу, повинен бути визначений розробниками як LTS (Long-term-support);
- серверне програмне забезпечення повинно працювати під управлінням операційних систем з відкритим вихідним кодом та безкоштовними ліцензіями, які визначені розробниками як LTS (Long-term-support);
- мати свій відкритий репозиторій з використанням контролю версій Git;
- база даних має включати модуль резервування та бекапування Системи з можливістю автоматичного запуску та перенесення даних на сервер резервних копій;
- обов'язкове використання Open Source технологій;
- мати відкриті джерела документації.
Вимоги до методичного забезпечення
У ході виконання робіт необхідно надати пропозиції щодо змін в нормативні акти (при необхідності), в нормативно-технічну документацію відповідно до прийнятих технічних та організаційних рішень.
Вимоги до захисту інформації
В інтерфейсах має бути використаний дизайн, що автоматично адаптується під розміри екрану та тип пристрою користувача
Усі помилки, що бачить користувач, мають відповідати фактичній ситуації, що виникла, і надавати користувачу інформацію щодо необхідних дій по уникненню помилки
...