Feature Driven Development



Podobne dokumenty
Inne spojrzenie na wytwarzanie SI ZWINNE METODOLOGIE.

Główne założenia XP. Prostota (Simplicity) Komunikacja (Communication) Sprzężenie zwrotne (Feedback) Odwaga (Agressiveness)

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Programowanie zespołowe

Lekkie metodyki. tworzenia oprogramowania

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

Projektowanie systemów informatycznych. wykład 6

Zarządzanie projektami. Porównanie podstawowych metodyk

Programowanie Zespołowe

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Zagadnienia. Inżynieria Oprogramowania

Agile Project Management

Wstęp do zarządzania projektami

Inżynieria oprogramowania II

Etapy życia oprogramowania

Zasady organizacji projektów informatycznych

Wstęp do zarządzania projektami

Wstęp do zarządzania projektami

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Egzamin / zaliczenie na ocenę*

Zagadnienia. Inżynieria Oprogramowania

Programowanie Zespołowe

SCRUM niełatwe wdrażanie metodyki w praktyce. Adam Krosny

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Testujemy dedykowanymi zasobami (ang. agile testers)

Zakres wykładu. Podstawy InŜynierii Oprogramowania

1/ Nazwa zadania: Dostawa, wdrożenie i serwis informatycznego systemu zarządzania projektami dla Urzędu Miejskiego Wrocławia wraz ze szkoleniem.

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

Narzędzia CASE dla.net. Łukasz Popiel

PRZEWODNIK PO PRZEDMIOCIE

MSF. Microsoft Solution Framework

Scaling Scrum with SAFe. Małgorzata Czerwińska

Wytwarzanie oprogramowania

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Opis metodyki i procesu produkcji oprogramowania

Program szkolenia: Wprowadzenie do Domain Driven Design dla biznesu (część 0)

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Podstawy programowania III WYKŁAD 4

Opis realizacji dla czterech zespołów (4 przypadki użycia)

REFERAT PRACY DYPLOMOWEJ

Metody zwinne można stosować głównie dla niezbyt dużych systemów. Metody zwinne to: -Metodyka Crystal (Crystal family)

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Metodyki programowania. Tomasz Kaszuba 2015

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Tworzenie gier na urządzenia mobilne

Jarosław Żeliński analityk biznesowy, projektant systemów

Projektowanie oprogramowania. Termin zajęć: poniedziałek, a podstawie materiału ze strony.

Część I - Załącznik nr 7 do SIWZ. Warszawa. 2011r. (dane Wykonawcy) WYKAZ OSÓB, KTÓRYMI BĘDZIE DYSPONOWAŁ WYKONAWCA DO REALIZACJI ZAMÓWIENIA

Wprowadzenie do metodyki SCRUM. mgr inż. Remigiusz Samborski Instytut Informatyki Politechnika Wrocławska

PRZEWODNIK PO PRZEDMIOCIE

Zarządzanie projektami. Wykład 2 Zarządzanie projektem

Testowanie oprogramowania

Jarosław Kuchta. Projektowanie Aplikacji Internetowych. Wprowadzenie

Ewolucyjna architektura

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami

Jak zostać dobrym analitykiem? Wpisany przez RR Nie, 21 paź 2012

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Łatwa czy niełatwa droga do celu? - wdrożenie COSMIC w ZUS

szkolenia pod drzewem Wybrane Techniki XP bnd 2008 Tomasz Włodarek. Materiał udostępniany na podstawie licencji Creative Commons (by-nc-nd) 1.00.

PROJEKTOWANIE ZORIENTOWANE NA UŻYTKOWNIKA W METODYCE SCRUM. Hubert Wawrzyniak Grupa Allegro

AL 1302 ZARZĄDZANIE PROJEKTAMI W OPARCIU O METODYKĘ PRINCE2

Wykład 1 Inżynieria Oprogramowania

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

PRZEWODNIK PO PRZEDMIOCIE

Podejście tradycyjne. plan wykonanie sekwencyjna natura wykonywanych zadań

Grupa treści kształcenia, w ramach której przedmiot jest realizowany Przedmiot kierunkowy

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Jak uchronić architekturę i wymagania przed chaosem? Warszawa, 27 stycznia 2016 roku

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

Maciej Oleksy Zenon Matuszyk

E-ID1S-08-s5. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Rozdział 5: Zarządzanie testowaniem. Pytanie 1

Wprowadzenie w tematykę zarządzania projektami/przedsięwzięciami

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

Zarządzanie projektami w NGO

Wykaz osób w postępowaniu o udzielenie zamówienia publicznego nr 32-CPI-WZP-2244/13. Podstawa do dysponowania osobą

Szkolenie 1. Zarządzanie projektami

Zaawansowane programowanie w języku C++

ZARZĄDZANIE PROCESEM TESTOWYM (SQAM Test Manager) 7-8 luty 2008, Warszawa Zdobądź z nami certyfikat SQAM Test Manager.

