Vývoj na základě funkcí - Feature-driven development

Feature-driven development ( FDD ) je iterativní a přírůstkový proces vývoje softwaru . Je to lehká nebo agilní metoda pro vývoj softwaru . FDD spojuje řadu v oboru uznávaných osvědčených postupů do soudržného celku. Tyto postupy vycházejí z pohledu funkčnosti ( funkce ) oceňované klientem . Jeho hlavním účelem je dodávat hmatatelný, fungující software včas a opakovaně v souladu se zásadami Agilního manifestu .

Dějiny

FDD původně navrhl Jeff De Luca, aby splnil specifické potřeby 15měsíčního projektu vývoje softwaru pro 50 osob ve velké singapurské bance v roce 1997. Výsledkem byl soubor pěti procesů, které pokrývaly vývoj celkového modelu a seznam, plánování, design a budování funkcí. První proces je silně ovlivněn přístupem Petera Coada k modelování objektů . Druhý proces zahrnuje Coadovy nápady na použití seznamu funkcí pro správu funkčních požadavků a vývojových úkolů. Ostatní procesy jsou výsledkem zkušeností Jeffa De Lucy. Od jeho úspěšného použití v singapurském projektu došlo k několika implementacím FDD.

Popis FDD byl poprvé představen světu v kapitole 6 knihy Java modeling in Color with UML od Petera Coada, Erica Lefebvra a Jeffa De Lucy v roce 1999. Později, v knize Stephena Palmera a Mac Felsinga Praktický průvodce na Feature-Driven Development (publikoval v roce 2002), obecnější popis FDD byl uveden oddělen od modelování Java.

Přehled

FDD je modelem řízený proces krátké iterace, který se skládá z pěti základních činností. Pro přesné hlášení stavu a sledování projektu vývoje softwaru jsou definovány milníky, které označují pokrok dosažený u každé funkce. Tato část poskytuje přehled o aktivitách na vysoké úrovni. Na obrázku vpravo je zobrazen model meta-procesu pro tyto aktivity. Během prvních dvou sekvenčních aktivit se vytvoří celkový tvar modelu . Poslední tři aktivity jsou iterovány pro každou funkci.

Procesní model pro FDD

Vyvinout celkový model

Projekt FDD začíná na vysoké úrovni o rekapitulaci oblasti působnosti systému a jeho kontextu. Dále jsou pro každou oblast modelování vytvořeny podrobné skupinové modely malými skupinami a jsou prezentovány pro vzájemné hodnocení . Je vybrán jeden nebo více z navrhovaných modelů, aby se stal modelem pro každou oblast domény. Modely doménových oblastí jsou postupně sloučeny do celkového modelu.

Sestavte seznam funkcí

Znalosti shromážděné během počátečního modelování slouží k identifikaci seznamu funkcí pomocí funkčního rozložení domény na předmětné oblasti. Předmětné oblasti obsahují obchodní činnosti a kroky v rámci každé obchodní činnosti tvoří základ pro kategorizovaný seznam funkcí. Funkce v tomto ohledu jsou malé části funkcí oceňovaných klientem vyjádřených ve formě „<action> <result> <object>“, například: „Vypočítat celkovou částku prodeje“ nebo „Ověřit heslo uživatele“. Dokončení funkcí by nemělo trvat déle než dva týdny, jinak by měly být rozděleny na menší kousky.

Plánujte podle funkce

Po seznam funkcí je dokončena, je dalším krokem k vytvoření plánu rozvoje a přiřadit vlastnictví funkcí (nebo sady funkcí) jako tříd na programátory .

Design podle funkce

Pro každou funkci je vytvořen designový balíček. Hlavní programátor vybere malou skupinu funkcí, které mají být vyvinuty do dvou týdnů. Spolu s příslušnými vlastníky tříd hlavní programátor vypracuje podrobné sekvenční diagramy pro každou funkci a upřesní celkový model. Dále jsou sepsány prology třídy a metody a nakonec je provedena kontrola návrhu .

Stavět podle funkce

Poté, co je naplánována úspěšná kontrola návrhu pro každou aktivitu k vytvoření funkce, vlastníci tříd vytvoří kód pro své třídy. Po testování jednotek a úspěšné kontrole kódu je dokončená funkce povýšena na hlavní verzi.

Milníky

