Cykl życia systemu umożliwia użytkownikom przekształcenie nowo opracowanego projektu w projekt operacyjny. Cykl życia systemu, (z angielskiego System Development Life Cycle w skrócie „SDLC”), jest wieloetapowym, iteracyjnym procesem, ustrukturyzowanym w sposób metodyczny. Proces ten służy do modelowania lub zapewniania ram dla działań technicznych i nietechnicznych w celu dostarczenia systemu jakości, który spełnia lub przekracza oczekiwania firmy lub zarządza postępami w podejmowaniu decyzji.
Podobnie jak w cyklu życia projektu (ang. Project Life Cycle), SDLC używa podejścia systemowego do opisu procesu. Jest często używany i stosowany, gdy opracowywany jest projekt IT lub mu podobne. W rzeczywistości w wielu przypadkach SDLC jest uważany za model projektu etapowego, który określa ograniczenia organizacyjne, personalne, polityczne i budżetowe dla projektu systemowego na dużą skalę. Cykl ma początek i koniec, a metody właściwe dla strategii cyklu życia rozwoju systemu zapewniają jasne, wyraźne i określone fazy pracy w elementach planowania, projektowania, testowania, wdrażania, i utrzymanie systemów informatycznych.
SDLC podkreśla różne etapy procesu rozwoju. Stosowane jest podejście oparte na cyklu życia, aby użytkownicy mogli zobaczyć i zrozumieć, jakie działania są zaangażowane na danym etapie. Służy również do informowania ich, że w dowolnym momencie można powtórzyć kroki lub przerobić poprzedni krok, gdy trzeba zmodyfikować lub ulepszyć system.
Całkowicie zdefiniowany w 1971 roku, termin ten powstał w latach 60. XX wieku, kiedy komputery wypełniały całe pokoje i pojawiła się pilna potrzeba zdefiniowania procesów i sprzętu skoncentrowanego na budowie dużych systemów biznesowych. W tamtych czasach zespoły były małe, scentralizowane, a użytkownicy mniej wymagający. Ten rodzaj scenariusza oznaczał, że nie było prawdziwej potrzeby dopracowania metodologii, aby sterować cyklem życia rozwoju systemu. Jednak technologia ewoluowała, systemy stają się coraz bardziej złożone, a użytkownicy przyzwyczaili się do dobrze funkcjonującej technologii. Opracowano modele i ramy, aby poprowadzić firmy przez zorganizowany cykl rozwoju systemu. Dziś tradycyjne podejście do rozwoju systemów technologicznych zostało dostosowane do stale zmieniających się, złożonych potrzeb każdej unikalnej organizacji i jej użytkowników.
Tradycyjnie cykl rozwoju systemu składał się z pięciu etapów jednak już od pewnego czasu ten cykl wzrósł do siedmiu faz. Zwiększenie liczby kroków pomogło analitykom systemów określić wyraźniejsze działania w celu osiągnięcia określonych celów. O to wszystkie fazy:
Jest to pierwszy etap procesu rozwoju systemu. Określa, czy potrzebny jest nowy system do osiągnięcia strategicznych celów firmy. Jest to wstępny plan inicjatywy biznesowej firmy polegającej na pozyskaniu zasobów do budowy infrastruktury, by zmodyfikować lub ulepszyć usługę. Firma może próbować spełnić lub przekroczyć oczekiwania wobec swoich pracowników czy klientów. Celem tego kroku jest ustalenie zakresu problemu i określenie rozwiązań. Na tym etapie należy rozważyć zasoby, koszty, czas, korzyści i inne elementy.
Drugi etap polega na tym, że firmy będą pracować nad źródłem problemu lub potrzebą zmiany. W przypadku problemu, możliwe rozwiązania są przesyłane i analizowane w celu określenia najlepszego dopasowania do ostatecznych celów projektu. To tutaj zespoły biorą pod uwagę wymagania funkcjonalne projektu lub rozwiązania. To właśnie tam odbywa się analiza systemu lub analiza potrzeb, aby upewnić się, że nowy system może spełnić dane wymagania. Analiza systemów ma zasadnicze znaczenie dla określenia potrzeb firmy, a także tego, w jaki sposób można je zaspokoić, kto będzie odpowiedzialny za poszczególne elementy projektu i jakiego rodzaju harmonogramu należy się spodziewać.
Trzecia faza szczegółowo opisuje niezbędne specyfikacje, funkcje i operacje, które spełnią wymagania funkcjonalne proponowanego systemu, który zostanie wprowadzony. Jest to krok dla użytkowników końcowych w celu omówienia i określenia ich specyficznych potrzeb w zakresie informacji biznesowych dotyczących proponowanego systemu. Podczas tej fazy bierze się pod uwagę sprzęt czy oprogramowanie, możliwości sieciowe, przetwarzanie i procedury, aby system mógł osiągnąć swoje cele.
Czwarta faza ma miejsce, gdy zaczyna się prawdziwa praca, gdy zaangażowaniu są programiści do wykonania głównej pracy nad projektem. Praca ta obejmuje wykorzystanie schematu blokowego w celu zapewnienia właściwej organizacji procesu systemu. Faza rozwoju oznacza koniec początkowej części procesu. Ponadto faza ta oznacza rozpoczęcie produkcji.
Piąta faza obejmuje integrację systemów i jego testy, które zwykle przeprowadzane są przez odpowiedniego specjalistę (Quality Assurance). Ma to na celu ustalenie, czy proponowany projekt spełnia początkowy zestaw celów biznesowych. Testy można powtarzać, szczególnie w celu sprawdzenia błędów. Testy będą przeprowadzane do momentu, gdy użytkownik końcowy uzna wersję za dopuszczalną. Kolejną częścią tego etapu jest weryfikacja i walidacja, które pomogą zapewnić pomyślne zakończenie programu.
Szósta faza ma miejsce, gdy napisana jest większość kodu programu. Ponadto faza ta obejmuje faktyczną instalację nowo opracowanego systemu. Ten krok wprowadza projekt do produkcji, przenosząc dane i komponenty ze starego systemu i umieszczając je w nowym systemie za pomocą bezpośredniego przełączania. Zarówno analitycy systemu, jak i użytkownicy końcowi powinni teraz zobaczyć realizację projektu, który wprowadził zmiany.
Siódmy i ostatni etap obejmuje konserwację i regularne wymagane aktualizacje. Na tym etapie użytkownicy końcowi mogą, jeśli chcą, dostroić system, aby zwiększyć wydajność, dodać nowe możliwości lub spełnić dodatkowe wymagania użytkownika.
Po każdej fazie cyklu rozwoju systemu powinien ustalić punkt odniesienia lub kamienie milowe w tym procesie. Poziom bazowy może obejmować datę rozpoczęcia, datę zakończenia, czas trwania oraz dane budżetowe. Ta linia bazowa pomaga kierownikowi projektu w monitorowaniu wydajności.
Wdrożenie cyklu rozwojowego systemu obejmuje wiele korzyści, w tym możliwość wstępnego planowania i analizy ustrukturyzowanych faz i celów. Ukierunkowane na cel procesy SDLC nie ograniczają się do jednej uniwersalnej metodologii i można je dostosować do zmieniających się potrzeb. Dobrze zdefiniowany cykl życia systemu powinien:
• Dać jasny obraz całego projektu, określonego harmonogramu i precyzyjnych celów zamknięcia każdego etapu.
• Dać oparcie kosztów i decyzji dotyczących personelu na konkretnych informacjach i potrzebach.
• Zapewnić weryfikację, celów i rezultatów, które spełniają standardy projektowania i rozwoju na każdym etapie projektu
• Zapewnić programistom miarę kontroli dzięki podejściu, które zwykle rozpoczyna się od analizy kosztów i terminów.
• Poprawić jakość ostatecznego systemu dzięki weryfikacji na każdym etapie.
Niektóre z wad SDLC obejmują:
• Wiele metod uważa się za nieelastycznych, a niektóre cierpią z powodu przestarzałych procesów.
• Trudności w reagowaniu na zmieniające się okoliczności w cyklu życia.
• Testy pod koniec cyklu życia nie są korzystne dla wszystkich zespołów programistycznych. Wielu woli testować podczas całego procesu.
• Dokumentacja związana z ustrukturyzowanym podejściem SDLC może być przytłaczająca.
Cykl życia oprogramowania jest zgodny z międzynarodowym, w którym nakreślono etapy podobne do tradycyjnego cyklu życia systemów, obejmujące nabycie oprogramowania, rozwój nowego oprogramowania, obsługę, konserwację i usuwanie oprogramowania produkty. Koncentruje się wokół potrzeby zwiększenia funkcjonalności bezpieczeństwa i ochrony danych.
Cykl rozwoju oprogramowania to proces, który pozwala uzyskać oprogramowanie o najwyższej jakości i najniższych kosztach w możliwie najkrótszym czasie. Zapewnia on dobrze ustrukturyzowany przepływ faz, który pomaga organizacji w szybkim wytwarzaniu wysokiej jakości oprogramowania, które jest dobrze przetestowane i gotowe do użytku produkcyjnego.
Popularne modele obejmują takie modele jak:
• Metoda wodospadu to ciągła sekwencja czynności, która płynie w dół, podobnie jak nazwa. Ten tradycyjny proces inżynieryjny, który zamyka każdą fazę po zakończeniu, jest często krytykowany za zbyt sztywny.
• Model w kształcie litery V to adaptacja Wodospadu, w której testowanie stanowi integralną część zamykania każdej fazy.
• Metoda prototypowa opowiada się za planem zbudowania wielu metod oprogramowania, które pozwalają wypróbować różne elementy przed ich pełnym opracowaniem.
• Rapid Application Development (RAD) jest hybrydą metody prototypowej, ale działa, aby nie podkreślać początkowego planowania w celu szybkiego prototypowania i testowania potencjalnych rozwiązań.
• Metoda spiralna zapewnia więcej etapów procesu, które są graficznie przedstawione w formacji spiralnej i ogólnie przypisuje się jej, że zapewniają większą elastyczność i dostosowanie procesu.
• Metody zwinne to systemy oparte na oprogramowaniu, które przekazują informacje zwrotne poprzez iteracyjny proces i obejmują m.in. Kanban czy Scrum.
Działa on poprzez obniżenie kosztów rozwoju oprogramowania przy jednoczesnej poprawie jakości i skróceniu czasu produkcji. Cykl życia oprogramowania osiąga te pozornie rozbieżne cele, postępując zgodnie z planem, który usuwa typowe pułapki związane z projektami programistycznymi. Plan ten rozpoczyna się od oceny istniejących systemów pod kątem braków.
Następnie określa wymagania nowego systemu. Następnie tworzy oprogramowanie poprzez etapy analizy, planowania, projektowania, rozwoju, testowania i wdrażania. Przewidując kosztowne błędy, takie jak nie proszenie użytkownika końcowego lub klienta o opinię, może on wyeliminować zbędne poprawki.
Ważne jest również, aby wiedzieć, że mocno powinno się skoncentrować na fazie testowania. Cykl życia oprogramowania to powtarzalna metodologia, musisz zapewnić jakość kodu w każdym cyklu. Wiele organizacji zwykle poświęca niewiele wysiłku na testowanie, a większy nacisk na testowanie pozwala zaoszczędzić wiele pracy, czasu i pieniędzy. Bądź mądry i pisz odpowiednie typy testów.
Wzrasta zainteresowanie bezpieczeństwem systemu na wszystkich poziomach cyklu życia, które obejmują elementy poufności, dostępności informacji, integralności informacji, ogólnej ochrony systemu i ograniczania ryzyka. Ponadto do technologii wkroczyły zasady zarządzania i przepisy, a surowe wymagania dotyczące integralności danych mają wpływ na zespół opracowujący systemy technologiczne.
Każda firma będzie miała własne, zdefiniowane najlepsze praktyki dla różnych etapów rozwoju. Na przykład testy mogą obejmować określoną liczbę użytkowników końcowych i scenariusze przypadków użycia, aby uznać je za udane, a konserwacja może obejmować kwartalne, obowiązkowe aktualizacje systemu.
Jeśli firma stwierdzi, że zmiana jest potrzebna podczas dowolnej fazy cyklu życia systemu, firma może być zmuszona ponownie przejść przez wszystkie powyższe fazy cyklu życia. Podejście oparte na cyklu życia każdego projektu jest procesem czasochłonnym. Chociaż niektóre kroki są trudniejsze niż inne, nie można ich pominąć. Może to uniemożliwić funkcjonowanie całego systemu zgodnie z planem.