e R gulamin Kuźni Talentów

Faza analizy (modelowania) Faza projektowania

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Wybór ZSI. Zakup standardowego systemu. System pisany na zamówienie

Wprowadzenie w tematykę zarządzania przedsięwzięciami/projektami. dr inż. Agata Klaus-Rosińska

PRZEWODNIK PO PRZEDMIOCIE

INŻYNIERIA OPROGRAMOWANIA

Szkolenia zgodne z sylabusem ISTQB.

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Piotr Ślęzak. Gdzie się podziała jakość

NAJLEPSZE STRATEGIE SKUTECZNYCH PROGRAMISTÓW. TECHNIKI PRACY Z KODEM KOD: NSKOD

Zarządzanie zadaniami w projektach informatycznych na przykładzie systemu Trac. Integracja z Eclipse.

Poniższy program może być skrócony do 1 dnia lub kilkugodzinnej prezentacji.

Języki i metodyka oprogramowania

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

RUP. Rational Unified Process

Transkrypt:

Feature Driven Development lekka metodyka tworzenia oprogramowania Kasprzyk Andrzej IS II

Wstęp Feature Driven Development (FDD) to metodyka tworzenia oprogramowania, która wspomaga zarządzanie fazami analiz, projektowania i konstrukcji oprogramowania. Główną cechą FDD jest realizacja projektu w krótkich iteracjach wynikających z wymagań użytkownika. FDD została opracowana w 1998 roku przez Jeffa De Luca i Petera Coada. FDD jest, obok extreme Programming, Scrum, Agile Modeling, przedstawicielem tzw. lekkich metodyk tworzenia oprogramowania, które w ostatnich latach zdobywają coraz większą popularność. Metody te, kładące nacisk na komunikację między członkami zespołu i klientami oraz elastyczność w doborze technik, pozwalają na szybsze dostarczanie zamówionego produktu przy zachowaniu odpowiedniej jakości.

Istota FDD Głównym elementem FDD jest pojęcie cechy (ang. feature) produktu. Cecha to mały fragment funkcjonalności produktu, mający wartość z punktu widzenia klienta, tzn. dostarczający interesujących dla niego wyników. Cecha powinna być na tyle mała, aby czas jej realizacji nie przekraczał 2 tygodni. Cechy są sposobem opisu wymagań funkcjonalnych klienta.

Kluczowe role w FDD menadżer projektu, eksperci dziedzinowi, główny architekt, menadżer programistów, główni programiści, właściciele klas.

Menadżer projektu jest odpowiedzialny za całość projektu. Zarządza zakresem, harmonogramem oraz zasobami.

Eksperci dziedzinowi są nimi użytkownicy, klienci, sponsorzy, analitycy biznesowi lub dowolne ich połączenie. Ich zadaniem jest przekazanie programistom wiedzy na temat wymaganej funkcjonalności systemu.

Główny architekt jest odpowiedzialny za ogólny projekt systemu. Jest to techniczna funkcja wymagająca doskonałych umiejętności technicznych i analitycznych, jak również zdolności komunikacyjnych z ekspertami i pozostałymi członkami zespołu projektowego.

Menadżer programistów jest odpowiedzialny za zarządzanie całym zespołem programistów. Jego głównym zadaniem jest rozwiązywanie konfliktów o zasoby między pracującymi współbieżnie podzespołami.

Główny programista jest doświadczonym programistą, który jest odpowiedzialny za implementację przydzielonego mu zbioru cech produktu. Bierze aktywny udział w analizie wymagań oraz projektowaniu architektury rozwiązania. Kieruje podzespołem złożonym z 3-6 programistów przypisanych do realizacji danego zbioru cech.

Właściciele klas to programiści, którzy pracują pod kierownictwem głównego programisty. Ich zadaniem jest projektowanie szczegółowe, kodowanie, testowanie i dokumentowanie cech produktu.

Fazy procesu FDD Kliknij, aby edytować style wzorca tekstu Drugi poziom Trzeci poziom Czwarty poziom Piąty poziom

Fazy procesu FDD tworzenie ogólnego modelu, budowanie listy cech, planowanie implementacji cech, projektowanie, implementacja.

Faza 1- Tworzenie ogólnego modelu Zadaniem tego etapu jest stworzenie ogólnego modelu funkcji biznesowych realizowanego produktu (ang. an overall model). Ogólny model powinien dostarczać wiedzę o wszystkich wymaganych funkcjach bez specjalnego zagłębiania się w szczegóły. Jest on wspólnym dziełem analityków i programistów oraz przyszłych użytkowników, którzy są najlepszymi ekspertami z dziedziny produktu. Zaangażowanie użytkownika ma kluczowe znaczenie dla sukcesu projektu. Pozwala na wspólne rozumienie problemów przez użytkowników i programistów oraz minimalizuje niejawne założenia czynione prze jedną lub drugą stronę.

