171 lines
16 KiB
Markdown
171 lines
16 KiB
Markdown
# Запити зацікавлених осіб
|
||
|
||
## Вступ
|
||
|
||
У даному розділі розкриваються ключові терміни та процеси, пов'язані з розробкою високоякісного програмного забезпечення. Ці матеріали надаються для зацікавлених користувачів, які прагнуть отримати глибше розуміння суті проекту та його основних завдань. Представлені такі категорії:
|
||
|
||
- [Короткий зміст](#короткии-зміст)
|
||
- [Характеристика ділових процесів](#характеристика-ділових-процесів)
|
||
- [Короткий огляд продукту](#короткии-огляд-продукту)
|
||
- [Функціональність](#функціональність)
|
||
- [Практичність](#практичність)
|
||
- [Надійність](#надіиність)
|
||
- [Продуктивність](#продуктивність)
|
||
- [Експлуатаційна придатність](#експлуатаціина-придатність)
|
||
|
||
### Мета
|
||
|
||
Метою є формування стратегії подальшого розвитку проекту на основі аналізу запитів цільової аудиторії, функціональних потреб та досягнення оптимальної продуктивності для створення якісного програмного забезпечення.
|
||
|
||
### Контекст
|
||
|
||
Даний документ містить теоретичні відомості, визначення та загальний огляд функціональності, які допоможуть розробникам розуміти напрямок роботи над програмним продуктом, а клієнтам - зрозуміти очікування від нього.
|
||
|
||
|
||
### Основні визначення та скорочення
|
||
|
||
[Зацікавлені сторони(особи)](https://uk.wikipedia.org/wiki/Зацікавлені_сторони) - фізичні та юридичні особи, які мають легітимний інтерес у діяльності організації, тобто певною мірою залежать від неї або можуть впливати на її діяльність.
|
||
|
||
[FURPS](https://en.wikipedia.org/wiki/FURPS) - абревіатура, що репрезентує модель класифікації якостей програмного забезпечення (функціональні і нефункціональні вимоги):
|
||
- *Functionality* (Функціональність) - можливості (розмір та загальний набір функцій), повторне використання (сумісність, інтероперабельність, портативність), безпека (безпека та можливість експлуатації);
|
||
- *Usability* (Використовуваність) (UX) - людський фактор, естетика, узгодженість, документація, швидкість реагування;
|
||
- *Reliability* (Надійність) - доступність (частота відмов (надійність/довговічність/стійкість), ступінь і тривалість відмов (відновлюваність/живучість)), передбачуваність (стабільність), точність (частота/серйозність помилок);
|
||
- *Perfomance* (Продуктивність) - швидкість, ефективність, споживання ресурсів (живлення, оперативна пам'ять, кеш і т.д.), пропускна здатність, ємність, масштабованість;
|
||
- *Supportability* (Підтримка) (ремонтопридатність, підтримуваність, стійкість, швидкість відновлення) - тестуємість, гнучкість (модифікованість, конфігурованість, адаптованість, розширюваність, модульність), встановлюваність, локалізованість.
|
||
|
||
[API](https://uk.wikipedia.org/wiki/Прикладний_програмний_інтерфейс) (з англ. application programming interface “прикладни́й програ́мний інтерфе́йс”) - підхід до архітектури мережевих протоколів, які надають доступ до інформаційних ресурсів.
|
||
|
||
[REST](https://uk.wikipedia.org/wiki/REST) (з англ. Representational State Transfer, «передача репрезентативного стану») — підхід до архітектури мережевих протоколів, які надають доступ до інформаційних ресурсів.
|
||
|
||
[MVC](https://en.wikipedia.org/wiki/Model–view–controller#Components) (з англ. Model-view-controller) - це патерн проектування програмного забезпечення, який зазвичай використовується для розробки користувацьких інтерфейсів, що розділяє відповідну програмну логіку на три взаємопов'язані елементи. Це робиться для того, щоб відокремити внутрішнє представлення інформації від способів її представлення користувачеві та отримання від нього.
|
||
|
||
[SOLID](https://en.wikipedia.org/wiki/SOLID) - це мнемонічна абревіатура для п'яти принципів проектування, призначених для того, щоб зробити об'єктно-орієнтовані проекти більш зрозумілими, гнучкими та зручними в обслуговуванні.
|
||
- *Принцип єдиної відповідальності*: "Ніколи не повинно бути більше однієї причини для зміни класу”. Іншими словами, кожен клас повинен мати лише одну відповідальність.
|
||
- *Принцип відкритості-закритості*: "Сутності програмного забезпечення ... повинні бути відкритими для розширення, але закритими для модифікації.
|
||
- *Принцип заміщення Ліскова*: "Функції, які використовують вказівники або посилання на базові класи, повинні мати можливість використовувати об'єкти похідних класів, не знаючи про це.
|
||
- *Принцип розділення інтерфейсів*: "Клієнти не повинні бути змушені залежати від інтерфейсів, якими вони не користуються".
|
||
- *Принцип інверсії залежності*: "Покладайтеся на абстракції, а не на конкретику".
|
||
|
||
[DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself)(з англ. don’t repeat yourself - “не повторюйся”) - це принцип розробки програмного забезпечення, спрямований на зменшення повторення інформації, яка може змінитися, заміну її абстракціями, які менш схильні до змін, або використання нормалізації даних, яка дозволяє уникнути надмірності в першу чергу.
|
||
|
||
[ORM](https://uk.wikipedia.org/wiki/Об%27єктно-реляційне_відображення) - (англ. Object-relational mapping, Об'єктно-реляційна проекція) — технологія програмування, яка зв'язує бази даних з концепціями об'єктно-орієнтованих мов програмування, створюючи «віртуальну об'єктну базу даних».
|
||
|
||
|
||
### Посилання
|
||
|
||
1. [https://uk.wikipedia.org/wiki/Зацікавлені_сторони](https://uk.wikipedia.org/wiki/Зацікавлені_сторони)
|
||
2. [https://en.wikipedia.org/wiki/FURPS](https://en.wikipedia.org/wiki/FURPS)
|
||
3. [https://uk.wikipedia.org/wiki/Прикладний_програмний_інтерфейс](https://uk.wikipedia.org/wiki/Прикладний_програмний_інтерфейс)
|
||
4. [https://uk.wikipedia.org/wiki/REST](https://uk.wikipedia.org/wiki/REST)
|
||
5. [https://en.wikipedia.org/wiki/Model–view–controller#Components](https://en.wikipedia.org/wiki/Model–view–controller#Components)
|
||
6. [https://en.wikipedia.org/wiki/SOLID](https://en.wikipedia.org/wiki/SOLID)
|
||
7. [https://en.wikipedia.org/wiki/Don%27t_repeat_yourself](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself)
|
||
8. [https://uk.wikipedia.org/wiki/Об%27єктно-реляційне_відображення](https://uk.wikipedia.org/wiki/Об%27єктно-реляційне_відображення)
|
||
|
||
|
||
## Короткий зміст
|
||
|
||
*[Розділ містить опис того, про що йдеться в еій частині цього документу, що залишилася.
|
||
Також тут описана структура документу.]*
|
||
|
||
## Характеристика ділових процесів
|
||
|
||
*[В цьому розділі визначаються зовнішні фактори, що впливають на бізнес (бізнес-актори),
|
||
та внутрішні фактори (робітники), дається загальна характеристика діяльності бізнес-акторів
|
||
та робітників, яка здійснюється за допомогою бізнесу.*
|
||
|
||
*Дається опис бізнес-сценаріїв взаємодії бізнес-акторів, робітників і, можливо, інформаційної системи за допомогою наступної
|
||
специфікації:*
|
||
|
||
|
||
***ID:***
|
||
|
||
***НАЗВА:***
|
||
|
||
***УЧАСНИКИ:***
|
||
|
||
***ПЕРЕДУМОВИ:***
|
||
|
||
***РЕЗУЛЬТАТ:***
|
||
|
||
***ВИКЛЮЧНІ СИТУАЦІЇ:***
|
||
|
||
***ОСНОВНИЙ СЦЕНАРІЙ:***
|
||
|
||
*Кількість сценаріїв визначається у відповідності до специфіки завдання та необхідного
|
||
рівня деталізації (зазвичай, 5-6 сценаріїв).*
|
||
|
||
## Короткий огляд продукту
|
||
|
||
*[Визначається границя системи та категорії її користувачів. Дається загальна характеристика категорій користувачів
|
||
системи]*
|
||
|
||
*[Нижче йде опис FURPS:]*
|
||
|
||
|
||
## Функціональність
|
||
|
||
Наша система спрямована, в першу чергу, на взаємодію з користувачами.
|
||
|
||
***Користувач** - це особа, що взаємодіє із системою.*
|
||
|
||
Cистема розділяє користувачів на дві категорії:
|
||
- гість
|
||
- авторизований користувач
|
||
|
||
***Гість** - це користувач, що не пройшов ідентифікацію в системі. Такого користувача не можна зіставити з жодним обліковим записом.*
|
||
|
||
Гість може:
|
||
- створити обліковий запис
|
||
- пройти ідентифікацію в системі
|
||
- пройти анонімне опитування
|
||
|
||
***Зареєстрований користувач** - це користувач, котрий успішно пройшов ідентифікацію в системі. Такого користувача можна однозначно зіставити з обліковим записом, що наявний у системі.*
|
||
|
||
Зареєстрований користувач може:
|
||
- редагувати властивості свого облікового запису
|
||
- видалити свій обліковий запис
|
||
- скинути дані про ідентицікацію в системі
|
||
- створити опитування
|
||
- відредагувати своє опитування
|
||
- видалити своє опитування
|
||
- призупинити своє опитування
|
||
- продовжити своє опитування
|
||
- переглянути властивості свого опитування
|
||
- переглянути результати свого опитування
|
||
- пройти анонімне опитування
|
||
- пройти поіменне опитування
|
||
|
||
*[Респондент](https://slovnyk.ua/index.php?swrd=%D1%80%D0%B5%D1%81%D0%BF%D0%BE%D0%BD%D0%B4%D0%B5%D0%BD%D1%82) - той, хто відповідає на питання анкети; опитуваний.*
|
||
|
||
***Опитування** - це перелік запитань, кожне з яких передбачає обов'язкову або необов'язкову відповідь. Кожна відповідь має визначений тип.*
|
||
|
||
***Анонімне опитування** - це опитування, відповідь на яке може не містити інформації про обліковий запис респондента (*респондент все одно може вирішити надати таку інформацію).*
|
||
|
||
***Поіменне опитування** - це опитування, відповідь на яке обов'язково містить дані про обліковий запис респондента.*
|
||
|
||
## Практичність
|
||
|
||
- Наявність зручного інструменту для побудови опитувань
|
||
- Можливість легко замінити брендинг та кольорову палітру
|
||
- Перегляд аналітики в реальному часі
|
||
- Формування статистики відповідей у зручному інтерфейсі
|
||
- Можливість експорту результатів опитування через API
|
||
- Підтримка програмування реакцій на події (hooks)
|
||
|
||
## Надійність
|
||
|
||
- Шифрування з'єднань (TLS)
|
||
- Автоматичне резервне копіювання
|
||
- Автоматичне відновлення з резервних копій
|
||
|
||
## Продуктивність
|
||
|
||
- Низьке використання мережі базовим протоколом
|
||
- Незалежність від сторонніх веб-хостингів
|
||
|
||
## Експлуатаційна придатність
|
||
|
||
- Наявність докладної документації для користувачів, адміністраторів та розробників
|
||
- Доступність онлайн-підтримки
|