# Запити зацікавлених осіб
# Вступ
В цьому документі описано основну інформацію про наш проєкт: сценарій використання нашого продукту адміністратором та користувачем, опис продукту та вимоги до функціональності, практичності, надійності, продуктивності та експлуатаційної придатності.
# Мета
Метою цього документу є сформування вимог проєкту відповідно до яких можна буде розвивати нашу систему. Також для поглиблення розуміння самого проєкту та його функцій як у розробників, так і в користувачів проєкту.
# Контекст
В цьому документі описано вимоги для розробки нашого проєкту та функціонал системи, що розробляється.
# Основні визначення та скорочення
Зацікавлені особи[1] - фізичні та юридичні особи, які мають легітимний інтерес у діяльності організації, тобто певною мірою залежать від неї або можуть впливати на її діяльність
FURPS[2] - модель для класифікації якості програмного забезпечення. До неї входить: функціональність (Functionality), практичність(Usability), надійність(Reliability), продуктивність(Performance) та експлуаційну придатність(Supportability)
FAQ[2] - список поширених запитань та відповіді на них.
Інші визначення можна подивитись в "Аналіз предметної області" (opens new window)
# Посилання
Зацікавлені особи (opens new window)
# Короткий зміст
- Характеристика ділових процесів
- CreateAccount (Створити обліковий запис)
- UserAuthorization (Авторизувати користувача)
- SearchDataset (Знайти набір даних)
- VisualizationDataset (Візуалізувати набір даних таблицею, графіком)
- DownloadFile (Завантажити файл набору даних)
- DonateSystem (Пожертвувати кошти на покращення роботи застосунку)
- UploadDataset (Завантажити набір даних)
- RemoveDataset (Видалити набір даних)
- RemoveEditorPermission (Зняти права редактора з користувача)
- EditDataset (Редагувати набору даних)
- Короткий огляд продукту
- Функціональність
- Практичність
- Надійність
- Продуктивність
- Експлуатаційна придатність
# Характеристика ділових процесів
# Користувач:
| ID: | CreateAccount |
|---|---|
| НАЗВА: | Створити обліковий запис |
| УЧАСНИКИ: | Користувач, Система |
| ПЕРЕДУМОВИ: | Користувач не зареєстрований в системі |
| РЕЗУЛЬТАТ: | Новий обліковий запис |
| ВИКЛЮЧНІ СИТУАЦІЇ: | CreateAccount_EX_AccountExists Існує обліковий запис |
| CreateAccount_EX_EmptyInputFields Пусті поля вводу | |
| ОСНОВНИЙ СЦЕНАРІЙ: | 1. Користувач розпочинає взаємодію |
| 2. Користувач натискає на кнопку "Зареєструватися" | |
| 3. Користувач вводить реєстраційні дані | |
| 4. Користувач натискає на кнопку "Зареєструватися" (CreateAccount_EX_EmptyInputFields) | |
| 5. Система перевіряє наявність облікового запису (CreateAccount_EX_AccountExists) | |
| 6. Система створює новий обліковий запис | |
| 7. Користувач закінчує взаємодію |
| ID: | UserAuthorization |
|---|---|
| НАЗВА: | Авторизувати користувача |
| УЧАСНИКИ: | Користувач, Система |
| ПЕРЕДУМОВИ: | Користувач зареєстрований в системі |
| РЕЗУЛЬТАТ: | Вхід у систему |
| ВИКЛЮЧНІ СИТУАЦІЇ: | UserAuthorization_EX_IncorrectData Невірно введені дані |
| UserAuthorization_EX_NotRegistered Не зареєстрований | |
| UserAuthorization_EX_EmptyInputFields Пусті поля вводу | |
| ОСНОВНИЙ СЦЕНАРІЙ: | 1. Користувач розпочинає взаємодію |
| 2. Користувач натискає на кнопку "Увійти" | |
| 3. Користувач вводить дані для авторизації | |
| 4. Користувач натискає на кнопку "Увійти" (UserAuthorization_EX_EmptyInputFields) | |
| 5. Система перевіряє наявність облікового запису (UserAuthorization_EX_NotRegistered) | |
| 6. Система перевіряє дані для авторизації (UserAuthorization_EX_IncorrectData) | |
| 7. Система надає доступ користувачу до облікового запису | |
| 8. Користувач закінчує взаємодію |
| ID: | SearchDataset |
|---|---|
| НАЗВА: | Знайти набір даних |
| УЧАСНИКИ: | Користувач, Система |
| ПЕРЕДУМОВИ: | Користувач авторизований в системі |
| РЕЗУЛЬТАТ: | Шуканий набір даних |
| ВИКЛЮЧНІ СИТУАЦІЇ: | SearchDataset_EX_DatasetDoesntExist Шуканого набору даних не існує |
| ОСНОВНИЙ СЦЕНАРІЙ: | 1. Користувач розпочинає взаємодію |
| 2. Користувач вводить в пошукове поле запит | |
| 3. Користувач обирає потрібні фільтри | |
| 4. Користувач натискає на кнопку "Пошук" | |
| 5. Система відображає список шуканих даних (SearchDataset_EX_DatasetDoesntExist) | |
| 6. Користувач натискає на потрібний набір даних | |
| 7. Система відкриває шукані дані | |
| 8. Користувач закінчує взаємодію |
| ID: | VisualizationDataset |
|---|---|
| НАЗВА: | Візуалізувати набір даних таблицею, графіком |
| УЧАСНИКИ: | Користувач, Система |
| ПЕРЕДУМОВИ: | Користувач авторизований в системі, набір даних є в системі |
| РЕЗУЛЬТАТ: | Графік чи таблиця даних |
| ВИКЛЮЧНІ СИТУАЦІЇ: | VisualizationDataset_EX_VisualizationImpossible Візуалізація неможлива |
| ОСНОВНИЙ СЦЕНАРІЙ: | 1. Користувач розпочинає взаємодію |
| 2. Користувач натискає на кнопку "Візуалізація даних" | |
| 3. Система відображує список можливих форматів даних (таблиця, графік) | |
| 4. Користувач обирає потрібний формат | |
| 5. Система надає потрібний графік чи таблицю даних (VisualizationDataset_EX_VisualizationImpossible) | |
| 6. Користувач закінчує взаємодію |
| ID: | DownloadFile |
|---|---|
| НАЗВА: | Завантажити файл набору даних |
| УЧАСНИКИ: | Користувач, Система |
| ПЕРЕДУМОВИ: | Користувач авторизований в системі |
| РЕЗУЛЬТАТ: | Завантажений файл набору даних |
| ВИКЛЮЧНІ СИТУАЦІЇ: | DownloadFIle_EX_CancelSaveFile Користувач відмінив збереження файлу |
| DownloadFIle_EX_NotEnoughMemory Недостатньо вільної пам'яті | |
| ОСНОВНИЙ СЦЕНАРІЙ: | 1. Користувач розпочинає взаємодію |
| 2. Користувач натискає на кнопку "Зберегти файл" | |
| 3. Система запитує підтвердження на збереження файлу | |
| 4. Користувач підтверджує збереження (DownloadFIle_EX_CancelSaveFile) | |
| 5. Система завантажує файл (DownloadFIle_EX_NotEnoughMemory) | |
| 6. Користувач закінчує взаємодію |
| ID: | DonateSystem |
|---|---|
| НАЗВА: | Пожертвувати кошти на покращення роботи застосунку |
| УЧАСНИКИ: | Користувач, Система |
| ПЕРЕДУМОВИ: | - |
| РЕЗУЛЬТАТ: | Переведені кошти на рахунок розробників |
| ВИКЛЮЧНІ СИТУАЦІЇ: | DonateSystem_EX_DonateSystemError Помилка транзакції |
| ОСНОВНИЙ СЦЕНАРІЙ: | 1. Користувач розпочинає взаємодію |
| 2. Користувач натискає на кнопку "Donate system" | |
| 3. Система відкриває форму | |
| 4. Користувач заповнює інформаційні дані | |
| 5. Користувач натискає на кнопку "Donate" | |
| 6. Система переводить кошти на рахунок розробників (DonateSystem_EX_DonateSystemError) | |
| 7. Користувач закінчує взаємодію |
# Адміністратор:
| ID: | UploadDataset |
|---|---|
| НАЗВА: | Завантажити набір даних |
| УЧАСНИКИ: | Адміністратор, Система |
| ПЕРЕДУМОВИ: | Адміністратор авторизований у системі |
| РЕЗУЛЬТАТ: | Завантажений набір даних на сервер |
| ВИКЛЮЧНІ СИТУАЦІЇ: | UploadDataset_EX_DatasetExists Набір даних вже існує |
| UploadDataset_EX_DatasetCancelled Адміністратор скасував завантаження | |
| ОСНОВНИЙ СЦЕНАРІЙ: | 1. Адміністратор розпочинає взаємодію |
| 2. Адміністратор натискає на кнопку "Завантажити дані" | |
| 3. Адміністратор вибирає потрібні дані | |
| 4. Система запитує підтвердження на завантаження даних | |
| 5. Адміністратор підтверджує завантаження (UploadDataset_EX_DatasetCancelled) | |
| 6. Система створює набір даних (UploadDataset_EX_DatasetExists) | |
| 7. Адміністратор закінчує взаємодію |
| ID: | RemoveDataset |
|---|---|
| НАЗВА: | Видалити набір даних |
| УЧАСНИКИ: | Адміністратор, Система |
| ПЕРЕДУМОВИ: | Адміністратор авторизований у системі, набір даних існує |
| РЕЗУЛЬТАТ: | Видалений набір даних |
| ВИКЛЮЧНІ СИТУАЦІЇ: | RemoveDataset_EX_DatasetCancelled Адміністратор скасував видалення |
| ОСНОВНИЙ СЦЕНАРІЙ: | 1. Адміністратор розпочинає взаємодію |
| 2. Адміністратор виконує пошук набору даних | |
| 3. Система відображує список даних | |
| 4. Адміністратор вибирає потрібні дані | |
| 5. Адміністратор натискає на кнопку "Видалити дані" | |
| 6. Система запитує підтвердження на видалення даних | |
| 7. Адміністратор підтверджує видалення (RemoveDataset_EX_DatasetCancelled) | |
| 8. Система видаляє дані | |
| 9. Адміністратор закінчує взаємодію |
| ID: | RemoveEditorPermission |
|---|---|
| НАЗВА: | Зняти права редактора з користувача |
| УЧАСНИКИ: | Адміністратор, Система |
| ПЕРЕДУМОВИ: | Адміністратор авторизований у системі |
| РЕЗУЛЬТАТ: | Видалено право редактора |
| ВИКЛЮЧНІ СИТУАЦІЇ: | RemoveEditorPermission_EX_RemoveCancelled Адміністратор відхилив видалення прав |
| ОСНОВНИЙ СЦЕНАРІЙ: | 1. Адміністратор розпочинає взаємодію |
| 2. Адміністратор натискає на кнопку "Список редакторів" | |
| 3. Система відображує список редакторів | |
| 4. Адміністратор натискає на потрібного редактора | |
| 5. Система відображує внесені зміни редактором | |
| 6. Адміністратор натискає на кнопку "Видалити редактора" | |
| 7. Система запитує підтвердження на видалення прав редактора | |
| 8. Адміністратор підтверджує видалення прав (RemoveEditorPermission_EX_RemoveCancelled) | |
| 10. Система видаляє права редактора | |
| 11. Адміністратор закінчує взаємодію |
# Редактор:
| ID: | EditDataset |
|---|---|
| НАЗВА: | Редагувати набір даних |
| УЧАСНИКИ: | Редактор, Система |
| ПЕРЕДУМОВИ: | Редактор авторизований у системі, набір даних існує |
| РЕЗУЛЬТАТ: | Редагований набір даних |
| ВИКЛЮЧНІ СИТУАЦІЇ: | EditDataset_EX_DatasetCancelled Редактор скасував зміни |
| ОСНОВНИЙ СЦЕНАРІЙ: | 1. Редактор розпочинає взаємодію |
| 2. Редактор виконує пошук набору даних | |
| 3. Система відображує список даних | |
| 4. Редактор натискає на потрібний набір даних | |
| 5. Редактор натискає на кнопку "Редагувати дані" | |
| 6. Система відкриває форму редагування | |
| 7. Редактор вносить зміни | |
| 8. Редактор підтверджує зміни (EditDataSet_EX_DataSetCancelled) | |
| 9. Система редагує дані | |
| 10. Система відображує редагує дані | |
| 11. Редактор закінчує взаємодію |
# Короткий огляд продукту
Застосунок матиме одного та більше адміністраторів, які завантажують дані(тексти) в систему.
У вебзастосунку записи бази даних будуть представлені у зрозумілому для користувача вигляді: таблиця або графік.
Користувачі можуть:
- обрати певний текст і стати його редактором (Примітка: може бути максимум 2 редактора на 1 текст ).
- одночасно анотувати текст у своїх гілках
- надіслати pull request, таким чином зробивши запит на збереження змін.
Один з адміністраторів перевіряє текст і підтверджує або відхиляє запропоновані зміни. У разі підтвердження файл переміщується у базу анотованих текстів, тоді інші користувачі мають можливість завантажити його.
# Функціональність
- Створення облікового запису;
- Авторизація;
- Пожертвування кошт;
- Усі можливості загального користувача;
- Перегляд даних з сайту
- Завантаження даних з сайту
- Усі можливості авторизованого користувача;
- Редагування розмітки даних.
- Усі можливості редактора;
- Завантаження текстових файлів у систему;
- Видалення файлів з системи;
- Можливість видати та забрати права редактора;
- Перегляд історії змін файлів;
- Перегляд гілки змін редактора;
# Практичність
- Простота та зрозумілість інтерфейсу
- Наявність FAQ
- Робота у браузері
# Надійність
- Захист облікового запису паролем
- Шифрування паролей
- Розділення користувачів на ролі (user/admin)
# Продуктивність
Система має підтримувати:
- редагування файлу декількома користувачами одночасно
- багатопотокове завантаження та вивантаження файлів
- високу швидкість доступу до даних
# Експлуатаційна придатність
- Програмний код має бути зрозумілим для подальшої підтримки
- Необхідна наявність форми для зворотного зв'язку та контактів техпідтримки