15 Commits

Author SHA1 Message Date
hasslesstech e9ea10d36e Оновлення гілки 2024-04-21 15:24:21 +03:00
hasslesstech 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
hasslesstech a912a73926 лаб2: додав короткий опис продукту та логотип 2024-04-20 12:51:59 +03:00
hasslesstech 5aaf3ce928 Оновлення гілки 2024-04-20 11:42:56 +03:00
hasslesstech 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
Andrii f5abbf5274 оновлення гілки 2024-04-20 11:38:01 +03:00
hasslesstech 1600aa6653 лаб2: додав решту характеристик FURPS 2024-04-20 11:27:28 +03:00
hasslesstech 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
hasslesstech 86f27e99fd Оновив гілку для злиття 2024-04-14 18:48:08 +03:00
hasslesstech 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
hasslesstech 5da6368aae лаб2: додав папку готових таблиць use-case-ів до .gitignore 2024-04-04 16:15:19 +03:00
hasslesstech f2751a8604 лаб2: додав скрипти для зручнішої роботи з use-case-таблицями 2024-04-04 16:13:40 +03:00
hasslesstech a53cdb334d лаб2: додав 12 файлів use-case-ів 2024-04-04 16:12:45 +03:00
hasslesstech 05f9376a90 лаб2: додав підтримку аргументу --destination у програму для генерації таблиць та покращив її вивід 2024-04-04 16:11:33 +03:00
hasslesstech efe128fd59 лаб №2: додав опис системи за критерієм функціональності 2024-03-24 18:37:14 +02:00
17 changed files with 223 additions and 25 deletions
+3
View File
@@ -102,3 +102,6 @@ dist
# TernJS port file
.tern-port
# Generated tables for use-cases
utils/table-generator/tables/
+64 -20
View File
@@ -4,15 +4,6 @@
У даному розділі розкриваються ключові терміни та процеси, пов'язані з розробкою високоякісного програмного забезпечення. Ці матеріали надаються для зацікавлених користувачів, які прагнуть отримати глибше розуміння суті проекту та його основних завдань. Представлені такі категорії:
- [Короткий зміст](#короткии-зміст)
- [Характеристика ділових процесів](#характеристика-ділових-процесів)
- [Короткий огляд продукту](#короткии-огляд-продукту)
- [Функціональність](#функціональність)
- [Практичність](#практичність)
- [Надійність](#надіиність)
- [Продуктивність](#продуктивність)
- [Експлуатаційна придатність](#експлуатаціина-придатність)
### Мета
Метою є формування стратегії подальшого розвитку проекту на основі аналізу запитів цільової аудиторії, функціональних потреб та досягнення оптимальної продуктивності для створення якісного програмного забезпечення.
@@ -65,8 +56,13 @@
## Короткий зміст
*[Розділ містить опис того, про що йдеться в еій частині цього документу, що залишилася.
Також тут описана структура документу.]*
- [Характеристика ділових процесів](#характеристика-ділових-процесів)
- [Короткий огляд продукту](#короткии-огляд-продукту)
- [Функціональність](#функціональність)
- [Практичність](#практичність)
- [Надійність](#надіиність)
- [Продуктивність](#продуктивність)
- [Експлуатаційна придатність](#експлуатаціина-придатність)
## Характеристика ділових процесів
@@ -97,28 +93,76 @@
## Короткий огляд продукту
*[Визначається границя системи та категорії її користувачів. Дається загальна характеристика категорій користувачів
системи]*
*[Нижче йде опис FURPS:]*
<center>
<img width=60% src="http://139.162.162.130:16660/img/logo2-web.svg">
</center>
Xpertise - це система для проведення будь-яких опитувань.
Вона дозволяє користувачам створювати опитування, збирати відповіді на них та переглядати докладну й узагальнену статистику.
У користувачів є можливість створювати не лише анонімні, але й поіменні опитування, тому платформа також задовольнить потреби в проведенні голосувань для прийняття спільних рішень у командах.
## Функціональність
*[Functionality (функциональні вимоги)]*
Наша система спрямована, в першу чергу, на взаємодію з користувачами.
***Користувач** - це особа, що взаємодіє із системою.*
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) - той, хто відповідає на питання анкети; опитуваний.*
***Опитування** - це перелік запитань, кожне з яких передбачає обов'язкову або необов'язкову відповідь. Кожна відповідь має визначений тип.*
***Анонімне опитування** - це опитування, відповідь на яке може не містити інформації про обліковий запис респондента (&#42;респондент все одно може вирішити надати таку інформацію).*
***Поіменне опитування** - це опитування, відповідь на яке обов'язково містить дані про обліковий запис респондента.*
## Практичність
*[Usability (вимоги до зручності роботи)]*
- Наявність зручного інструменту для побудови опитувань
- Можливість легко замінити брендинг та кольорову палітру
- Перегляд аналітики в реальному часі
- Формування статистики відповідей у зручному інтерфейсі
- Можливість експорту результатів опитування через API
- Підтримка програмування реакцій на події (hooks)
## Надійність
*[Reliability (вимоги до надійності)]*
- Шифрування з'єднань (TLS)
- Автоматичне резервне копіювання
- Автоматичне відновлення з резервних копій
## Продуктивність
*[Performance (вимоги до продуктивності)]*
- Низьке використання мережі базовим протоколом
- Незалежність від сторонніх веб-хостингів
## Експлуатаційна придатність
*[Supportability (вимоги до підтримки)]*
- Наявність докладної документації для користувачів, адміністраторів та розробників
- Доступність онлайн-підтримки
+23 -5
View File
@@ -1,6 +1,7 @@
#!/bin/python3
import sys
import os
# magic values
NO = 0
@@ -26,7 +27,7 @@ def convert_usecase_v1(filename, data):
merged_lines = []
for i in split_raw_lines:
if i[0] == "":
if i[0].replace(" ", "") == "":
merged_lines[-1][1] += "<br>" + i[1]
else:
merged_lines.append(i)
@@ -68,9 +69,10 @@ if __name__=="__main__":
usecase_formatting = AUTO
verbose = AUTO
process_table_files = AUTO
file_output_path = None
# 1 pass (argument harvest)
for i in sys.argv[1:]:
for n, i in enumerate(sys.argv[1:]):
if i.startswith("-"):
# записувати таблицю в файл
if i in ["-f", "--file"]:
@@ -96,11 +98,17 @@ if __name__=="__main__":
elif i in ["-nv", "--no-verbose"]:
verbose = NO
# дозволити обробку файлів .table
elif i in ["-t", "--process-table"]:
process_table_files = YES
elif i in ["-nt", "--no-process-table"]:
process_table_files = NO
# задає папку, в яку необхідно зберігати конвертовані таблиці
elif i in ["-d", "--destination"]:
file_output_path = sys.argv[n+2]
sys.argv.remove(sys.argv[n+2])
# 2 pass (filename harvest)
for i in sys.argv[1:]:
if not i.startswith("-"):
@@ -133,12 +141,17 @@ if __name__=="__main__":
print(formatted_table_data)
if write_to_file > AUTO:
open(name + ".table", 'w', encoding = "utf-8").write(formatted_table_data+"\n")
if file_output_path:
open(os.path.join(file_output_path, os.path.basename(name)) \
+ ".table", 'w', encoding = "utf-8") \
.write(formatted_table_data+"\n")
else:
open(name + ".table", 'w', encoding = "utf-8").write(formatted_table_data+"\n")
exit(0)
for no, name in enumerate(files):
print(f"Converting {no+1}/{len(files)}")
print(f"Converting {no+1:02d}/{len(files)}: {name}")
data = open(name, encoding = "utf-8").read()
@@ -157,4 +170,9 @@ if __name__=="__main__":
print(formatted_table_data)
if write_to_file >= AUTO:
open(name + ".table", 'w', encoding = "utf-8").write(formatted_table_data+"\n")
if file_output_path:
open(os.path.join(file_output_path, os.path.basename(name)) \
+ ".table", 'w', encoding = "utf-8") \
.write(formatted_table_data+"\n")
else:
open(name + ".table", 'w', encoding = "utf-8").write(formatted_table_data+"\n")
+5
View File
@@ -0,0 +1,5 @@
#!/bin/sh
grep -E '\|\ [0-9]{3}\.[0-9]{3}' use-cases/*.uc \
| cut -d '|' -f 2 \
| sort | uniq -c
+4
View File
@@ -0,0 +1,4 @@
#!/bin/sh
mkdir -p tables/
./convert.py use-cases/* -nv -d tables/
@@ -0,0 +1,10 @@
Назва | Створити обліковий запис
Учасники | Користувач, система
Передумови | Відсутні
Результат | Обліковий запис користувача
Виключні ситуації | 001.001 Користувач ввів заборонені символи в поле псевдоніму
| 001.002 Ідентичний псевдонім вже існує
Основний сценарій | 1. Користувач вводить бажаний псевдонім у поле вводу псевдоніму
| 2. Користувач вводить пароль у поле вводу паролю
| 3. Користувач натискає на кнопку створення облікового запису
| 4. Система створює обліковий запис користувача (можливі 001.001, 001.002)
@@ -0,0 +1,9 @@
Назва | Видалити обліковий запис
Учасники | Користувач, система
Передумови | Користувач ідентифікований в системі
Результат | Відсутність облікового запису користувача
Виключні ситуації | 001.005 Користувач не ідентифікований
Основний сценарій | 1. Користувач натискає на кнопку видалення облікового запису
| 2. Система виводить кнопку-запит на підтвердження видалення облікового запису
| 3. Користувач натискає на кнопку підтвердження видалення облікового запису
| 4. Система видаляє обліковий запис (можлива 001.005)
@@ -0,0 +1,10 @@
Назва | Змінити властивості облікового запису
Учасники | Користувач, система
Передумови | Користувач ідентифікований в системі
Результат | Зміна властивостей облікового запису
Виключні ситуації | 001.005 Користувач не ідентифікований
Основний сценарій | 1. Користувач натискає на кнопку редагування облікового запису
| 2. Система виводить інтерфейс для редагування облікового запису (можлива 001.005)
| 3. Користувач вказує бажані зміни властивостей облікового запису
| 4. Користувач натискає на кнопку внесення змін до властивостей облікового запису
| 5. Система змінює властивості облікового запису
@@ -0,0 +1,12 @@
Назва | Створити опитування
Учасники | Користувач, система
Передумови | Користувач ідентифікований в системі
Результат | Створене опитування
Виключні ситуації | 001.005 Користувач не ідентифікований
| 001.007 Користувач ввів неприпустимі символи в назві опитування
Основний сценарій | 1. Користувач переходить на сторінку створення опитування (можлива 001.005)
| 2. Система виводить інтерфейс створення опитування
| 3. Користувач задає інформацію про запитання та тип опитування
| 4. Користувач натискає кнопку збереження опитування
| 5. Система створює опитування (можлива 001.007)
| 6. Система виводить посилання на проходження опитування
@@ -0,0 +1,11 @@
Назва | Видалити опитування
Учасники | Користувач, система
Передумови | Користувач ідентифікований в системі, користувач є власником опитування
Результат | Відсутність опитування
Виключні ситуації | 001.005 Користувач не ідентифікований
| 001.006 Запитане опитування не існує
| 001.008 Користувач не є власником опитування
Основний сценарій | 1. Користувач натискає на кнопку видалення опитування
| 2. Система виводить запит на підтвердження видалення опитування
| 3. Користувач натискає на кнопку підтвердження видалення опитування
| 4. Система видаляє опитування (можливі 001.005, 001.006, 001.008)
@@ -0,0 +1,9 @@
Назва | Переглянути відповіді на опитування
Учасники | Користувач, система
Передумови | Користувач ідентифікований в системі, користувач є власником опитування
Результат | Інформація про відповіді на опитування
Виключні ситуації | 001.005 Користувач не ідентифікований
| 001.006 Запитане опитування не існує
| 001.008 Користувач не є власником опитування
Основний сценарій | 1. Користувач натискає на кнопку перегляду відповідей на опитування
| 2. Система виводить інформацію про відповіді на опитування (можливі 001.005, 001.006, 001.008)
@@ -0,0 +1,12 @@
Назва | Пройти ідентифікацію в системі
Учасники | Користувач, система
Передумови | Користувач має обліковий запис
Результат | Користувач ідентифікований в системі
Виключні ситуації | 001.001 Користувач ввів заборонені символи в поле псевдоніму
| 001.003 Користувач ввів псевдонім, якого не існує в системі
| 001.004 Користувач ввів неправильний пароль до облікового запису
Основний сценарій | 1. Користувач вводить псевдонім у поле вводу псевдоніму
| 2. Користувач вводить пароль у поле вводу паролю
| 3. Користувач натискає кнопку ідентифікації
| 4. Система ідентифікує користувача (можливі 001.001, 001.003, 001.004)
@@ -0,0 +1,7 @@
Назва | Скинути дані про ідентифікацію в системі
Учасники | Користувач, система
Передумови | Користувач ідентифікований в системі
Результат | Користувач не ідентифікований в системі
Виключні ситуації | 001.005 Користувач не ідентифікований
Основний сценарій | 1. Користувач натискає на кнопку виходу з облікового запису
| 2. Система скидає інформацію про ідентифікацію користувача (можлива 001.005)
@@ -0,0 +1,12 @@
Назва | Редагувати опитування
Учасники | Користувач, система
Передумови | Користувач ідентифікований в системі, користувач є власником опитування
Результат | Змінене опитування
Виключні ситуації | 001.005 Користувач не ідентифікований
| 001.006 Запитане опитування не існує
| 001.008 Користувач не є власником опитування
Основний сценарій | 1. Користувач переходить на сторінку редагування опитування
| 2. Система виводить інтерфейс редагування опитування (можливі 001.005, 001.006, 001.008)
| 3. Користувач задає інформацію про зміни в опитуванні
| 4. Користувач натискає кнопку збереження змін в опитуванні
| 5. Система змінює опитування
@@ -0,0 +1,9 @@
Назва | Переглянути властивості опитування
Учасники | Користувач, система
Передумови | Користувач ідентифікований в системі, користувач є власником опитування
Результат | Інформація про властивості опитування
Виключні ситуації | 001.005 Користувач не ідентифікований
| 001.006 Запитане опитування не існує
| 001.008 Користувач не є власником опитування
Основний сценарій | 1. Користувач натискає на кнопку перегляду інформації про опитування
| 2. Система виводить інформацію про опитування (можливі 001.005, 001.006, 001.008)
@@ -0,0 +1,11 @@
Назва | Пройти анонімне опитування
Учасники | Користувач, система
Передумови | Відсутні
Результат | Запис відповідей на опитування
Виключні ситуації | 001.006 Запитане опитування не існує
Основний сценарій | 1. Користувач переходить на сторінку проходження опитування
| 2. Система виводить перелік запитань опитування (можлива 001.006)
| 3. Користувач вводить відповіді на запитання
| 4. Користувач натискає кнопку надсилання відповідей
| 5. Система записує відповіді на опитування (можлива 001.006)
| 6. Система виводить прощальне повідомлення
@@ -0,0 +1,12 @@
Назва | Пройти поіменне опитування
Учасники | Користувач, система
Передумови | Користувач ідентифікований в системі
Результат | Запис відповідей на опитування та відомості про користувача
Виключні ситуації | 001.005 Користувач не ідентифікований
| 001.006 Запитане опитування не існує
Основний сценарій | 1. Користувач переходить на сторінку проходження опитування
| 2. Система виводить перелік запитань опитування (можливі 001.005, 001.006)
| 3. Користувач вводить відповіді на запитання
| 4. Користувач натискає кнопку надсилання відповідей
| 5. Система записує відповіді на опитування та відомості про користувача (можлива 001.006)
| 6. Система виводить прощальне повідомлення