Якщо проблема є звичайною, наприклад, написанням компілятора чи браузера, вимоги в значній мірі задаються у вигляді мовних стандартів, цільових операційних систем та цільового обладнання тощо.
Для таких речей, як GNU Emacs, що багато хто, крім того, що чудово виконує свою первісну мету - бути текстовим редактором, я вважаю, що вимоги мали сенс через величезну можливість їх розширення. Приходять в голову чати, електронні листи, групи новин, редагування коду, контроль версій. Є науковий співробітник, який працює над Emacspeak. Я думаю, що подібні речі можна сказати про браузери та інші речі, які дозволяють розширення.
Якщо програмне забезпечення наздоганяє функцію, доступну лише в програмному забезпеченні без відкритого коду, ця вимога знову багато в чому задається.
Редагувати:
Коли програмне забезпечення з відкритим кодом переходить на технічне обслуговування і менше оригінальних вимог залишаються невиконаними, більшість вимог може виходити з помилок, потребує адаптації до нових платформ, таких як багатоядерні процесори та інше обладнання, які пропонують кращу продуктивність при експлуатації тощо.
У проекті, заснованому на повністю дослідженні, як GNU Hurd, я думаю, що вимоги випливають з результатів дослідження та робіт.
Підсумовуючи,
при запуску вимоги до програмного забезпечення, яке намагається вирішити загальні проблеми, можуть виходити з стандартних документів
до програмного забезпечення, яке охоплює інше існуюче програмне забезпечення, ці вимоги, ймовірно, полягають у створенні всього або більшості наборів функцій існуючого програмного забезпечення та деяких інших функцій, які розробникам / користувачам цікаво мати
до науково-дослідних проектів, робіт та інших публікацій можуть бути встановлені вимоги
коли в обслуговуванні, помилки, необхідність адаптації до нових середовищ можуть стати головним джерелом вимог