Feature Driven Development
Feature driven development (FDD, розробка, керована функціональністю) — ітеративна методологія розробки програмного забезпечення, одна з гнучких методологій розробки (agile). FDD являє собою спробу об'єднати найбільш визнані в індустрії розробки програмного забезпечення методики, які беруть за основу важливу для замовника функціональність (властивості) розроблюваного програмного забезпечення. Основною метою даної методології є розробка реального, працюючого програмного забезпечення систематично, в поставлені терміни. ІсторіяFDD була запропонована Джеффом Де Люка для проєкту (розрахованого на 15 місяців і 50 осіб) з розробки програмного забезпечення для одного великого Сінгапурського банку в 1997 році. Де Люка виділив набір з п'яти процесів, що охоплює як розробку загальної моделі, так і ведення списку, планування, проєктування і реалізацію елементів функціональності (англ. feature). Перший опис FDD з'явився в 1996 році в главі 6 книги Java Modeling in Color with UML [1]. У книзі A Practical Guide to Feature-Driven Development [2] (2002 рік) опис FDD було узагальнено, і зокрема позбавлено від прив'язок до конкретної мови програмування. ОглядFDD включає в себе п'ять базових видів діяльності: ![]()
Перші два процеси відносяться до початку проєкту. Останні три здійснюються для кожної функції. Розробники в FDD діляться на «господарів класів» і «головних програмістів». Головні програмісти залучають господарів задіяних класів до роботи над черговою властивістю. Робота над проєктом передбачає часті збірки і ділиться на ітерації, кожна з яких передбачає реалізацію певного набору функцій. Розробка загальної моделіРозробка починається з високорівневого наскрізного аналізу обсягу кола вирішуваних завдань і контексту системи. Далі для кожної модельованої області робиться більш детальний наскрізний аналіз. Наскрізні опису складаються в невеликих групах і виносяться на подальше обговорення та експертну оцінку. Одна з пропонованих моделей або їх об'єднання стає моделлю для конкретної області. Моделі кожній області завдань об'єднуються в загальну підсумкову модель, яка змінюється в ході роботи. Складання списку можливостей (функцій)Інформація, зібрана при побудові загальної моделі, використовується для складання списку функцій. Це здійснюється розбиттям областей (англ. domain) на підобласті (предметні області, англ. subject areas) з точки зору функціональності. Кожна окрема підобласть відповідає якомусь бізнес-процесу, кроки якого стають списком функцій (властивостей). У даному випадку функції - це маленькі частини розуміються користувачем функцій, представлених у вигляді «<дія> <результат> <об'єкт>», наприклад, «перевірка пароля користувача». Розробка кожної функції повинна займати не більше 2 тижнів, інакше задачу необхідно розбити на кілька підзадач, кожна з яких зможе бути завершена за встановлений двотижневий термін. План за властивостями (функціями)Після складання списку основних функцій, настає черга складання плану розробки програмного забезпечення. Володіння класами розподіляється серед провідних програмістів шляхом упорядкування та організації властивостей (або наборів властивостей) в класи. Проєктування функційДля кожної властивості створюється проєктувальний пакет. Провідний программіст виділяє невелику групу властивостей для розробки протягом двох тижнів. Разом з розробниками відповідного класу провідний програміст складає докладні діаграми послідовності для кожної властивості, уточнюючи загальну модель. Далі пишуться «болванки» класів і методів, і відбувається критичний розгляд дизайну. Реалізація функціїПісля успішного розгляду дизайну, дана видима клієнту функціональність реалізується до стану готовності. Для кожного класу пишеться програмний код. Після модульного тестування кожного блоку і перевірки коду, завершена функція включається в основний проєкт (англ. build). ЕтапиТак як функції малі, то їх розробка - відносно легке завдання. Для моніторингу проєкту з розробки ПЗ і надання точних даних про розвиток проєкту необхідно протоколювати розробку кожної властивості (функції). FDD виділяє шість послідовних етапів для кожної функції (властивості). Перші три повністю завершуються в процесі проєктування, останні три - в процесі реалізації. Для зручності контролю за виконанням робіт на кожному етапі показується відсоток його готовності (виконання). У таблиці нижче наведені основні етапи. Функція, яка все ще знаходиться в розробці, завершена на 44% (Аналіз області 1% + Дизайн 40% + Перевірка дизайну 3% = 44%)
Передовий досвідFDD побудований на основі набору передового досвіду (набору найкращих практик), визнаного в галузі і отриманого з інженерії програмного забезпечення. Ці практичні методи будуються з точки зору важливого для клієнта функціоналу. Нижче подано короткий опис кожного методу:
Див. ТакожГнучка розробка програмного забезпечення ПриміткиЛітература
Посилання
|
Portal di Ensiklopedia Dunia