31
Metody wytwarzania oprogramowania Metody wytwarzania oprogramowania 1/31

Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Metody wytwarzania oprogramowania

Metody wytwarzania oprogramowania 1/31

Page 2: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Wprowadzenie

Syndrom LOOP

I Late – PóźnoI Over budget – Przekroczono budżetI Overtime – nadgodzinyI Poor quality – kiepska jakość

Rozwiązanie:Więcej dyscypliny

Metody wytwarzania oprogramowania 2/31

Page 3: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Model CMM

WłaściwościI Departament Obrony USAI SEI, Carnegie-Mellon Univ.I 1987-97I CMMI: grudzień, 2000

Metody wytwarzania oprogramowania 3/31

Page 4: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Procedury dla CMM Poziom 2

I przeglądy zobowiązań zewnętrznych,I opracowanie planu przedsięwzięciaI szacowanie rozmiaru, pracochłonności, kosztu, krytycznych

zasobów obliczeniowych i harmonogramuI dokonywanie zmian w planieI przeglądy przedsięwzięcia przy kamieniach milowychI planowanie zapewnienia jakościI . . .

Metody wytwarzania oprogramowania 4/31

Page 5: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Krytyka podejść zorientowanych na dyscyplinę

I Dużo czasu poświęconego na administracjęI Papierowa fikcjaI Skupienie się na procesie, nie na jakości produktuI Zapis procedur utrudnia poprawy procesówI Dyscyplina zabija inicjatywę i elastyczność

Metody wytwarzania oprogramowania 5/31

Page 6: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Programowanie ekstremalne

Extreme Programming

I lekka (ang. agile) metodyka rozwoju oprogramowaniaI 1999I Kent Beck

Metody wytwarzania oprogramowania 6/31

Page 7: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Manifest zwinności

Ważniejsze:

I Jednostki i interakcje niż procesy i narzędzia, czyli ewidentniesprzeciwiają się podejściom zorientowanym na procedury idyscyplinę

I Działające oprogramowanie niż obszerna dokumentacja –stawiają na jakość produktu końcowego

I Współpraca klienta niż negocjacja kontraktuI Nadążanie za zmianami niż trzymanie się planu

Metody wytwarzania oprogramowania 7/31

Page 8: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Wartości XP

I KomunikacjaI wymagania, wyobrażenie systemuI głównie werbalna

I ProstotaI na początku najprostsze rozwiązanieI refaktoryzacja pomaga przekształcić w bardziej skomplikowane

I Sprzężenie zwrotneI w różnych wymiarach:

I systemI klientI zespół

Metody wytwarzania oprogramowania 8/31

Page 9: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Wartości XP

I OdwagaI aby nie projektować na wyrostI aby refaktoryzować kodI aby wyrzucić kod kiedy potrzeba

I SzacunekI pomiędzy członkami zespołuI czasu i pracy innych

Metody wytwarzania oprogramowania 9/31

Page 10: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Główne reguły i praktyki XP

I Struktura zespołuI Relacje z klientemI Zapewnienie jakościI Programowanie parami

Metody wytwarzania oprogramowania 10/31

Page 11: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Opowieści użytkowników

I Są wstępem do rozmowyI Są krótkieI Opisują funkcję/cechę systemuI Mają wartość dla klientaI Muszą być testowalne

Metody wytwarzania oprogramowania 11/31

Page 12: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Hydrodynamiczny model projektu

Data dostarczenia Koszt Defekty Niekompletność

Metody wytwarzania oprogramowania 12/31

Page 13: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Hydrodynamiczny model projektu

Data dostarczenia Koszt Defekty Niekompletność

Metody wytwarzania oprogramowania 13/31

Page 14: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Cykl życia w XP

I stosuj częste, krótkie wydaniaI wydanie:

I Ma wartość użytkowąI trafia do użytkowników końcowych

I Wydanie podziel na przyrostyI przyrost:

I niepusty zbiór opowieści użytkownikaI charakter wewnętrznyI 2–3 tygodnie

I Znajdź metaforę dla systemuI metafora:

I wyjaśnia działanie systemu w terminach zrozumiałych dlaklienta

Metody wytwarzania oprogramowania 14/31

Page 15: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Gra planistyczna

I KlientI Pisze opowieść

I InformatycyI Szacują opowieść

I KlientI Dzieli opowieść

Metody wytwarzania oprogramowania 15/31

Page 16: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Zarządzanie zmianą w CMM

Metody wytwarzania oprogramowania 16/31

Page 17: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Zarządzanie zmianą w XP

Metody wytwarzania oprogramowania 17/31

Page 18: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Zarządzanie zmianą w XP

Metody wytwarzania oprogramowania 18/31

Page 19: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Testy akceptacyjne

Arkusz1

Strona 1

1 2 3 4 5 6

0

2

4

6

8

10

12

14

BłądSukces

Kolejna iteracja

