Я маю задокументувати свою програму для шкільного проекту, і у нас є розділ під назвою "проблемний домен", але я не маю поняття, що обговорювати в цьому розділі.
Отже, питання: Що слід обговорити в проблемній області?
Я маю задокументувати свою програму для шкільного проекту, і у нас є розділ під назвою "проблемний домен", але я не маю поняття, що обговорювати в цьому розділі.
Отже, питання: Що слід обговорити в проблемній області?
Відповіді:
Я пишу вбудоване програмне забезпечення для телекомунікаційного обладнання. Мій проблемний домен - це Ethernet, голосові та відео протоколи. Іншими словами, все те, що не має нічого спільного з мовою, якою я програмую, але яку я все ж повинен зрозуміти, щоб написати програмне забезпечення. Якщо ви робите веб-сайт для продажу фотографічних послуг, проблемною сферою є фотографія та електронна комерція. Якщо ви пишете прошивку для військових літаків, проблемною областю є зброя, датчики та системи управління. Отримати картину?
З статті Вікіпедії про проблемний домен :
Проблемна область є областю знань або застосування , які необхідно вивчити , щоб вирішити проблему. Проблемний домен - це просто перегляд лише тем, які вас цікавлять, і виключення всього іншого.
Саме до цієї сфери належать проблеми, які має вирішити ваша програма.
Не всі пишуть компілятори, трекер помилок, фреймворки чи інші програмні пакети з комп’ютерною програмою.
Деякі люди пишуть програмне забезпечення для виробництва піску та гравію. Деякі люди пишуть програмне забезпечення для контролю веж заломлення рафінадних заводів. Деякі люди пишуть програмне забезпечення для контролю виготовлення пластикових продуктових пакетів. Деякі люди пишуть програмне забезпечення для заповнення пакетів кетчупу.
Це все проблемні домени, де для того, щоб написати гарне програмне забезпечення, потрібно трохи знати про домен, наприклад, готовий бетон.
Ян К. Брей у своїй книзі «Вступ до інженерії вимог» (p9) визначає проблематичну область як наступну:
Та частина Всесвіту, всередині якої існує проблема .
Наприклад, у випадку системи управління ліфтом вона включала б будь-яке існуюче обладнання (ліфти, двигуни, кнопки, індикатори, датчики тощо), будівельні характеристики (кількість поверхів і валів підйомника), передбачувану схему використання, характеристики користувачів, політика користування ліфтом клієнта (наприклад, чи варто відмовляти користувачам у використанні ліфта для коротких поїздок?) тощо.
У межах проблеми управління ліфтом проблема, як зазначено вище, полягає в тому, що "потрібна система управління, яка дозволить більш ефективно використовувати ліфти в цій будівлі". На практиці ми зазвичай уточнюємо проблему на цілий набір підпроблем, але поки що лише зауважимо, що для вирішення проблеми (проблем), явно необхідно, щоб система рішення створювала деякі ефекти в межах проблемної області . Саме ці бажані ефекти складають вимоги.
Таким чином, проблематичну область можна однаково сприймати як ту частину світу, в якій нова система рішення (іноді скорочена до СС) буде виробляти необхідні ефекти. Оскільки системи рішень на основі програмного забезпечення часто називають додатками, проблемний домен може називатися доменним додатком.