Яка різниця між функціональною та нефункціональною потребою? [зачинено]


283

Чим відрізняються функціональні та нефункціональні вимоги в контексті проектування програмної системи?

Наведіть приклади для кожного випадку.



@TravisJ Знову будемо тримати тег у питаннях, поки ми не закінчимо першу фазу спалення тегів.
TylerH

Відповіді:


525

Функціональна вимога описує, що повинна робити програмна система, тоді як нефункціональні вимоги обмежують, як система це зробить.

Дозвольте мені детальніше.

Прикладом функціональної вимоги може бути:

  • Система повинна надсилати електронний лист, коли виконується певна умова (наприклад, замовлення, клієнт підписується тощо).

Супутніми нефункціональними вимогами до системи можуть бути:

  • Електронні листи повинні надсилатися із затримкою не більше 12 годин від такої активності.

Функціональна вимога - це опис поведінки системи у відповідності з функціональністю системи. Нефункціональна вимога розробляє характеристику продуктивності системи.

Зазвичай нефункціональні вимоги належать до таких областей, як:

  • Доступність
  • Потужність, поточний та прогнозний
  • Відповідність
  • Документація
  • Аварійного відновлення
  • Ефективність
  • Ефективність
  • Розширюваність
  • Відмовостійкість
  • Взаємодія
  • Технічне обслуговування
  • Конфіденційність
  • Переносність
  • Якість
  • Надійність
  • Стійкість
  • Час реакції
  • Міцність
  • Масштабованість
  • Безпека
  • Стабільність
  • Підтримка
  • Заповітність

Більш повний список доступний у статті Вікіпедії для нефункціональних вимог .

Нефункціональні вимоги іноді визначаються з точки зору метрик (тобто щось, що можна виміряти щодо системи), щоб зробити їх більш відчутними. Нефункціональні вимоги можуть також описувати аспекти системи, які не стосуються її виконання, а, скоріше, її еволюції з часом (наприклад, ремонтопридатність, розширюваність, документація тощо).


Я відкладу вам, звичайно, враховуючи вашу репутацію та професійну історію роботи (яку я переглянув, перш ніж писати це): чи не міг ваш приклад нефункціональної вимоги вважати поведінкою? Або ваша думка більше до того, що нефункціональні вимоги описують обмеження навколо поведінки?
Томас

1
Щоб трохи уточнити моє запитання (і воно може не відповідати): чи є спосіб краще з’ясувати межу того, що становить поведінку?
Томас

плюс 1 за приклад хорошого прикладу системи електронної пошти. :)
Ахтішам

33

функціональні вимоги - це основні речі, яких користувач очікує від програмного забезпечення, наприклад, якщо програма є банківською програмою, програма повинна мати можливість створити новий рахунок, оновити обліковий запис, видалити обліковий запис тощо. Функціональні вимоги деталізовані та визначені в дизайні системи

Нефункціональна вимога не є прямою вимогою системи, скоріше вона пов'язана із зручністю використання (певним чином), наприклад, для банківської програми, головна нефункціональна вимога буде доступна. Додаток має бути доступним 24/7 без простоїв. якщо можливо.


27

Функціональні вимоги

  1. Функціональні вимоги визначають функцію, яку система чи компонент системи повинні мати можливість виконувати. Це можна документувати різними способами. Найпоширеніші з них - це письмові описи в документах та випадки використання.

  2. Словами використання можуть бути текстові списки перерахування, а також діаграми, що описують дії користувача. Кожен випадок використання ілюструє поведінкові сценарії через одну або кілька функціональних вимог. Однак часто аналітик розпочнеться з набору наборів випадків використання, з яких аналітик може отримати функціональні вимоги, які повинні бути реалізовані, щоб дозволити користувачеві виконувати кожен випадок використання.

  3. Функціональні вимоги - це те, що система повинна виконувати . Це може бути

    • Розрахунки
    • Технічні деталі
    • Маніпулювання даними
    • Обробка даних
    • Інша специфічна функціональність
  4. Типова функціональна вимога міститиме унікальне ім’я та номер, короткий підсумок та обґрунтування. Ця інформація використовується для того, щоб допомогти читачеві зрозуміти, для чого потрібна ця вимога, і відстежити її через розвиток системи.