Tworzenie ogólnego modelu cd. stworzenie zespołu projektowego pod kierownictwem Głównego Architekta, przeprowadzenie przeglądu dziedziny problemu, studiowanie dokumentów z wymaganiami i z dziedziny problemu, przygotowanie alternatywnych modeli w oddzielnych małych grupach projektowych, wypracowanie wspólnego modelu, zatwierdzenie ogólnego modelu, zadokumentowanie istotnych założeń dotyczących projektu i alternatywnych rozwiązań.

Faza 2 Budowanie listy cech W oparciu o model opracowany w fazie 1 tworzona jest lista cech produktu (ang. feature list), które zapewnią dostarczenie wymaganej przez klienta funkcjonalności. W pierwszym kroku wyodrębnia się obszary przedmiotowe odpowiadające głównym fragmentom funkcjonalnym. Następnie każdy obszar przedmiotowy jest dzielony na poszczególne aktywności, czyli zbiory cech. Każdy krok w aktywności jest identyfikowany jako cecha. W wyniku tego kroku powstaje hierarchicznie uporządkowana lista cech produktu.

Faza 3 Planowanie implementacji cech Ma na celu przygotowanie planu określającego w jakiej kolejności cechy będą implementowane (ang. plan by feature). W tym procesie brane są pod uwagę takie czynniki jak priorytet danej cechy, zależności między cechami, złożoność implementacyjna oraz stopień obciążenia zespołu programistów. Ważnym kryterium jest również podział całego projektu na zewnętrznie obserwowalne etapy, czyli kroki milowe (ang. milestones) w projekcie. Efektem tej fazy jest plan implementacji, który określa datę (miesiąc, rok) realizacji każdego zbioru cech. Za każdy zbiór cech jest odpowiedzialny wyznaczony Główny Programista. Znany jest również przydział poszczególnych klas programistom, którzy będą je realizowali. Realizacja zadań w tej fazie składa się z:

Planowanie implementacji cech cd. sformowania zespołu planującego, określenia kolejności implementacji, przypisania zbioru cech do Głównych Programistów, przypisania klas do programistów.

Faza 4 i 5 Projektowanie i implementacja Istotą FDD jest dostarczanie kolejnych, działających wersji produktu w krótkich iteracjach składających się z projektowania szczegółowego (ang. design by feature) oraz implementacji (ang. build by feature) wybranego zbioru cech produktu. Cechy zakwalifikowane do realizacji w danej iteracji są przydzielane do realizacji dynamicznie tworzonym zespołom programistów (ang. feature team). Taki mały zespół typowo składa się z 2-3 programistów. Zadaniem zespołu jest implementacja małego zbioru cech. Kod danej cechy jest pisany przez członka zespołu, któremu została przypisana klasa biznesowa związana z funkcjonalnością danej cechy. Napisany kod podlega przeglądowi przez pozostałych członków zespołu. Po pomyślnym wykonaniu testów jednostkowych nowy kod nadaje się do integracji z resztą produktu, który staje się bogatszy o kolejną cechę.

Projektowanie sformowanie zespołu programistów pod kierunkiem Głównego Programisty, opcjonalny przegląd dziedziny problemu i studiowanie dokumentów referencyjnych, stworzenie diagramów sekwencji (ang. sequence diagram), uszczegółowienie modelu obiektowego, zapisanie nagłówków klas i metod, inspekcja projektu.

Implementacja implementacja kodu klas, przeprowadzenie inspekcji kodu, testowanie jednostkowe, integracja nowego kodu z produktem.

Najlepsze praktyki FDD podobnie jak inne lekkie metody bazuje na zbiorze najlepszych praktyk (ang. best practices), których stosowanie w połączeniu ze zdefiniowanym procesem tworzenia oprogramowania zapewnia efektywne wykonanie projektu. Kluczowe dla FDD są następujące praktyki:

Najlepsze praktyki cd. oparcie procesu o wymagania klienta, architektura systemu, krótkie iteracje, indywidualna odpowiedzialność za kod, inspekcje, regularne budowanie produktu, zarządzanie konfiguracją, raportowanie i widoczność wyników.

Podsumowanie W pracy przedstawiono Feature Driven Development. FDD bazuje na uznanym zbiorze najlepszych praktyk promowanych jako panaceum na problemy z efektywną realizacją projektów informatycznych. Dobrze zdefiniowany proces bardzo mocno zorientowany na implementację oczekiwanej przez klienta funkcjonalności, precyzyjnie opisane role i odpowiedzialności członków zespołu oraz wsparcie dla zarządzania projektem czyni FDD godnym polecenia dla firm chcących usprawnić swój proces tworzenia oprogramowania. Przydatność FDD potwierdziła się w wielu projektach realizowanych również przez autorów metodyki, które zakończyły się sukcesem.

Dziękuję za uwagę.