33. Cykle życia oprogramowania.
Proces powstawania oprogramowania można podzielić na 3 fazy:
Faza definicji (w tej fazie oprogramowanie jest projektowane): faza zorientowana na to co trzeba zrobić. W tej fazie inżynier systemowy stara się zidentyfikować:
- jaka informacja ma zostać przetworzona,
- jaka funkcjonalność systemu jest wymagana,
- jakie się zakłada założenia projektowe,
- jaki interfejs ma być stworzony,
- jakie są kryteria poprawności docelowego systemu.
Najważniejsza jest identyfikacja kluczowych założeń i wymagań dla systemu.
W tej fazie można wyróżnić trzy podstawowe zadania: inżynierię informacyjną lub systemową, planowanie projektu oraz analizę wymagań, sposób realizacji tych zadań jest już zależny od konkretnej metodologii stosowanej do realizacji całości zadania.
Faza tworzenia (w tej fazie oprogramowanie jest tworzone): faza zorientowana na to jak należy to wykonać. Kiedy wykonano identyfikację wszystkich niezbędnych składników systemu, można przystąpić do odpowiedzi na pytanie jak będzie to wszystko zrealizowane. Zatem:
- jakie struktury danych będą użyte,
- jakie funkcje będą użyte do powiązania tych struktur,
- jak będą zrealizowane konkretne procedury,
- czym będzie się charakteryzował interfejs,
- jak projekt będzie odzwierciedlony w języku programowania (jakie języki zostaną użyte),
- jakie narzędzia zostaną wykorzystane,
- jak będą prowadzone testy.
W fazie tej można wyróżnić trzy zadania, które powinny wystąpić niezależnie od sposobu realizacji całości fazy: projektowanie systemu, kodowanie, testowanie.
Etapy rozwoju:
- wersja niestabilna
- wersja robocza - dostępna tylko dla twórców w postaci kodu
- wersja alfa - cokolwiek działa
- wersja beta - pierwsi użytkownicy (betatesterzy) wykrywają błędy
- wersja RC - "kandydat do wydania" (np: Windows 7). Pobiera informacje od użytkownika, czy dobrze działa
- wersja RTM - gotowa do produkcji. Niedostępna publicznie do czasu premiery.
- wersja stabilna
- wersja stabilna z poprawkami
Faza wsparcia (w tej fazie oprogramowanie jest modyfikowane): faza zorientowana na zmianę istniejącego produktu. Faza ta swoim zakresem obejmuje
- poprawę błędów w istniejącym systemie,
- reagowanie na zmieniające się potrzeby klienta,
- zmianę na skutek czynników zewnętrznych (np. zmiana przepisów prawnych)
Możemy wyróżnić cztery typy zmian:
Poprawki: Nawet w najlepszym produkcie z czasem klient znajduje błędy, w takiej sytuacji musimy wykonać poprawki.
Adaptacja: Z biegiem czasu zmienia się sprzęt, środowisko systemu operacyjnego, czy inne zewnętrzne czynniki. W takiej sytuacji należy zareagować zmianami adaptacyjnymi.
Rozszerzenie: W czasie używania oprogramowania klient zauważa potrzebę wprowadzenia nowej funkcjonalności, która przynosi mu jakieś korzyści. W tej sytuacji musimy dokonać udoskonaleń.
Profilaktyka: Działania profilaktyczne mają za zadanie utrzymywać nasze oprogramowanie w zgodzie z panującymi trendami i technologiami, w głównej mierze przyczyniają się one do zmniejszenia wysiłku w przyszłych adaptacjach, rozszerzeniach czy poprawkach.
Dodatkowymi czynnościami, które należą do tej fazy jest zapewnienie użytkownikowi:
- wsparcia technicznego (ang. help-desk),
- aktualizacji stron internetowych z ewentualnymi poradami (ang. HOWTO),
- nadzoru nad listami dyskusyjnymi,
- umieszczanie poprawek na stronach internetowych lub rozsyłanie ich poprzez pocztę elektroniczną.