Нефункціональні вимоги

Л.Бушкін уже пояснив більше про нефункціональні вимоги. Додам ще.

  1. Нефункціональні вимоги - це будь-яка інша вимога, ніж функціональні вимоги. Це вимоги, які визначають критерії, за допомогою яких можна судити про роботу системи, а не про конкретні поведінки .

  2. Нефункціональні вимоги складаються у формі "система повинна бути" , загальною властивістю системи в цілому або певного аспекту, а не конкретної функції. Загальні властивості системи зазвичай позначають різницю між тим, успішний чи невдалий проект розвитку.

  3. Нефункціональні вимоги - їх можна розділити на дві основні категорії:

    • Якості виконання , такі як безпека та зручність використання, які можна спостерігати під час виконання.
    • Еволюційні якості , такі як перевіреність, ремонтопридатність, розширюваність і масштабованість, які втілені в статичній структурі програмної системи.
  4. Нефункціональні вимоги встановлюють обмеження щодо продукту, що розробляється, процесу розробки та визначають зовнішні обмеження, яким повинен відповідати продукт.
  5. IEEE-Std 830 - 1993 перераховано 13 нефункціональні вимоги , які будуть включені в програмне забезпечення , вимоги до документів.
  1. Вимоги до продуктивності
  2. Вимоги до інтерфейсу
  3. Експлуатаційні вимоги
  4. Вимоги до ресурсу
  5. Вимоги до перевірки
  6. Вимоги щодо прийняття
  7. Вимоги до документації
  8. Вимоги безпеки
  9. Вимоги до портативності
  10. Вимоги до якості
  11. Вимоги до надійності
  12. Вимоги до ремонту
  13. Вимоги безпеки

Від того, чи вимога виражається як функціональна чи нефункціональна вимога, може залежати:

  • про рівень деталізації, який слід включити в документ про вимоги
  • ступінь довіри, який існує між клієнтом системи та розробником системи.

Вих. Системі може знадобитися представити користувачеві відображення кількості записів у базі даних. Це функціональна вимога. Наскільки актуальним є [оновлення] цього номера, це нефункціональна вимога. Якщо число потрібно оновити в режимі реального часу, архітектори системи повинні переконатися, що система здатна оновити кількість [відображених] записів у межах прийнятно короткого інтервалу зміни кількості записів.

Список літератури:

  1. Функціональна вимога
  2. Нефункціональна вимога
  3. Кількісне визначення та простежуваність вимог

1
добре пояснено. Дякую!
Арслан Рамай

1
Гарна відповідь з хорошими посиланнями. Хочу лише додати більш оновлений стандарт, оскільки IEEE 830-1993 був замінений. Останнім стандартом є ISO / IEC / IEEE 29148: 2018 "Система та інженерія програмного забезпечення - Процеси життєвого циклу - Розробка вимог" ( iso.org/standard/72089.html )
вихід з системи

8

Функціональні вимоги - це ті, які пов'язані з технічною функціональністю системи.

нефункціональна вимога - це вимога, яка визначає критерії, за допомогою яких можна судити про роботу системи в конкретних умовах, а не про конкретні поведінки.

Наприклад, якщо ви розглядаєте торговий сайт, додавання предметів у кошик, перегляд різних предметів, застосування пропозицій та угод та успішне розміщення замовлень підпадає під функціональні вимоги.

Якщо, як продуктивність системи у години пік, час, який потребує система для отримання даних з БД, безпека даних користувача, здатність системи обробляти, якщо велика кількість користувачів входить під нефункціональні вимоги.


Відмінна відповідь.
Іфтікар

3

ФУНКЦІОНАЛЬНІ ВИМОГИ діяльності, яку повинна виконувати система

  • бізнес використовує функції, які користувачі виконують
  • використовуйте приклад випадків, якщо ви розробляєте необхідні функції системи оплати праці
  • генерувати електронні перекази коштів
  • Суми розрахункової комісії
  • обчислити податки на заробітну плату
  • звітувати про сплату податку до Держслужби

2

Я думаю, що функціональна вимога - від клієнта до сторони розробника, що стосується функціональності для користувача програмним забезпеченням, а нефункціональна вимога - від розробника до клієнта. безпека, безпека, гнучкість, масштабованість, доступність тощо

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.