05 XPid 5888 ppt

background image

WOJSKOWA AKADEMIA TECHNICZNA

WOJSKOWA AKADEMIA TECHNICZNA

WYDZIAŁ CYBERNETYKI

WYDZIAŁ CYBERNETYKI

eXtreme Programming

eXtreme Programming

lekka metodyka wytwarzania oprogramowania

lekka metodyka wytwarzania oprogramowania

Autor: Rafał KASPRZYK

Autor: Rafał KASPRZYK

background image

Plan prezentacji

Syndrom LOOP, Manifest zwinności

Programowanie Ekstremalne

Cztery wartości, którym hołduje XP

Podstawowe praktyki

Model procesu wytwarzania
oprogramowania wg XP

Zespół

Zalety i wady XP

background image

Syndrom LOOP

L

O

O

P

ate
(

późno

)

oor quality (

kiepska

jakość

)

ver budget (

przekroczony

budżet

)

vertime (

nadgodziny

)

Loop

background image

Luty 2001, Snowbird,
Utah, 17 osób

Kent Beck (

karty CRC,

xUnit, XP

)

Alistair Cockburn (

rodzina

metodyk Crystal

)

Marin Fowler (

refaktoryzacja,

UML Distilled

)

Jim Highsmith (

Adaptive Software

Development

)

Manifest zwinności

background image

Manifest zwinności

Jednostki i interakcje niż procesy i
narzędzia

Działające oprogramowanie niż
obszerna dokumentacja

Współpraca klienta niż negocjacja
kontraktu

Nadążanie za zmianami

Nadążanie za zmianami

niż trzymanie się

niż trzymanie się

planu

planu

Ważniej

sze:

background image

eXtreme Programming

(1/2)

nowa tzw. lekka (ang. lighweight lub agile)
metodyka wytwarzania oprogramowania

opiera się na zbiorze zasad i sugestii, które
powinny być praktykowane

programowanie wraz z powstałym w jego wyniku
kodem są najważniejsze, kod jest zawsze
jednoznacznym i formalnym opisem systemu

dąży do poprawy jakości kodu

dyscyplina programowania, dyscyplina pracy
grupowej oraz dyscyplina pracy z klientem

background image

eXtreme Programming

(2/2)

Ekstremalne potraktowanie pewnych znanych
od dawna zasad o których wiadomo, że są
dobre, sprawdzone i skuteczne:

weryfikacja kodu

testowanie

iteracyjne tworzenie małych wydań

Prostota

zasady te muszą być stosowane w sposób ciągły

„…skuteczny, bezpieczny, elastyczny, naukowy
i przyjemny sposób programowani” (Kent Beck)

background image

XP

kontra inne metodyki

Wczesne, konkretne i ciągłe informacje zwrotne w
krótkich cyklach programowania

Planowanie przyrostowe

Zdolność do elastycznego projektowania i
implementacji funkcjonalności w zależności od
dynamicznie zmieniających się wymagań

Opieranie się na komunikacji słownej i kodzie
źródłowym oprogramowania w celu przekazania
intencji programistów i klientów

Zapewnienie bliskiej współpracy programistów

Promowanie prostoty rozwiązań i iteracyjnego
procesu poprawy zaimplemetowanych rozwiązań

background image

Wartości i praktyki

XP

Na XP składają się 4 wartości, którym hołduje: komunikacja,
prostota, informacja zwrotna i odwaga, a także 12 praktyk: gra
planistyczna, krótkie okresy wydania kolejnych wersji, metafora,
prosty projekt systemu, testowanie przed kodowaniem,
refaktoryzacja, programowanie w parach, współwłasność kodu,
ciągła integracja, brak nadgodzin, udział klienta w zespole i
standard kodowania.
Wspomniane

wartości opisują cel

wartości opisują cel, który przyświeca

Programowaniu Ekstremalnemu: tworzenie oprogramowania o
wysokiej jakości za pomocą prostych środków, przy uczciwej
komunikacji wewnątrz zespołu i w relacji z klientem, ciągłej
orientacji na potrzeby klienta oraz odważnym podejmowaniu
trudnych decyzji.

Praktyki stanowią implementację podanych wartości

Praktyki stanowią implementację podanych wartości. Są
one ze sobą ściśle związane i wspólnie realizują założone cele. By
można powiedzieć, że w pełni realizuje się metodykę XP należy
stosować wszystkie 12 praktyk.

background image

4 wartości

XP

Komunikacja

