Cykl życia programu – seria kolejnych zmian programu, w trakcie których odbywa się sukcesywne dodawanie nowych funkcji oraz usuwanie powstających w trakcie rozwoju błędów.

edytuj Etapy rozwoju

Zasadniczo cykl życia kolejnych wersji programu można podzielić na następujące etapy:

  • wersja niestabilna (testowa) – seria wydaÅ„, podczas której dodawane sÄ… przede wszystkim nowe możliwoÅ›ci:
    • wersja robocza, dostÄ™pna zazwyczaj tylko dla twórców programu w postaci repozytorium kodu źródÅ‚owego (np. CVS), kiedy implementowany jest algorytm programu, tworzony jest interfejs i dodawane sÄ… nowe funkcje
    • wersja alfa, podczas której autorzy doprowadzajÄ… do rzeczywistego dziaÅ‚ania programu, nawet w ograniczonym zakresie
    • wersja beta, kiedy program ma już pierwszych użytkowników, zwanych czÄ™sto beta-testerami, i wyÅ‚apywane sÄ… błędy zwiÄ…zane z różnymi Å›rodowiskami i warunkami pracy programu
    • RC (ang. Release Candidate, czyli Kandydat do wydania) – wydanie kandydujÄ…ce, których może być nawet kilka, ale jeżeli nie zostanie w nim znalezione żadne istotne odstÄ™pstwo od planu wersji, zmienia siÄ™ jedynie numer wersji na wyższy i uznaje wersjÄ™ za stabilnÄ…
    • RTM (ang. Release to manufacture lub Ready to market) – produkt gotowy do wypuszczenia na rynek
  • wersja stabilna (wersja produkcyjna) – wersja nadajÄ…ca siÄ™ do użytkowania zgodnie z zaÅ‚ożeniami autorów
  • wersje stabilne z poprawkami bezpieczeÅ„stwa lub innych błędów
  • ostatnim etapem jest zwykle starzenie moralne programu i porzucenie przez autorów, co zwykle koÅ„czy jego życie (w przypadku kodu na licencjach FLOSS ten stan może w dowolnym momencie ponownie przejść do fazy aktywnego rozwoju, jeÅ›li tylko znajdÄ… siÄ™ chÄ™tni do przejÄ™cia opieki nad nim, lub wykorzystajÄ… fragmenty kodu w innej aplikacji)

Zależnie od projektu niektóre fazy życia programu mogą nie być tak oznaczane, można natomiast mówić w tych kategoriach o jakości kodu (np. kod beta oznacza wtedy po prostu program, w którym zaniedbano testowania na rozmaitych platformach sprzętowych i programistycznych).

edytuj Zobacz też