Lic

zba

tes

tów

Metody wytwarzania oprogramowania 19/31

Page 20: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Zapewnianie jakości

I Dbaj o prostotęI Unikaj optymalizacjiI Dla każdej jednostki kodu opracuj NAJPIERW zestaw testów,

potem pisz kodI Automatyczne wykonanie testówI Refaktoryzacja

Metody wytwarzania oprogramowania 20/31

Page 21: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Zapewnianie jakości

I Kod musi przejść wszystkie testy jednostkowe zanimprzekażesz go do eksploatacji

I Dla każdego wykrytego błędu utwórz zestaw testówI Często integruj kodI Często wykonuj testy akceptacyjne i publikuj ich wyniki

Metody wytwarzania oprogramowania 21/31

Page 22: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Programowanie parami

I Cały produkt jest kodowany w parachI Standard kodowaniaI Tylko jedna para integruje kod w danej chwiliI Pary się zmieniająI Kod jest własnością całego zespołuI System zarządzania wersjamiI Otwarta przestrzeń dla zespołu

Metody wytwarzania oprogramowania 22/31

Page 23: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Czynniki ryzyka

I Klient cały czas pracuje z zespołemI Brak dokumentacjiI Brak fazy projektowaniaI Krótka perspektywa planowania

Metody wytwarzania oprogramowania 23/31

Page 24: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Podsumowanie

Manifest zwinnościI zorientowanie na ludzi i komunikacjęI dopuszczenie zmianI jakość oprogramowania

Gra planistyczna

Programowanie parami

Wady XP

Metody wytwarzania oprogramowania 24/31

Page 25: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Geneza ewolucji oprogramowania

Zmianajest naturalnym procesem w cyklu rozwojowym oprogramowania inie można jej uniknąć

I Zmiana środowiskaI Zmiana wymagańI Potrzeba ulepszaniaI Usuwanie błędów

Metody wytwarzania oprogramowania 25/31

Page 26: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Ewolucja a pielęgnacja

Ewolucja oprogramowania:Ewolucja oprogramowania (ang. software evolution) to proceszmian zachodzących w oprogramowaniu w czasie jego życia.

Pielęgnacja oprogramowania:Pielęgnacja oprogramowania (ang. software maintenance) toczynności modyfikujące program po jego dostarczeniu i wdrożeniu.Cele:

I poprawa błędówI poprawa wydajności lub innych atrybutów programuI adaptacja produktu do zmian w środowisku operacyjnym.

Metody wytwarzania oprogramowania 26/31

Page 27: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Czynniki wpływające na koszt pielęgnacji

Czynniki wpływające na koszt pielęgnacji:

I Dziedzina zastosowań systemuI Stabilność personelu pielęgnacyjnegoI Czas życia oprogramowaniaI Stabilność sprzętuI Jakość kodu i dokumentacji

Czynniki nie wpływające na koszt pielęgnacji

I Metoda zarządzania przedsięwzięciemI Dostępność zasobów

Metody wytwarzania oprogramowania 27/31

Page 28: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Inżynieria ponowna

I proces transformacji istniejącego oprogramowania (ang. legacysoftware) w celu poprawy jego pielęgnowalności

I niższe ryzyko niż w przypadku budowy nowego systemuI opłacalne, jeżeli koszt jest niższy od kosztu stworzenia nowego

systemuI stosowane w przypadku często ewoluujących fragmentów

systemu

Metody wytwarzania oprogramowania 28/31

Page 29: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Refaktoryzacja

Refaktoryzacja to:

I zmiana wewnętrznej struktury kodu programuI która zwiększa jego czytelność i obniża koszt pielęgnacjiI ale nie zmienia jego obserwowalnego zachowania

Metody wytwarzania oprogramowania 29/31

Page 30: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

Koszt refaktoryzacji

Refaktoryzacja nie zwiększa funkcjonalności programu, alekosztuje:

I identyfikacja problemuI przekształcenie koduI weryfikacja poprawności

Koszt zależy od:

I własności języka oprogramowaniaI wsparcia ze strony narzędzi CASEI natury wykonywanego przekształceniaI liczby i jakości posiadanych testów

Metody wytwarzania oprogramowania 30/31

Page 31: Metody wytwarzania oprogramowaniadyja/pliki/IO/wyklad12.pdf · I metafora: I wyjaśnia działanie systemu w terminach zrozumiałych dla klienta ... I Metoda zarządzania przedsięwzięciem

W wykładzie wykorzystano materiały

I Programowanie ekstremalne, Jerzy Nawrocki, Łukasz Olek,http://wazniak.mimuw.edu.pl/index.php?title=Io-12-wyk-toc

I Ewolucja oprogramowania i refaktoryzacja, Bartosz Walter,http://wazniak.mimuw.edu.pl/index.php?title=Io-13-wyk-toc

Metody wytwarzania oprogramowania 31/31