Ścisła, bezpośrednia współpraca wewnątrz zespołu i zespołu z klientem

Prostota

Poszukiwanie najprostrzego rozwiązania spełniającego wyznaczone

założenia. „Konstruktor wie, iż osiągną doskonałość nie wtedy, gdy nic

już nie można dodać, lecz wtedy, gdy już nic nie da się ująć.”

Informacja zwrotna

Szybkie iteracje i bezpośredni kontakt umożliwiają uzyskanie niemalże

natychmiastowych informacji na temat stanu projektu i aktualnie

istniejących zagrożeń

Odwaga

Szybkie podejmowanie decyzji w oparciu o zebrane informacje,

agresywne i zachęcające podejście do zmian mogących wpłynąć na

jakość, termin i koszt oprogramowania wspierane przez pozostałe trzy

wartości

background image

Praktyki

XP

Praktyki wspierające wartości XP podzielone

zostały na następujące obszary:

Planowanie

Projektowanie

Kodowanie

Testowanie

W odróżnieniu od innych metodyk XP nie ma

wyraźnego podziału na fazy, w których

realizowane są zadania z poszczególnych

obszarów tzn. planujemy, projektujemy,

implemetujemy i testujemy przez cały czas

background image

Planowanie i definicja
wymagań

W Programowaniu Ekstremalnym planuje się tylko najbliższą przyszłość –

jeden przyrost funkcjonalności lub jedno wydanie. XP wyraża przekonanie,
że im odleglejsze plany, tym mniej są one prawdopodobne. Dlatego
ważniejsze jest precyzyjne planowanie krótkoterminowe niż obarczone
dużym błędem prognozy w dalszym horyzoncie czasowym. Trzy praktyki,
które znajdują się w tej grupie, są bardzo charakterystyczne dla XP.

Gra planistyczna – technika planowania i negocjacji. Podstawowym jej

celem jest oszacowanie każdej pojedynczej historii użytkownika, czyli
poszczególnych zadań jakie ma realizować cały system. Podczas gry
planistycznej klient określa, które historie są dla niego najważniejsze i które
z nich powinny być zrealizowane w pierwszej kolejności. W rezultacie
powstaje spis funkcji systemu, które będą do niego dodawane w ramach
kolejnych wydań produktu

Metafora systemu - nieformalnym opisem systemu, jego zachowania i

środowiska w którym będzie pracował. Jej głównym odbiorcą jest klient, dla
którego powinna być zrozumiała. Metaforę tworzą wspólnie wszyscy
uczestnicy przedsięwzięcia. Stanowi ona pomost między klientem i
programistami

Udział klienta w zespole - możliwość konsultacji z klientem „na żywo”

background image

Projektowanie

Projekt powstaje tuż przed kodowaniem i powinien

obejmować tylko tę funkcjonalność, która właśnie ma
zostać zaimplementowana. Kod programu jest także
jedynym dokumentem projektowym.

Prosty projekt – należy zawsze stosować rozwiązanie
najprostrze z możliwych. Zakłada się, że wymagania klienta,
rynku i sytuacji w branży ciągle się zmieniają. Należy więc jak
najszybciej osiągnąć satysfakcję klienta przez dostarczenie
oprogramowania spełniającego postawione wymagania.
Programista implementując daną historię użytkownika stara się
osiągnąć sukces przy minimalnych nakładach. Jeżeli klient chce
dodać nową funkcjonalność musi dodać nową historię, jej koszt i
pozycja na liście ważności ustalana jest w wyniku kolejnej gry
planistycznej

background image

Kodowanie (1/2)

Kodowanie jest najważniejszą czynnością w XP. Dotychczas, w

miarę rozwoju klasycznych metod inżynierii oprogramowania,

było ono stopniowo zaniedbywane. XP wraca do źródeł. To w

trakcie programowania powstają jedyne udokumentowane

artefakty (kod i przypadki testowe). Dlatego największa liczba

praktyk dotyczy właśnie programowania.

Małe wydania – wydanie to działający produkt realizujący określone

funkcje. W kolejnych wydaniach funkcjonalność jest rozwijana i

uzupełniana aż do osiągnięcia stanu docelowego. Małe wydania to

częste akceptacje powstającego systemu przez klienta. Zawsze istnieje

sprawnie działająca wersja, a klient nie musi długo czekać na kolejną

Standard kodowania – powinien być ustalony przez całą grupę. Jeśli

ktoś nie chce się zgodzić ze swojego przyzwyczajenia, a grupa nie może