Vzhledem k tomu, že funkce jsou malé, je dokončení funkce relativně malým úkolem. Pro přesné hlášení stavu a sledování projektu vývoje softwaru je důležité označit pokrok dosažený u každé funkce. FDD proto definuje šest milníků na funkci, které mají být dokončeny postupně. První tři milníky jsou dokončeny během aktivity Design By Feature a poslední tři jsou dokončeny během aktivity Build By Feature . Ke sledování pokroku je každému milníku přiřazeno úplné procento. V tabulce níže jsou uvedeny milníky a jejich procento dokončení. V okamžiku, kdy začíná kódování, je funkce již 44% dokončena (postup domény 1%, návrh 40% a kontrola návrhu 3% = 44%).

Tabulka 1: Milníky
Návod na doménu Design Kontrola designu Kód Kontrola kódu Povýšit na stavbu
1% 40% 3% 45% 10% 1%

Osvědčené postupy

Vývoj založený na funkcích je postaven na základní sadě osvědčených postupů softwarového inženýrství zaměřených na perspektivu funkcí oceňovaných klientem.

  • Modelování doménových objektů . Doména Objektové modelování spočívá v prozkoumání a vysvětlení domény problému, který má být vyřešen. Výsledný objektový model domény poskytuje celkový rámec, do kterého lze přidávat funkce.
  • Vyvíjí se podle funkce . Jakákoli funkce, která je příliš složitá na to, aby byla implementována do dvou týdnů, se dále rozkládá na menší funkce, dokud není každý dílčí problém dostatečně malý, aby se dal nazvat funkcí. To usnadňuje poskytování správných funkcí a rozšiřování nebo úpravy systému.
  • Vlastnictví individuální třídy (kódu) . Vlastnictví individuální třídy znamená, že jednomu vlastníkovi jsou přiřazeny různé části nebo seskupení kódu. Vlastník je zodpovědný za konzistenci, výkonnost a koncepční integritu třídy.
  • Feature Teams . Funkční tým je malý, dynamicky vytvořený tým, který vyvíjí malou aktivitu. Na každé návrhové rozhodnutí se vždy vztahuje více myslí a než se vybere, vyhodnotí se více možností návrhu.
  • Kontroly . Kontroly se provádějí s cílem zajistit kvalitní design a kód především zjišťováním vad.
  • Správa konfigurace . Správa konfigurace pomáhá s identifikací zdrojového kódu pro všechny funkce, které byly k dnešnímu dni dokončeny, a udržováním historie změn tříd, jak je vylepšují týmy funkcí.
  • Pravidelné stavby . Pravidelné sestavení zajišťuje, že vždy existuje aktuální systém, který lze klientovi předvést, a pomáhá včas upozornit na chyby integrace zdrojového kódu funkcí.
  • Viditelnost pokroku a výsledků . Manažeři řídí projekt pomocí častých, vhodných a přesných hlášení o pokroku ze všech úrovní uvnitř i vně projektu na základě dokončené práce.

Metamodel (Metamodelling)

Procesně-datový model pro FDD

Metamodelling pomáhá vizualizovat jak procesy, tak data metody . To umožňuje porovnávání metod a fragmenty metod v procesu inženýrství metod lze snadno znovu použít. Použití této techniky je v souladu se standardy UML .

Levá strana modelu metadat ukazuje pět základních činností zapojených do projektu vývoje softwaru pomocí FDD. Všechny činnosti obsahují dílčí činnosti, které odpovídají dílčím aktivitám v popisu procesu FDD. Pravá strana modelu ukazuje související koncepty. Tyto koncepty pocházejí z aktivit zobrazených na levé straně diagramu.

Použité nástroje

  • Dokumenty . Doc Sheets je komerční podnikový nástroj pro vývoj založený na funkcích.
  • TechExcel DevSuite . TechExcel DevSuite je komerční sada aplikací, která umožňuje vývoj založený na funkcích.
  • Nástroje FDD . Projekt FDD Tools si klade za cíl vytvořit open-source, multiplatformní sadu nástrojů podporující metodiku Feature Driven Development.
  • Prohlížeč FDD . FDD Viewer je nástroj pro zobrazení a tisk parkovišť.

Viz také

Reference

  • 1. ^ Coad, P. , Lefebvre, E. & De Luca, J. (1999). Modelování Java barevně s UML: Podnikové komponenty a proces . Prentice Hall International. ( ISBN  0-13-011510-X )
  • 2. ^ Palmer, SR, & Felsing, JM (2002). Praktický průvodce vývojem na základě funkcí . Prentický sál. ( ISBN  0-13-067615-2 )

externí odkazy