Dezvoltare bazată pe funcții

Dezvoltarea bazată pe caracteristici (limba engleză de dezvoltare bazate pe caracteristica sau FDD) este un proces de dezvoltare de software iterativ și incremental .

Este una dintre metodele ușoare sau agile pentru dezvoltarea software-ului. FDD reunește o serie de bune practici recunoscute în industrie într-un ansamblu coeziv. Toate aceste practici provin dintr-o perspectivă a funcționalității apreciate de client. Scopul său principal este de a furniza software-uri de lucru tangibile și repetate în timp util.

Istorie

Abordarea FDD a fost inițial dezvoltată de Jeff De Luca  (în) pentru a satisface nevoile specifice unui proiect de dezvoltare software de 15 luni și 50 de persoane într-o mare bancă din Singapore în 1997. Jeff De Luca a livrat un set de cinci procese care acoperă dezvoltarea a unui model general și listarea, planificarea, proiectarea și construcția funcționalității. Primul proces este puternic influențat de abordarea modelării obiectelor a lui Peter Coad  (în) . Al doilea proces încorporează ideile lui Peter Coad privind utilizarea unei liste de caracteristici pentru a gestiona cerințele funcționale și sarcinile de dezvoltare. Celelalte procese și asamblarea proceselor într-un întreg coeziv este rezultatul experienței lui Jeff De Luca. De la utilizarea sa cu succes în proiectul Singapore, au existat mai multe implementări ale FDD.

Descrierea FDD a fost introdusă pentru prima dată în lume în capitolul 6 al cărții Java Modeling in Color with UML de Peter Coad, Eric Lefebvre și Jeff De Luca în 1999. În 2002, în cartea lui Stephen Palmer și Mac Felsing A Practical Guide pentru dezvoltarea bazată pe funcții , a fost dată o descriere mai generală a FDD, decuplată de modelarea Java.

Cele mai recente și mai recente procese FDD pot fi găsite pe site-ul lui Jeff De Luca sub „Articol”. Există, de asemenea, un site web al comunității unde oamenii pot afla mai multe despre MD, pot fi adresate întrebări și se discută experiențele și procesele în sine.

Prezentare generală

FDD este un proces scurt de iterație care constă din cinci activități de bază. Pentru a obține rapoarte de stare exacte și pentru a urmări proiectul de dezvoltare software, sunt definite etapele care marchează progresul pe fiecare caracteristică. Această secțiune oferă o imagine de ansamblu la nivel înalt a activităților. În figura din dreapta, este afișat șablonul de metaproces pentru aceste activități. În timpul primelor două activități secvențiale, se stabilește o formă de tipar global. Ultimele trei activități sunt iterate pentru fiecare caracteristică.

Elaborați modelul general

Proiectul FDD începe cu un tur ghidat la nivel înalt al sferei sistemului și al contextului său. Apoi, sunt create modele de domenii detaliate pentru fiecare domeniu de modelare breakout și prezentate pentru evaluare inter pares. Unul dintre modelele propuse sau o combinație a acestora este ales pentru a deveni modelul pentru fiecare domeniu de domeniu. Modelele zonei domeniului sunt fuzionate treptat într-un model global.

Lista funcțiilor de construcție

Cunoștințele acumulate în timpul modelării inițiale sunt utilizate pentru a identifica o listă de caracteristici prin descompunerea domeniului în domenii. Fiecare zonă tematică conține activități comerciale, iar etapele fiecărei activități constituie baza unei liste de caracteristici clasificate. Caracteristicile în acest sens sunt părți mici ale funcțiilor evaluate de client exprimate în formularul <acțiune> <rezultat> <obiect> , de exemplu: „Calculați totalul unei vânzări” sau „Validați parola unui utilizator”. Funcțiile nu ar trebui să dureze mai mult de două săptămâni pentru a fi finalizate, altfel ar trebui să fie împărțite în bucăți mai mici.

Planificați după caracteristică

Odată ce lista de funcții este completă, următorul pas este elaborarea planului de dezvoltare; Atribuirea programatorilor dreptului de proprietate asupra caracteristicilor (sau seturilor de caracteristici) ca clase.

Proiectare după funcție

Un pachet de design este produs pentru fiecare caracteristică. Un programator principal alege un grup mic de caracteristici care trebuie dezvoltate în termen de două săptămâni. În colaborare cu proprietarii de clase corespunzători, programatorul principal întocmește diagrame detaliate pentru fiecare caracteristică și rafinează modelul general. Apoi sunt scrise prologurile de clasă și metodă și, în final, se ține o inspecție de proiectare.

Construiți prin funcționalitate

După o inspecție de proiectare reușită, este planificată o activitate caracteristică pentru a produce o funcție (caracteristică) evaluată de client. Proprietarii clasei dezvoltă fiecare codul pentru clasele lor. După testarea unității și inspectarea cu succes a codului, funcționalitatea finalizată este promovată la versiunea principală.

Repere

Deoarece funcționalitatea este mică, completarea unei funcții este o sarcină relativ mică.