zaakceptować jego propozycji, nie może uczestniczyć w projektach

realizowanych przy pomocy XP. Samych komentarzy w kodzie powinno

być niewiele. Klasy powinny być tak zaprojektowane by przeznaczenie

poszczególnych metod było jednoznaczne, a działanie oczywiste

background image

Kodowanie (2/2)

Refaktoryzacja – zmiana struktury kodu bez zmiany realizowanej przez

niego funkcjonalności. Stosuje się ją wówczas, gdy dodawanie kolejnych

funkcji staje się coraz trudniejsze. Opiera się na wzorcach projektowych.

Warunkiem skutecznego przeprowadzania refaktoryzacji jest ponowne

przetestowanie działania kodu po dokonaniu zmian.

Współwłasność kodu – wspólna odpowiedzialność za powstały kod. Jeśli

trzeba coś zmodyfikować to nie ma problemu bo każdy jest w stanie tego

dokonać. Uniezależnienie od fluktuacji pracowników, poczucie efektu synergii

oraz integracja zespołu to kolejne plusy

Ciągła integracja – najczęściej stosuje się oddzielną maszynę, na której w

danej chwili może pracować jedna osoba zajmująca się łączenie kodu. Ciągłe

łączenie jest ułatwione dzięki prostym projektom, ciągłym testom i wspólnej

odpowiedzialności za kod.

Programowanie w parach – podczas gdy jedna osoba „trzyma klawiaturę”,

druga na bieżąco go sprawdza, sugeruje możliwe rozwiązania, może służyć

pomocą i zwraca uwagę na błędy. Dobrze jeżeli pary między sobą się

zmieniają oraz programiście wewnątrz pary, co pomaga propagować wiedzę

o różnych fragmentach programu na całą grupę

Brak nadgodzin – zespół powinien być przyzwyczajony do stałej wydajności

i stałego obciążenia. XP wymaga powtarzalności i regularności. Ponadto XP

kładzie duży nacisk na umotywowanie programistów, którzy muszą być

świadomi celu oraz metod jego osiągnięcia oraz czują się

współodpowiedzialni

Zawsze to mówiłem

background image

Testowanie

Ciągłe testowanie - Programowanie Ekstremalne

przewiduje dwa rodzaje testów: jednostkowe i

funkcjonalne. Testy funkcjonalne służą stwierdzeniu, czy

funkcjonalność wymagana przez klienta została

zaimplementowana poprawnie. Testy jednostkowe są

pisane i wykonywane przez programistów w celu

stwierdzenia, czy dany fragment kodu daje poprawne

wyniki. Testowanie powinno być procesem ciągłym. Nie

powinno się pisać żadnego kodu, dopóki nie wie się, jak

go przetestować. Programista jeszcze przed napisaniem

kodu realizującego daną funkcję, ma obowiązek

przygotować zestaw testów jednostkowych.

Zaprojektowane przypadki testowe powinny być

utrzymywane (tzn. powiązane z zaimplementowanymi

opowieściami użytkownika) i uruchamiane za każdym

razem, gdy następuje integracja nowych funkcji z

systemem.

Error

background image

Model procesu
wytwarzania

background image

Pojedyncza iteracja

background image

Kodowanie (1/2)

background image

Kodowanie (2/2)

background image

Kluczowe praktyki

Udział klienta w zespole Programowanie parami

Refaktoryzacja

Ciągła integracja

Ciągłe testowanie

background image

Zespół

XP

Programista – celem jego pracy jest stworzenie oprogramowania. Bierze on czynny udział w procesie

projektowania oraz sterowania wykonaniem. Musi mieć świadomość pracy w zespole, w którym jest

współodpowiedzialny za powstający system. Programista musi w związku z tym posiąść pewne umiejętności, które

nie są wymagane w innych metodykach, nie tylko takie jak testowanie oraz refaktoring, ale zdolność łatwego

komunikowania się i nawyk prostoty.

Klient - zajmuje szczególnie ważne miejsce. Bierze on udział przy projektowaniu (gry planistyczne) oraz przy

testowaniu (testy akceptacyjne). Ponadto kontroluje wykonanie aplikacji (choć nie może nim sterować) i podejmuje

decyzje o kolejności realizacji modułów. W czasie realizacji projektu może okazać się potrzebny by rozstrzygać

kwestie sporne i wyjaśniać problemy.

Tester - Spełnia funkcję kontrolną wobec programisty, ale nie na zasadzie ustawiania się w opozycji do niego. Jego

