# Запити зацікавлених осіб
# Вступ
Цей документ містить інформацію для ознайомлення зацікавленими особами стосовно нашого продукту. У ньому знаходиться короткий опис продукту, а також вимоги до функціональності, практичності, надійності, продуктивності й експлуатаційної придатності.
# Мета
Мета документа полягає у визначенні вимог для розробки зручної системи управління проектами, спрямованої на підвищення ефективності керування проектами користувачами. Для досягнення цієї мети необхідно провести аналіз цільової аудиторії продукту, вимог і запитів від різних зацікавлених осіб. Основні вимоги включають функціональність, практичність, надійність, продуктивність та експлуатаційну придатність для створення сучасного та зручного програмного забезпечення для управління проектами.
# Контекст
Цей документ створений з метою ретельного опису вимог, на яких базуватиметься подальший розвиток нашого проекту та функціоналу нашої системи управління проектами під назвою "Flowly".
# Основні визначення та скорочення
Стейкхолдер проекту - особи, які мають інтерес або стейк в результаті проекту. Вони можуть бути різного характеру та рівня зацікавленості в проекті. Основні категорії зацікавлених осіб включають: замовник, користувач, розробник, інвестор, конкурент. [1]
Замовник - особа або організація, яка фінансує проект і визначає його цілі та обсяг. Замовник очікує відповідного результату та виконання вимог.
Користувач - особи, які будуть використовувати або користуватися продуктом чи послугою, що розробляється в рамках проекту.
Розробник - це фахівці, які працюють над реалізацією проекту. Їхні інтереси включають успішне завершення робіт та можливість розвивати свої навички.
Інвестор - особи, які вкладають фінансові ресурси в проект і очікують на прибуток або ріст вартості своїх інвестицій.
Конкурент - інші компанії, які можуть бути конкурентами проекту, а також будь-які інші сторони, які можуть бути зацікавлені в результаті проекту або впливати на нього.
FURPS — це акронім, що представляє модель для класифікації атрибутів якості програмного забезпечення (функціональні та нефункціональні вимоги). [2]
Functionality — функціональні вимоги: властивості, можливості, безпека. Є основними, за цими вимогами будуються діаграми варіантів використання (Use case diagram).
Usability — вимоги до зручності використання (UX): людський фактор, естетика, послідовність, документація.
Reliability — вимоги до надійності: частота можливих збоїв, стійкість до відмов, відновлюваність, передбачуваність стійкості.
Performance — вимоги до продуктивності: час відгуку, використання ресурсів, ефективність, потужність, масштабованість.
Supportability — вимоги до підтримки: можливість підтримки, ремонтопридатність, гнучкість, модифікованість, модульність, розширюваність, можливість локалізації.
# Посилання
[1] https://brainrain.com.ua/kto-takie-steykholderi (opens new window)
[2] https://ru.wikipedia.org/wiki/FURPS (opens new window)
# Короткий зміст
Характеристика ділових процесів
# Характеристика ділових процесів
Бізнес акторами є:
Клієнт: Ця особа або організація визначає вимоги до проекту та очікує їх виконання. Взаємодія з системою управління проектами відбувається через бізнес-представників, а також через комунікацію із замовником.
Тімлід: Тимчасовий лідер, який координує діяльність команди, розподіляючи завдання на підзавдання, призначаючи їх розробникам та забезпечуючи контроль за якістю та своєчасністю виконання завдань.
Робітник: Це користувач системи, який активно діє в рамках проекту, виконуючи певні завдання або підзавдання. Він фокусується на своїй безпосередній роботі, самостійно плануючи її та маючи базові права в системі.
Адміністратор: Це фахівець, який вирішує технічні питання інформаційного забезпечення, реагує на запити користувачів та забезпечує виконання правил користування системою.
# Бізнес сценарії:
ID | SignUp |
---|---|
Назва | Регістрація |
Учасники | Користувач, система |
Передумови | Користувач не має облікового запису у системі |
Результат | Створено обліковий запис користувача |
Виключні ситуації | NullReferenceException - Користувач не заповнив усі поля AccountAlreadyRegistred - Обліковий запис с такими данними вже існує InvalidPasswordException - Пароль не відповідає вимогам NetworkAccessNoneException - немає зʼєднання з інтернетом |
Основні сценарії | 1. Користувач заходить на сторінку створення облікового запису Користувач ввів данні у всі поля 2.Користувач натискає кнопку "Реєстрація" (NullReferenceException, InvalidPasswordException) 3. Перевірка підключення до інтернету (NetworkAccessNoneException) 4.Перевірка наявності облікового записи з ідентичними данними (AccountAlreadyRegistredException) 5.Створення облікового запису системою Користувач переходить на головну сторінку системи під своїм обліковим записом |
ID | SignIn |
---|---|
Назва | Авторизація |
Учасники | Користувач, система |
Передумови | 1.Користувач зареєстрований у системі 2.Користувач не авторизований |
Результат | Користувач авторизований у системі |
Виключні ситуації | NullReferenceException - Користувач не заповнив усі поля InvalidDataException - Таких зареєстрованних данних не існує, пароль або пошта не правильно вказані NetworkAccessNoneException - немає зʼєднання з інтернетом |
Основні сценарії | 1.Користувач вводить авторизаційні данні 2.Користувач натискає кнопку "Увійти в систему" (NullReferenceException) 3.Система намагається встановити зʼєднання з інтернетом (NetworkAccessNoneException) 4. Систма перевіряє введені данні (InvalidDataException) 5.Система авторизує користувача, користувач переходить на головну сторінку системи під своїм обліковим записом |
ID | EditProfile |
---|---|
Назва | Редагувати профіль |
Учасники | Користувач, система |
Передумови | 1.Кристувач авторизований у системі |
Результат | Користувач має зміни у данних профілю |
Виключні ситуації | NullReferenceException - Користувач залишив поле пустим InvalidPasswordException - Пароль не відповідає вимогам NetworkAccessNoneException - немає зʼєднання з інтернетом |
Основні сценарії | 1.Користувач переходить на сторінку свого профілю 2.Система перевіряє звʼязок з інтернетом (NetworkAccessNoneException) 3.Користувач змінює дані та тисне кнопку "Зберегти зміни" (NullReferenceException, InvalidPasswordException, NetworkAccessNoneException) 4.Система зберігає зміни у профілю користувача |
ID | CreateTask |
---|---|
Назва | Створити задачу |
Учасники | Користувач, система |
Передумови | 1.Користувач авторизований 2.Користувача добавлено у проект 3.Користувач має парава на створення задач у проекті на якому він знаходиться |
Результат | Задача створена в обраному проекті |
Виключні ситуації | NullReferenceException - користувач не заповних необхідні поля AccessDeniedException - користувач не має відповідних прав |
Основні сценарії | 1.Користувач обирає потрібний проект 2.Користувач натискає кнопку "Створити задачу"(AccessDeniedException) 3.Користувач вводить: назву, опис, статус(new/todo/inprogress/done/needreview), кому призначено, дедлайн, розмір задачі(опціонально), приорітетність задачі(опціонально) 4.Користувач натискає кнопку "Створити"(NullReferenceException) 5.Система створює задачу і відображає у обраній категорії 6.Система відсилає повідомлення всім призначеним на виконання користувачам, а також тімліду, про створення нової задачі |
ID | EditTask |
---|---|
Назва | Редагувати задачу |
Учасники | Користувач, система |
Передумови | 1.Користувач авторизований 2.Користувача добавлено у проект 3.Користувач має парава на зміну задач у проекті на якому він знаходиться |
Результат | Задачу змінено |
Виключні ситуації | NullReferenceException - користувач не заповних необхідні поля AccessDeniedException - користувач не має відповідних прав |
Основні сценарії | 1.Користувач обирає потрібний проект 2.Користувач обирає потрібну задачу 3.Користувач натискає кнопку "Редагувати задачу"(AccessDeniedException) 3.Користувач змінює: назву, опис, статус(new/todo/inprogress/done/needreview), кому призначено, дедлайн, розмір задачі(опціонально), приорітетність задачі(опціонально) 4.Користувач натискає кнопку "Зберегти"(NullReferenceException) 5.Система змінює задачу 6.Система відсилає повідомлення всім призначеним на виконання користувачам, а також тімліду, про зміну існуючої задачі |
ID | DeleteTask |
---|---|
Назва | Видалити задачу |
Учасники | Користувач, систему |
Передумови | 1.Користувач авторизований 2.Користувача добавлено у проект 3.Користувач має парава на зміну задач у проекті на якому він знаходиться |
Результат | Задачу видалено |
Виключні ситуації | AccessDeniedException - користувач не має відповідних прав NullReferenceException - користувач не заповних необхідні поля InvalidTaskNameException - користувач ввів імʼя задачі неправильно CancelTokenException - користувач відмінив операцію |
Основні сценарії | 1.Користувач обирає потрібний проект 2.Користувач обирає потрібну задачу 3.Користувач натискає кнопку "Видалити задачу"(AccessDeniedException) 3.Користувач отримує діалогове вікно із запитом вписати назву задачі для підтвердження видалення задачі(NullReferenceException, CancelTokenException) 4.Користувач вводить назву та натискає кнопку "Підтвердити" 5.Система видаляє задачу та надсилає про цю подію повідомлення привʼязаних до задачі користувачів та тімліду |
ID | CreateProject |
---|---|
Назва | Створити проект |
Учасники | Тімлід, система |
Передумови | 1.Користувач авторизований 2.Користувач має необхідні права |
Результат | Новий проект |
Виключні ситуації | NullReferenceException - користувач не заповних необхідні поля AccessDeniedException - користувач не має відповідних прав NameAlreadyExistsException - проект з таким імʼям вже існує |
Основні сценарії | 1.Користувач натискає кнопку "Створити проект"(AccessDeniedException) 2.Користувач заповнює поля з данними проекту 3.Користувач натискає кнопку "Створити"(NullReferenceException, NameAlreadyExistsException) 4.Система створює проект та показує його на головній сторінці тімліда та привʼязаних до нього користувачів |
ID | EditProject |
---|---|
Назва | Редагувати проект |
Учасники | Тімлід, система |
Передумови | 1.Користувач авторизований 2.Користувач має необхідні права |
Результат | Проект змінено |
Виключні ситуації | NullReferenceException - користувач не заповних необхідні поля AccessDeniedException - користувач не має відповідних прав NameAlreadyExistsException - проект з таким імʼям вже існує |
Основні сценарії | 1.Користувач обирає проект та натискає кнопку "Змінити проект"(AccessDeniedException) 2.Користувач змінює поля з данними проекту 3.Користувач натискає кнопку "Змінити"(NullReferenceException, NameAlreadyExistsException) 4.Система змінює проект із зазначеними даними |
ID | DeleteProject |
---|---|
Назва | Видалити проект |
Учасники | Тімлід, система |
Передумови | 1.Користувач авторизований 2.Користувач має необхідні права |
Результат | Проект видалено |
Виключні ситуації | AccessDeniedException - користувач не має відповідних прав NullReferenceException - користувач не заповних необхідні поля InvalidTaskNameException - користувач ввів імʼя проекту неправильно CancelTokenException - користувач відмінив операцію |
Основні сценарії | 1.Користувач обирає проект та натискає кнопку "Видалити"(AccessDeniedException) 2.Користувач отримує діалогове вікно із запитом вписати назву проекту для підтвердження видалення(NullReferenceException, CancelTokenException) 3.Користувач вводить назву та натискає кнопку "Підтвердити" 5.Система видаляє проект та сповіщює про це колабораторів проекту |
ID | ArchiveProject |
---|---|
Назва | Архівувати проект |
Учасники | Тімлід, система |
Передумови | 1.Користувач авторизований 2.Користувач має необхідні права |
Результат | Проект видалено |
Виключні ситуації | AccessDeniedException - користувач не має відповідних прав NullReferenceException - користувач не заповних необхідні поля InvalidTaskNameException - користувач ввів імʼя проекту неправильно CancelTokenException - користувач відмінив операцію |
Основні сценарії | 1.Користувач обирає проект та натискає кнопку "Архівувати"(AccessDeniedException) 2.Користувач отримує діалогове вікно із запитом вписати назву проекту для підтвердження(NullReferenceException, CancelTokenException) 3.Користувач вводить назву та натискає кнопку "Підтвердити" 5.Система архівує проект, роблячи його доступним тільки для читання та сповіщює про це колабораторів проекту |
ID | AssignManager |
---|---|
Назва | Змінити менеджера проекту |
Учасники | Адміністратор, система |
Передумови | 1.Користувач авторизований 2.Користувач має необхідні права |
Результат | Тімліда проекту змінено |
Виключні ситуації | AccessDeniedException - користувач не має відповідних прав NullReferenceException - користувач не заповних необхідні поля NoUserFoundException - користувач ввів імʼя нового тімліда неправильно CancelTokenException - користувач відмінив операцію |
Основні сценарії | 1.Користувач обирає проект та тисне кнопку налаштувань.(AccessDeniedException) 2.Користувач натискає кнопку "Змінити менеджера проекту"(AccessDeniedException) 3.Користувач отримує діалогове вікно із запитом вписати імʼя нового тімліду для підтвердження(NullReferenceException, CancelTokenException, NoUserFoundException) 3.Користувач імʼя вводить імʼя та натискає кнопку "Підтвердити" 5.Система змінює відповідального за проект |
ID | AddContributor |
---|---|
Назва | Добавити користувача у проект |
Учасники | Тімлід, система |
Передумови | 1.Користувач авторизований 2.Користувач має необхідні права |
Результат | Користувача добавлено у проект |
Виключні ситуації | AccessDeniedException - користувач не має відповідних прав NullReferenceException - користувач не заповних необхідні поля NoUserFoundException - користувач ввів імʼя нового тімліда неправильно CancelTokenException - користувач відмінив операцію |
Основні сценарії | 1.Користувач обирає проект та тисне кнопку налаштувань.(AccessDeniedException) 2.Користувач натискає кнопку "Добавити колаборатора проекту"(AccessDeniedException) 3.Користувач отримує діалогове вікно із запитом вписати імʼя нового користувача для підтвердження(NullReferenceException, CancelTokenException, NoUserFoundException) 3.Користувач вводить імʼя та натискає кнопку "Підтвердити" 5.Система додає нового колаборатора на проект |
ID | DeleteContributor |
---|---|
Назва | Видалити користувача з проекту |
Учасники | Тімлід, система |
Передумови | 1.Користувач авторизований 2.Користувач має необхідні права |
Результат | Користувача добавлено у проект |
Виключні ситуації | AccessDeniedException - користувач не має відповідних прав NullReferenceException - користувач не заповних необхідні поля NoUserFoundException - користувач ввів імʼя нового тімліда неправильно CancelTokenException - користувач відмінив операцію |
Основні сценарії | 1.Користувач обирає проект та тисне кнопку налаштувань.(AccessDeniedException) 2.Користувач натискає кнопку "Видалити колаборатора проекту"(AccessDeniedException) 3.Користувач отримує діалогове вікно із запитом вписати імʼя користувача для підтвердження(NullReferenceException, CancelTokenException, NoUserFoundException) 3.Користувач вводить імʼя та натискає кнопку "Підтвердити" 5.Система видаляє обраного колаборатора з проекту |
ID | BlockUser |
---|---|
Назва | Заблокувати користувача у системі |
Учасники | адміністратор, система |
Передумови | 1.Користувач авторизований 2.Користувач має необхідні права |
Результат | Користувача добавлено у проект |
Виключні ситуації | AccessDeniedException - користувач не має відповідних прав NullReferenceException - користувач не заповних необхідні поля NoUserFoundException - користувач ввів імʼя нового тімліда неправильно CancelTokenException - користувач відмінив операцію |
Основні сценарії | 1.Користувач обирає проект та тисне кнопку налаштувань.(AccessDeniedException) 2.Користувач натискає кнопку "Заблокувати колаборатора проекту"(AccessDeniedException) 3.Користувач отримує діалогове вікно із запитом вписати імʼя користувача для підтвердження(NullReferenceException, CancelTokenException, NoUserFoundException) 3.Користувач вводить імʼя та натискає кнопку "Підтвердити" 5.Система видаляє обраного колаборатора з проекту та блокує обліковий запис добавляєчи його у список заблокованих записів системи |
ID | Support |
---|---|
Назва | Підтримка |
Учасники | Користувач, система |
Передумови | 1.Користувач авторизований |
Результат | Проблема користувача вирішується |
Виключні ситуації | NullRefenceException - користувач не заповнив усі поля CancelTokenException - користувач відмінив операцію |
Основні сценарії | 1.Користувач тисне кнопку "Підтримка" 2.Система показує користувачеві діалогове з полями для вводу пошти користувача та опису проблему(CancelTokenException) 3.Користувач тисне кнопку "Відправити"(NullReferenceException) 4.Система відправляє лист із запитом на отримання підтримки адміністратору 5.Адміністратор вирішує проблему користувача та відправляє лист на вказану користувачем пошту 6.Користувач отримує рішення проблеми |
# Короткий огляд продукту
Flowly- це програмне забезпечення, яке допомагає користувачам ефективно планувати, відстежувати та контролювати проекти. Зручна система управління проектами може бути цінним інструментом для будь-кого, хто працює над проектами, незалежно від їх розміру або складності. Це можуть бути працівники в галузі розробки програмного забезпечення, маркетингу, продажів, виробництва та інших галузей. Користувачі матимуть широкий спектр функцій, які дозволять їм ефективно створювати, планувати, управляти, відстежувати та контролювати проекти.
Керівники проектів - це користувачі, які відповідають за загальне керівництво проектами. Вони використовують систему для планування, відстеження та контролю проектів.
Члени команди - це користувачі, які відповідають за виконання конкретних завдань у межах проектів. Вони використовують систему для планування своїх завдань, відстеження прогресу і комунікації з іншими членами команди.
Клієнти - це користувачі, які отримують продукти або послуги, які створюються в рамках проектів. Вони можуть використовувати систему для відстеження прогресу проектів.
Надійність (Reliability) Система управління проектами повинна бути надійною та працювати без збоїв. Вона повинна мати відповідні засоби безпеки для захисту даних користувачів.
Продуктивність (Performance) Система управління проектами повинна бути продуктивною та дозволяти користувачам швидко і легко виконувати завдання. Вона повинна бути розрахована, на підтримувати зростання кількості користувачів і проектів.
Експлуатаційна придатність (Supportability) Система управління проектами повинна бути легкою в експлуатації та підтримці. Вона повинна мати відповідний документацію та засоби підтримки для користувачів.
Додаткові вимоги Система управління проектами повинна бути доступною в різних мовах і підтримувати різні платформи. Вона повинна бути інтегрована з іншими системами, які використовуються в бізнес-процесах.
# Функціональність
Огляд
Наша система управління проектами Flowly розроблена для оптимізації процесу управління проектами, завданнями та командами. З інтуїтивним інтерфейсом та потужним бекендом, Flowly гарантує, що керівники проектів, члени команди та зацікавлені сторони можуть співпрацювати ефективно.
Основні функції
Створення та управління проектами:
# Інтерфейс робітника
Інтерфейс розробника є базовим набором можливостей користувача системи.
- зареєструвати користувача
- авторизувати користувача
- відредагувати профіль користувача у системі
- створити завдання
- редагувати завдання
- видалити завдання
- відфільтрувати завдання
- коментувати завдання
- створити свою організію та мати інтерфейс адміністратора системи
- використовувати всі наявні інтеграції
# Інтерфейс тімліда
Інтерфейс тімліда розширяє інтерфейс розробника і наділяється правами керування складом команди.
- призначати завдання учасникам
- додати користувача до проекту
- видалити користувача з проекту
- створити проект
- редагувати проект
- видалити проект
- створити спринт
- завершити спринт
- доступ до репортів проекту
# Інтерфейс адміністратора системи
Інтерфейс адміністратора передбачає найширші можливості керування системою, розширяючи попередні.
- звблокувати користувача
- розблокувати користувача
- добавлення нових добавлення нових інтеграцій
- вирішити проблему користувача (support)
# Посилання:
# Репорти:
Можна генерувати докладні звіти, які надають уявлення про прогрес проекту, продуктивність команди та використання ресурсів. Інструменти аналітики пропонують візуальні представлення, такі як діаграми Ганта та кругові діаграми, для прийняття рішень.
# Майбутні покращення:
Ми постійно працюємо над вдосконаленням Flowly. Майбутні функції включають:
- пріоритезацію завдань на основі штучного інтелекту
- прогностичну аналітику для завершення проекту
- інтеграцію з більшою кількістю сторонніх інструментів.
# Практичність
- Кроссплатформеність:
- Програма має працювати на Windows, macOS, Linux.
- Синхронізація даних між різними платформами.
- Система Сповіщень:
- Сповіщення про нові завдання та зміни в завданнях.
- Налаштування типів сповіщень і каналів (email, в програмі тощо).
- Інтеграція з GitHub:
- Інтеграція з GitHub для стеження за репозиторіями та завданнями.
- Інтеграція з 3rd Party:
- Можливість інтеграції зі сторонніми інструментами та сервісами.
- Штучний Інтелект:
- Використання штучного інтелекту для поліпшення аналізу та передбачення в проектах.
- Допомога при розробці проекту.
- Гарячі Клавіші:
- Доступ до функцій програми за допомогою гарячих клавіш для підвищення ефективності.
- Налаштування гарячих клавіш.
# Надійність
- Резервне Копіювання:
- Регулярне автоматичне резервне копіювання даних користувачів для запобігання втратам.
- Можливість відновлення даних з резервних копій у разі необхідності.
- Швидкість Виправлення Багів:
- Активна та оперативна підтримка для виправлення багів та помилок в програмі.
- Гарантований час виправлення критичних проблем.
- Приватні Проєкти:
- Можливість створювати приватні проекти, недоступні для публічного перегляду.
- Контроль доступу до приватних проектів з можливістю надання прав користувачам.
- Історія Зміни Проєктів:
- Ведення історії змін у проектах та завданнях.
- Відстеження, хто і коли зробив зміни, і які саме зміни були внесені.
- Багаторівнева Аутентифікація:
- Забезпечення багаторівневої аутентифікації для підвищення безпеки користувачів.
- Можливість використання двофакторної аутентифікації або інших методів безпеки для входу до облікового запису.
# Продуктивність
Експрес-синхронізація оновлень, внесених різними користувачами в спільний проєкт
Оптимізація використання пам'яті
Збереження даних у кеші
Регулювання та лімітування ресурсів для кожного проєкту, включаючи визначення верхнього порогу учасників проєкту та числа запитів протягом певного періоду часу.
# Експлуатаційна придатність
Доступність: Система має бути доступною для користувачів у визначений час, і це охоплює не тільки час фактичної роботи, але й час відновлення в разі виникнення неполадок.
Сумісність: Система повинна бути сумісною з іншими системами та технологіями, з якими вона взаємодіє.
Зручність в користуванні: Система повинна бути зручною для користувачів і мати інтуїтивний інтерфейс.
Можливість масштабування: Система повинна бути здатною масштабуватися, щоб відповідати зростаючим потребам користувачів.
Надійність: Система повинна працювати без збоїв та відмов протягом визначеного періоду, що визначається на основі потреб користувачів.