FeatureDriven Development FDD Luk imon FDD FeatureDriven Development

  • Slides: 27
Download presentation
Feature-Driven Development (FDD) Lukáš Šimon

Feature-Driven Development (FDD) Lukáš Šimon

FDD – Feature-Driven Development § Patrí do rodiny agilných metód (proces) vývoja softvéru spolu

FDD – Feature-Driven Development § Patrí do rodiny agilných metód (proces) vývoja softvéru spolu s metódami ako napríklad XP alebo Scrum

Prečo proces? § a čo je proces?

Prečo proces? § a čo je proces?

Čo je vlastne FDD § Súbor „best practices“ § Vložených do procesu (sformalizovaných) §

Čo je vlastne FDD § Súbor „best practices“ § Vložených do procesu (sformalizovaných) § Filozofia?

Obsah § § § Porovnanie FDD Úvod do FDD SPEM a nástroj EPFC Ako

Obsah § § § Porovnanie FDD Úvod do FDD SPEM a nástroj EPFC Ako namodelovať metódu vývoja softvéru v EPFC Ukážka modelu FDD v EPFC FDD a Softec

Porovnanie FDD § Metódy vývoja softvéru sa rozdeľujú na: § rozsiahle (heavy-weight): RUP, .

Porovnanie FDD § Metódy vývoja softvéru sa rozdeľujú na: § rozsiahle (heavy-weight): RUP, . . § agilné (agile): FDD, XP, Scrum, . . § Porovnanie FDD: § FDD je agilná metóda a na rozdiel od XP sa dá použiť aj pre veľké projekty do 500 ľudí § FDD nie je taká zložitá a byrokratická ako RUP (RUP sa oplatí implementovať až pri tímoch nad tisíc ľudí) § FDD je navrhnutá pre objektovo orientovanú paradigmu

Vznik FDD § Pri vývoji systému pre Singapurskú banku § Java Modeling In Color

Vznik FDD § Pri vývoji systému pre Singapurskú banku § Java Modeling In Color With UML (Peter Coad, Jeff De Luca)

Základná definícia § Patrí do rodiny agilných metód § V projektoch až do 500

Základná definícia § Patrí do rodiny agilných metód § V projektoch až do 500 ľudí § Vyvíjaný systém rozdeľuje na veľa nízkogranulárnych funkcií, ktoré sú pridelené do balíkov funkcií § Vývoj v krátkych iteráciach

Základná definícia § Definuje 6 kľúčových rolí v projekte § Definuje 2 fázy: inicializácia

Základná definícia § Definuje 6 kľúčových rolí v projekte § Definuje 2 fázy: inicializácia (start-up) a budovanie (construction). § Definuje 5 procesov, ku každému procesu definuje aktivity § Definuje vývoj softvéru vo veľa iteráciách v malých skupinkách (3 až 6 vývojárov) pod vedením skúseného programátora

Feature - funkcia § Nízko-granulárna funkcionalita systému vyjadrená v reči zákazníka § napríklad: vypočítaj

Feature - funkcia § Nízko-granulárna funkcionalita systému vyjadrená v reči zákazníka § napríklad: vypočítaj celkovú cenu tovaru § Implementácia každej funkcie má byť kratšia ako dva týždne, väčšinou sa má jednať iba o niekoľko dní.

Stavy a míľniky funkcie § Každej funkcii definuje tri stavy: „nezačatá“, „rozpracovaná“, „dokončená“ §

Stavy a míľniky funkcie § Každej funkcii definuje tri stavy: „nezačatá“, „rozpracovaná“, „dokončená“ § Definuje 6 míľnikov pre funkciu:

Pohľad na aktuálny stav systému § Definuje sumárny report progresu „progress summary report“ -

Pohľad na aktuálny stav systému § Definuje sumárny report progresu „progress summary report“ - aktuálny stav systému

Role § § § § Projektový manažér Hlavný architekt Manažér vývoja Hlavní programátori Vlastník

Role § § § § Projektový manažér Hlavný architekt Manažér vývoja Hlavní programátori Vlastník triedy Doménoví experti Tester a dokumentarista

FDD procesy

FDD procesy

Proces 1 - Vyviň úplný model (Develop an Overall Model)

Proces 1 - Vyviň úplný model (Develop an Overall Model)

Proces 2 - Vytvor zoznam funkcií (Build a Features List)

Proces 2 - Vytvor zoznam funkcií (Build a Features List)

Proces 3 - Plánuj podľa funkcie (Plan By Feature)

Proces 3 - Plánuj podľa funkcie (Plan By Feature)

Proces 4 - Navrhni podľa funkcie (Design by Feature)

Proces 4 - Navrhni podľa funkcie (Design by Feature)

Proces 5 - Vytvor podľa funkcie (Build by Feature)

Proces 5 - Vytvor podľa funkcie (Build by Feature)

SPEM - Software Process Engineering Metamodel § OMG (Object Management Group) štandard určený na

SPEM - Software Process Engineering Metamodel § OMG (Object Management Group) štandard určený na modelovanie softvérových metód § EPF Composer implementuje špecifikáciu SPEM § Open-source a podporovaný veľkými spol. IBM, OMG § Alternatívy BPMN, BPEL, XPDL

Proces? § Proces určuje každému členovi tímu jeho zodpovednosti a práva

Proces? § Proces určuje každému členovi tímu jeho zodpovednosti a práva

SPEM - EPFC - model

SPEM - EPFC - model

EPFC – Eclipse Process Composer § § Nástroj na popis metód vývoja softvéru Všetky

EPFC – Eclipse Process Composer § § Nástroj na popis metód vývoja softvéru Všetky informácie o procese na jednom mieste Konzistentný a spoločný slovník –štandardizáciu pri zápise procesov Zjednodušuje a urýchľuje schopnosť pochopiť procesy pre všetkých zúčastnených § Podporuje verzionovanie procesov § Export modelu do HTML § Je open-source (podporovaný IBM, OMG, . . )

Ukážka FDD v EPFC

Ukážka FDD v EPFC

Postup ako namodelovať metódu vývoja softvéru v EPFC 1. 2. 3. 4. 5. Organizácia

Postup ako namodelovať metódu vývoja softvéru v EPFC 1. 2. 3. 4. 5. Organizácia metódy Definícia projektových fáz a procesov Detailný popis projektových rolí Detailný popis identifikovaných artefaktov Definícia vlastností pre jednotlivé úlohy

Ďakujem za pozornosť

Ďakujem za pozornosť

Literatúra § A practical Guide to Feature-Driven Development (Stephen R. Palmer, John M. Felsing)

Literatúra § A practical Guide to Feature-Driven Development (Stephen R. Palmer, John M. Felsing) § www. featuredrivendevelopment. com § www. eclipse. org/epf/