zadanie jest regularne uruchamianie testów i publiczne ogłaszanie ich wyników.

Konsultant czasem potrzebna jest określona wiedza specjalistyczna. Zespół nie powinien wtedy tracić czasu na

poszukiwanie rozwiązania, lecz powinien uzyskać je od konsultanta. Aby praca była maksymalnie wydajna zespół

musi rzetelnie i precyzyjnie opisać problem.

Trener – musi utrzymać zespół na właściwej drodze do rozwiązania. Aby to zrobić musi posiadać doświadczenie,

musi głęboko rozumieć istotę XP i potrafić dobrze nim sterować. Często trener musi być dostępny jako partner do

programowania dla mniej doświadczonych.

Zarządca – jest odpowiedzialny za właściwe szacowanie. Kontroluje czy oczekiwania mają odzwierciedlenie w

rzeczywistości. Śledzi obciążenie i jakość oszacowań (na podstawie danych z przeszłości) każdego programisty. Jako

„historyk” zespołu prowadzi dziennik testów funkcjonalnych, wykrytych wad osób za nie odpowiedzialnych i testów,

które pozwoliły je wykryć.

Szef - ma prawo wymagać rzetelnej komunikacji z zespołem. Jeśli coś idzie nie tak powinien być natychmiast

poinformowany. Może wtedy zaproponować pewne rozwiązania, ale nie ma władzy nad terminarzem projektu. To

zespół określa warunki realizacji na podstawie środków zapewnionych przez szefa. Zespół ma prawo oczekiwać od

szefa odwagi, zaufania, zrozumienia i szybkich, kompetentnych decyzji.

W Ekstreme Programming zespół jest wspólnotą ludzi, którzy razem dążą do

celu. Ważne jest, aby wzajemnie się rozumieli i mieli silne poczucie więzi. W
zespole oprócz programistów są też inne osoby, odpowiedzialne za
zarządzanie oraz pomagające rozwiązywać szczególnie trudne problemy.

background image

Kiedy nie należy stosować

XP

Jeżeli wykorzystywana metodyka umożliwia produkcję

oprogramowania w sposób satysfakcjonujący Klientów i

członków grupy projektowej

Klient żąda dokumentacji w postaci jaką dają tzw. „ciężkie

metodyki”

W bardzo dużych zespołach

Gdy programiści nie są na tyle dojrzali by móc oddać w ich

ręce władzę nad sterowaniem projektem

Programiści nie czują się dobrze gdy ktoś im „patrzy na ręce”

W przypadku gdy wymagania nie ulegają zmianie

Brak uzyskania szybko informacji zwrotnej na temat

dostarczanych w ramach wydań kolejnych wersji

projektowanego systemu

Jak rozwiązać te problemy

i zachować zwinność?

background image

Kiedy należy stosować

XP

Wymagania dotyczące systemu nie są

ustabilizowane i mogą ulegać częstym zmianom

(nawet po dostarczeniu i wdrożeniu systemu)

Istniejąca grupa programistów składa się z z

programistów o wysokich umiejętnościach

Wymagana jest większa efektywność pracy zespołu

projektowego

Działający system ma większe znaczenie niż jego

dokumentacja

W każdym innym przypadku niż przedstawione

na poprzednim slajdzie, a w szczególności gdy:

Tom

Tom

DeMarco

DeMarco

„XP jest

dzisiaj

najważniejszy

m ruchem w

IT."

background image

Pytania

background image

Error


Document Outline


Wyszukiwarka

Podobne podstrony:
05 Dokumenty w h z 12 05 08id 5675 ppt
05 GINZBERGid 5691 ppt
05 Reklamaid 5555 ppt
05 Wstrzasid 5598 ppt
06 Zwyczaje i formuly 14 05 08id 6462 ppt
05 Zapaleniaid 5599 ppt
05 3id 5455 ppt
05 leasingid 5734 ppt
B S Imperatyw wzrostu innowacyjnośći prezent PAN 16 05 09 II ppt
07 Targi 19 05 08id 6983 ppt
10 Polecenie wyplaty[1] Inkaso Akredytywa 26 05 08id 11008 ppt
05 Mocid 5758 ppt
05 Dokumenty w h z 12 05 08id 5675 ppt
05 Badanie diagnostyczneid 5649 ppt
05 Instrukcje warunkoweid 5533 ppt
05 IG 4id 5703 ppt
05 xml domid 5979 ppt

więcej podobnych podstron