Compare commits

...

14 Commits

Author SHA1 Message Date
ІО-23 Шмуляр Олег b253eb8f0f utils/table-generator: додав автоматичну генерацію суцільного файлу з таблицями 2024-04-21 16:01:34 +03:00
ІО-23 Шмуляр Олег 1c31f64954 Merge pull request 'лаб2: заповнив незроблені частини' (#30) from shmuliar-short-desc into master
Reviewed-on: #30
Reviewed-by: IO-23 Andrii Bodnar <bodnarandrew123@gmail.com>
2024-04-21 15:24:54 +03:00
ІО-23 Шмуляр Олег e9ea10d36e Оновлення гілки 2024-04-21 15:24:21 +03:00
ІО-23 Шмуляр Олег fbbaeb9c3f Merge pull request 'лаб2: додав решту характеристик FURPS' (#29) from shmuliar into master
Reviewed-on: #29
Reviewed-by: IO-23 Andrii Bodnar <bodnarandrew123@gmail.com>
2024-04-21 15:22:54 +03:00
ІО-23 Шмуляр Олег a912a73926 лаб2: додав короткий опис продукту та логотип 2024-04-20 12:51:59 +03:00
ІО-23 Шмуляр Олег 5aaf3ce928 Оновлення гілки 2024-04-20 11:42:56 +03:00
ІО-23 Шмуляр Олег c00659062c Merge pull request 'Лаб №2: вступ' (#28) from bodnar into master
Reviewed-on: #28
Reviewed-by: hasslesstech <user1@109.86.70.81>
2024-04-20 11:41:49 +03:00
IO-23 Andrii Bodnar f5abbf5274 оновлення гілки 2024-04-20 11:38:01 +03:00
ІО-23 Шмуляр Олег 1600aa6653 лаб2: додав решту характеристик FURPS 2024-04-20 11:27:28 +03:00
IO-23 Andrii Bodnar ef0ebef4c3 Лаб №2: вступ 2024-04-14 19:07:41 +03:00
ІО-23 Шмуляр Олег c3bbc47f6b Merge pull request 'Лаб №2: додав опис системи за критерієм функціональності' (#25) from shmuliar into master
Reviewed-on: #25
Reviewed-by: IO-23 Andrii Bodnar <bodnarandrew123@gmail.com>
2024-04-14 18:51:58 +03:00
ІО-23 Шмуляр Олег 86f27e99fd Оновив гілку для злиття 2024-04-14 18:48:08 +03:00
ІО-23 Шмуляр Олег 0f68887e2f Merge pull request 'Лаб2: додав use-case-файли' (#26) from shmuliar-use-case into master
Reviewed-on: #26
Reviewed-by: IO-23 Andrii Bodnar <bodnarandrew123@gmail.com>
2024-04-14 18:46:07 +03:00
ІО-23 Шмуляр Олег efe128fd59 лаб №2: додав опис системи за критерієм функціональності 2024-03-24 18:37:14 +02:00
2 changed files with 110 additions and 19 deletions

View File

@ -2,33 +2,67 @@
## Вступ
*[Вступ повинен містити короткий огляд всього документу.]*
У даному розділі розкриваються ключові терміни та процеси, пов'язані з розробкою високоякісного програмного забезпечення. Ці матеріали надаються для зацікавлених користувачів, які прагнуть отримати глибше розуміння суті проекту та його основних завдань. Представлені такі категорії:
### Мета
*[Визначення мети цієї сукупності вимог. Зазвичай такою метою є створення та впровадження
інформаційної системи відповідного призначення.]*
Метою є формування стратегії подальшого розвитку проекту на основі аналізу запитів цільової аудиторії, функціональних потреб та досягнення оптимальної продуктивності для створення якісного програмного забезпечення.
### Контекст
*[Короткий опис того, з якими проектами пов'язаний цей документ, на що він впливає.]*
Даний документ містить теоретичні відомості, визначення та загальний огляд функціональності, які допоможуть розробникам розуміти напрямок роботи над програмним продуктом, а клієнтам - зрозуміти очікування від нього.
### Основні визначення та скорочення
*[Розділ містить визначення всіх термінів та скорочень, необхідних для правильного
тлумачення вимог. Можна зробити посилання на документ, в якому поданий аналіз предметної області.]*
[Зацікавлені сторони(особи)](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/Modelviewcontroller#Components) (з англ. Model-view-controller) - це патерн проектування програмного забезпечення, який зазвичай використовується для розробки користувацьких інтерфейсів, що розділяє відповідну програмну логіку на три взаємопов'язані елементи. Це робиться для того, щоб відокремити внутрішнє представлення інформації від способів її представлення користувачеві та отримання від нього.
[SOLID](https://en.wikipedia.org/wiki/SOLID) - це мнемонічна абревіатура для п'яти принципів проектування, призначених для того, щоб зробити об'єктно-орієнтовані проекти більш зрозумілими, гнучкими та зручними в обслуговуванні.
- *Принцип єдиної відповідальності*: "Ніколи не повинно бути більше однієї причини для зміни класу”. Іншими словами, кожен клас повинен мати лише одну відповідальність.
- *Принцип відкритості-закритості*: "Сутності програмного забезпечення ... повинні бути відкритими для розширення, але закритими для модифікації.
- *Принцип заміщення Ліскова*: "Функції, які використовують вказівники або посилання на базові класи, повинні мати можливість використовувати об'єкти похідних класів, не знаючи про це.
- *Принцип розділення інтерфейсів*: "Клієнти не повинні бути змушені залежати від інтерфейсів, якими вони не користуються".
- *Принцип інверсії залежності*: "Покладайтеся на абстракції, а не на конкретику".
[DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself)(з англ. dont 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/Modelviewcontroller#Components](https://en.wikipedia.org/wiki/Modelviewcontroller#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єктно-реляційнеідображення)
## Короткий зміст
*[Розділ містить опис того, про що йдеться в еій частині цього документу, що залишилася.
Також тут описана структура документу.]*
- [Характеристика ділових процесів](#характеристика-ділових-процесів)
- [Короткий огляд продукту](#короткии-огляд-продукту)
- [Функціональність](#функціональність)
- [Практичність](#практичність)
- [Надійність](#надіиність)
- [Продуктивність](#продуктивність)
- [Експлуатаційна придатність](#експлуатаціина-придатність)
## Характеристика ділових процесів
@ -59,28 +93,76 @@
## Короткий огляд продукту
*[Визначається границя системи та категорії її користувачів. Дається загальна характеристика категорій користувачів
системи]*
*[Нижче йде опис FURPS:]*
<center>
<img width=60% src="http://139.162.162.130:16660/img/logo2-web.svg">
</center>
Xpertise - це система для проведення будь-яких опитувань.
Вона дозволяє користувачам створювати опитування, збирати відповіді на них та переглядати докладну й узагальнену статистику.
У користувачів є можливість створювати не лише анонімні, але й поіменні опитування, тому платформа також задовольнить потреби в проведенні голосувань для прийняття спільних рішень у командах.
## Функціональність
*[Functionality (функциональні вимоги)]*
Наша система спрямована, в першу чергу, на взаємодію з користувачами.
***Користувач** - це особа, що взаємодіє із системою.*
стема розділяє користувачів на дві категорії:
- гість
- авторизований користувач
***Гість** - це користувач, що не пройшов ідентифікацію в системі. Такого користувача не можна зіставити з жодним обліковим записом.*
Гість може:
- створити обліковий запис
- пройти ідентифікацію в системі
- пройти анонімне опитування
***Зареєстрований користувач** - це користувач, котрий успішно пройшов ідентифікацію в системі. Такого користувача можна однозначно зіставити з обліковим записом, що наявний у системі.*
Зареєстрований користувач може:
- редагувати властивості свого облікового запису
- видалити свій обліковий запис
- скинути дані про ідентицікацію в системі
- створити опитування
- відредагувати своє опитування
- видалити своє опитування
- призупинити своє опитування
- продовжити своє опитування
- переглянути властивості свого опитування
- переглянути результати свого опитування
- пройти анонімне опитування
- пройти поіменне опитування
*[Респондент](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) - той, хто відповідає на питання анкети; опитуваний.*
***Опитування** - це перелік запитань, кожне з яких передбачає обов'язкову або необов'язкову відповідь. Кожна відповідь має визначений тип.*
***Анонімне опитування** - це опитування, відповідь на яке може не містити інформації про обліковий запис респондента (&#42;респондент все одно може вирішити надати таку інформацію).*
***Поіменне опитування** - це опитування, відповідь на яке обов'язково містить дані про обліковий запис респондента.*
## Практичність
*[Usability (вимоги до зручності роботи)]*
- Наявність зручного інструменту для побудови опитувань
- Можливість легко замінити брендинг та кольорову палітру
- Перегляд аналітики в реальному часі
- Формування статистики відповідей у зручному інтерфейсі
- Можливість експорту результатів опитування через API
- Підтримка програмування реакцій на події (hooks)
## Надійність
*[Reliability (вимоги до надійності)]*
- Шифрування з'єднань (TLS)
- Автоматичне резервне копіювання
- Автоматичне відновлення з резервних копій
## Продуктивність
*[Performance (вимоги до продуктивності)]*
- Низьке використання мережі базовим протоколом
- Незалежність від сторонніх веб-хостингів
## Експлуатаційна придатність
*[Supportability (вимоги до підтримки)]*
- Наявність докладної документації для користувачів, адміністраторів та розробників
- Доступність онлайн-підтримки

View File

@ -2,3 +2,12 @@
mkdir -p tables/
./convert.py use-cases/* -nv -d tables/
if [ -f tables.md ]; then
rm tables.md
fi
for i in tables/*; do
cat $i >> tables.md
echo "" >> tables.md
done