Fazy SDLC [wyjaśnienie]: Jak stworzyć świetne oprogramowanie w 2021 roku?
Opublikowany: 2019-10-02Spis treści
Zrozumienie procesu SDLC
Struktura procesu tworzenia oprogramowania
Modele SDLC
Zakończyć
Branża tworzenia oprogramowania kwitnie. Każdego roku produkujemy ogromne ilości kodu.
Podstawą branży jest cykl życia oprogramowania (SDLC) – proces, który kieruje zespołami programistycznymi w zakresie strukturyzowania i planowania pracy.
Wybierzmy się więc w podróż po zdradzieckim terenie tworzenia oprogramowania.
Przyjrzymy się, czym właściwie jest SDLC i prześledzimy jego ewolucję. Zobaczymy, jakie są główne modele stosowane przez branżę.
Odkryjemy fazy SDLC, przez które przechodzi oprogramowanie, zanim ujrzy światło dzienne – oraz kluczowych wykonawców w każdym z nich.
Ostatecznie przedstawimy Ci cały proces z lotu ptaka.
Zrozumienie procesu SDLC
Tworzenie oprogramowania to proces. Jako taki potrzebuje dobrze zdefiniowanego celu, środków do jego osiągnięcia oraz sposobów mierzenia, utrzymywania i poprawiania wyników. Wszystko to zapewniają różne podejścia do tworzenia oprogramowania. Jednak nie wszystkie są uszyte z tego samego materiału. W zależności od okoliczności może być konieczne wybranie szalenie różnych podejść.
Zależy to od wielu zmiennych, takich jak:
- przemysł
- wielkość organizacji
- zespół i projekt
- szacowane ramy czasowe
- oraz przydzielony budżet.
Powszechne jest to, że każdy element oprogramowania jest zgodny z określonym przebiegiem procesu SDLC .
Ramy te określają wymagane etapy do ukończenia, potrzebne zasoby i zadania do wykonania po drodze.
Proces SDLC jest ostatecznie dobrze zorganizowanym harmonogramem tego, co należy osiągnąć. Decyduje o najlepszym podejściu do tworzenia oprogramowania w ramach przewidywanych ograniczeń czasowych i kosztowych.
SDLC jest często uważany za podzbiór szerszego terminu „cykl rozwoju systemów” – najstarszej struktury tworzenia systemów informatycznych.
Pojawił się na początku lat sześćdziesiątych jako odpowiedź na potrzebę systemów biznesowych zdolnych do przetwarzania dużych ilości danych. Pierwszym dobrze udokumentowanym frameworkiem SDLC jest model programowania strukturalnego z 1969 roku.
W latach 90. pojawiły się różne metodologie tworzenia oprogramowania. Niektóre z nich to programowanie obiektowe, Scrum i Rational Unified Process. Agile Unified Process pojawił się w 2005 roku.
Struktura procesu tworzenia oprogramowania
Rozwój oprogramowania to sekwencja dobrze skoordynowanych etapów. W zależności od wybranego podejścia programistycznego liczba kroków SDLC może się różnić.
Przyjrzymy się 5-stopniowym i 7-stopniowym smakom SDLC.
Wersja 5-etapowa
Pięcioetapowa wersja procesu tworzenia oprogramowania wygląda następująco:
Wymagania i analiza
Jest to kluczowa faza, w której niezbędna jest interakcja z klientem i interesariuszami. Muszą określić oczekiwany wynik, czyli cel produktu programowego. Oprócz wymagań klienta należy wziąć pod uwagę wiele innych czynników. Obejmują one:
- Architektoniczny
- Funkcjonalny
- Niefunkcjonalny
- Wydajność
- I projektowych
Aby pomyślnie zakończyć ten etap, opracowywany jest dokument zwany „specyfikacją wymagań oprogramowania”. Jest podstawą wszystkiego, co będzie się działo od tej chwili.
Sukces projektu rozwojowego zależy w dużej mierze od analizy wymagań. Kluczowym wykonawcą na tym etapie jest analityk biznesowy (BA). Zarządza całą komunikacją, aby zebrać wymagania biznesowe, przeprowadzić dokładną analizę i co najważniejsze – przetłumaczyć te informacje między interesariuszami a programistami.
Projekt
Projekt oprogramowania opiera się na ustalonych wymaganiach. To tutaj ustalamy środowisko programistyczne, języki programowania, ramy architektoniczne, sprzęt itp. Jest to również czas na określenie strategii testów, która zostanie zastosowana. Rola architekta systemu jest tutaj kluczowa. Muszą wziąć pod uwagę wszystkie warunki wstępne z dokumentu „specyfikacja wymagań” i dostarczyć dokument projektowy do wykorzystania w następnym kroku.
Faza kodowania
Do tej pory programiści są już dobrze świadomi specyfikacji projektu. Praca zostaje podzielona na moduły i zaczyna się kodowanie. Klient również powinien być zaangażowany na tym etapie. Upewniają się, że podejmowane są wszelkie środki, aby produkt spełniał ich oczekiwania. Na tym etapie ostatecznym rezultatem jest stworzenie działającego oprogramowania.
Testowanie
Teraz, gdy mamy gotowy produkt, można rozpocząć fazę testowania. W zależności od strategii testowania opisanej w dokumencie specyfikacji projektu, może to nastąpić na różne sposoby.
Niemniej jednak cele pozostają takie same. Po pierwsze, sprawdź, czy wszystkie początkowe wymagania zostały spełnione, a po drugie, sprawdź, czy w kodzie są jakieś błędy. Testerzy są tutaj kluczowymi wykonawcami. Efektem ich wysiłków jest w pełni funkcjonalne oprogramowanie, gotowe do uruchomienia.
Utrzymanie
Nie ma czegoś takiego jak doskonałe oprogramowanie. Dlatego obsługa klienta odgrywa ogromną rolę w procesie rozwoju. Po dostarczeniu do klienta końcowego pojawiają się problemy w czasie rzeczywistym, które wymagają naprawy. Ciągła konserwacja jest koniecznością, jeśli chcesz mieć zadowolonych klientów.
Wersja 7-etapowa
Teraz siedmioetapowy smak tego procesu jest nieco inny. Ma kilka dodatkowych etapów, które nieuchronnie zmieniają również charakter pozostałych. Spójrzmy:
Planowanie
Innym sposobem na rozpoczęcie procesu SDLC jest faza planowania. Poprzedza zbieranie wymagań i wymaga głównie informacji zwrotnej. Wkład interesariuszy, partnerów biznesowych, inżynierów i klientów końcowych kształtuje zakres projektu. Ta faza odpowiada na pytania takie jak:
- Co trzeba zrobić?
- Jakie zasoby są potrzebne?
- Ile czasu zajmie?
- Ile to będzie kosztować?
Wymagania i analiza
Tutaj analitycy biznesowi opracowują listę wymagań, opartą na informacjach zwrotnych od klienta. Następnie przekazują je inżynierom oprogramowania. Komunikacja jest niezbędna.
W tej fazie powinien powstać dokument, który przedstawia wszystkie wymagania – i służy jako podstawa do następnej fazy.
Projektowanie systemów
Wymagania programowe znajdują teraz drogę do architektury systemu. W tym momencie możemy określić środki funkcjonalne i operacje potrzebne do realizacji projektu. Po przygotowaniu plan projektu zostaje przedstawiony firmie. Uwzględniamy wszystkie informacje zwrotne przed rozpoczęciem właściwego programowania.
Rozwój oprogramowania
Gdy wymagania są jasne, inżynierowie oprogramowania mogą rozpocząć pracę. Celem na tym etapie jest działający program, który jest gotowy do testowania. To także początek produkcji w Procesie SDLC .
Testowanie
Rolą zespołu zapewnienia jakości jest sprawdzenie, czy początkowe wymagania biznesowe zostały spełnione. Sprawdzają jakość kodu oprogramowania. Błędy zostaną naprawione. Do przejścia jest cała lista metod testowania oprogramowania: testy funkcjonalne, integracyjne, wydajnościowe i tak dalej.
Testowanie automatyzacyjne to sposób na zautomatyzowanie procesu uruchamiania powtarzalnych testów za pomocą zewnętrznego oprogramowania, takiego jak Bamboo i Jenkins.
Realizacja
Gdy kod przejdzie fazę testowania, jest gotowy do wdrożenia w środowisku produkcyjnym. W zależności od polityki firmy proces ten może wymagać zatwierdzenia; jednak w większości przypadków jest to zautomatyzowany krok w cyklu życia oprogramowania .
Konserwacja i operacje
Gdy oprogramowanie zostanie wydane w wersji produkcyjnej, mogą pojawić się wszelkiego rodzaju problemy. Dzięki monitorowaniu można je zidentyfikować i rozwiązać. Nowe funkcje mogą również znaleźć drogę do produktu. Jest to faza, w której można zmierzyć i poprawić wydajność.

Modele SDLC
Proces tworzenia oprogramowania jest w dużej mierze uniwersalny. Jest miejsce na dodanie większej liczby etapów lub uproszczenie istniejących – ale to w większości to samo.
Nie jest to prawdą, gdy przyjrzymy się metodom programowania . Chociaż wszyscy obserwują ten proces, robią to na bardzo różne sposoby.
Aby wybrać najbardziej odpowiedni, należy wziąć pod uwagę kilka kluczowych czynników. To zawsze równowaga pomiędzy potrzebami klienta a praktycznymi szczegółami tworzenia oprogramowania. Istnieją czynniki, takie jak:
- złożoność projektu
- wybrana technologia
- i wielkość zespołu.
Wszystko to decyduje o tym, jakie podejście może działać najlepiej. Dokonamy przeglądu niektórych z najbardziej znanych i używanych metodologii SDLC .
Wodospad
Model kaskadowy to liniowy, sekwencyjny proces projektowania. Jest to najstarsza znana metodologia stosowana w inżynierii oprogramowania. Wywodzi się z przemysłu wytwórczego i budowlanego w latach 70-tych.
Postęp projektu rozwojowego zgodnie z modelem kaskadowym idzie ściśle w dół rury SDLC. Postęp jest możliwy tylko wtedy, gdy poprzednia faza SDLC została pomyślnie zakończona. Nie ma zdefiniowanego procesu cofania się.
SDLC wodospad jest bardzo zorganizowane podejście. Działa dobrze, gdy:
- wymagania i działania są dobrze zdefiniowane i zrozumiane
- technologia jest niezawodna
- zespół wsparcia jest dostępny i szacujesz projekt krótkoterminowy
Wadą metody jest jej brak elastyczności. Nie możesz po drodze zaimplementować nowo pojawiających się wymagań. Ponieważ do późnego etapu rozwoju nie powstaje żaden namacalny produkt, ryzyko i niepewność są wysokie. Może się to okazać bardzo kosztownym podejściem, jeśli zdecydujesz się modyfikować wymagania lub zakres projektu w locie.
Wielokrotny
Ta metoda opiera się na założeniu, że oprogramowanie można zbudować poprzez sekwencję powtarzających się cykli. Zaczyna się od prostego zestawu wymagań. W każdej rundzie inżynierowie uczą się na podstawie zachowania wcześniejszych wersji oprogramowania i są w stanie zwiększyć jego funkcjonalność.
Największą zaletą tego podejścia jest to, że po zakończeniu każdego cyklu powstaje działający prototyp oprogramowania. Ułatwia to wprowadzanie zmian, identyfikację zagrożeń. Testy SDLC jest stosunkowo łatwiejsze, gdy wykonywane w każdej iteracji.
Wady iteracyjnego modelu wytwarzania oprogramowania sprowadzają się do zasobów i kosztów. Zwiększenie liczby iteracji pochłania więcej zasobów. Termin realizacji projektu jest nieokreślony, podobnie jak ryzyko. Dlatego, aby ta metoda zadziałała, potrzebni są wysoko wykwalifikowani eksperci przeprowadzający analizę ryzyka.
Metodologia nie nadaje się do mniejszych projektów.
Zręczny
Podejście Agile do tworzenia oprogramowania jest stosunkowo nowe. Mimo to szybko zyskał popularność na całym świecie.
Agile SDLC opiera się na dostarczaniu małe porcje oprogramowania pracę i szukając natychmiastowej informacji zwrotnej od klienta. U podstaw tego podejścia leży silna współpraca i ciągła komunikacja między zespołami. Każdy cykl trwa około jednego do trzech tygodni, po czym działający moduł/funkcja jest dostarczana do klienta. Następnie proces się powtarza.
Testowanie jest wykonywane w każdej iteracji, co pozwala na wczesne rozwiązywanie problemów. Zachęca do demonstracji funkcjonalności oprogramowania i pozyskiwania informacji zwrotnych. Model zapewnia wyraźną widoczność wyników. Wspiera pracę zespołową i daje elastyczność inżynierom oprogramowania.
Ponieważ nie ma wymagań dotyczących obszernej dokumentacji, istnieje ryzyko zależności od niektórych osób. Może to być również wyzwaniem, jeśli chodzi o transfer wiedzy do nowych członków zespołu.
Pochylać się
Metodologia wytwarzania oprogramowania Lean jest uważana za część metody wytwarzania oprogramowania Agile. Proces SDLC zgodny z metodologią Lean składa się z siedmiu zasad:
- Eliminować śmieci
- Wzmocnij naukę
- Zdecyduj tak późno, jak to możliwe
- Dostarcz tak szybko, jak to możliwe
- Wzmocnij zespół
- Buduj integralność
- Spójrz na to w szerszej perspektywie
Kluczem do zrozumienia tego modelu są te zasady. Doprowadziłoby to do przekształcenia ich w funkcjonalne praktyki zwinne i ich wdrożenia do procesu pracy.
Zasady lean są zorganizowane wokół idei wytwarzania jak największej wartości dodanej dla użytkowników końcowych – przy jednoczesnej optymalizacji jakości, szybkości, kosztów i oczekiwań biznesowych. W tym celu niektóre zadania są eliminowane (ciężka dokumentacja) a inne optymalizowane (częstotliwość spotkań).
DevOps
Model DevOps jest częściowo oparty zarówno na Agile, jak i Lean . Jest to nowo pojawiające się podejście, które wiąże się z bliską współpracą między zespołami programistycznymi a zespołami operacyjnymi podczas całego cyklu życia oprogramowania.
Kluczowym aspektem tej metodologii jest nacisk na automatyzację procesu rozwoju. Ostatecznym celem jest skrócenie SDLC, a jednocześnie dostarczanie wysokiej jakości, innowacyjnych wyników, zgodnych z wymaganiami biznesowymi.
Dzięki takiemu podejściu programiści, zespoły operacyjne i członkowie kontroli jakości są na tej samej stronie. Używają tych samych narzędzi i postępują według tych samych procesów. Poprawia to komunikację i prowadzi do lepszych i bardziej terminowych wyników.
Spirala
Jest to połączenie rozwoju iteracyjnego i niektórych pojęć modelu kaskadowego. Umożliwia częściowe wydania oprogramowania w każdym cyklu iteracyjnym.
Cztery etapy i powtórzenia nazywane są „spiralami”. Fazy SDLC są: planowanie i zbieranie wymagań; projekt; rozwój i testowanie.
Kluczową rolę odgrywa analiza ryzyka. Na każdej spirali przeprowadzana jest analiza ryzyka, aby można było zidentyfikować i uniknąć lub przezwyciężyć wszelkie potencjalne zagrożenia. Nadaje się do dużych projektów, chociaż zarządzanie i sam proces mogą być złożone.
Zakończyć
Wybór odpowiedniego podejścia do tworzenia oprogramowania wymaga znacznych badań. Definiując zakres, wymagania i cel swojego projektu, możesz określić fazy SDLC, które będzie musiał przejść Twój produkt.
Wybrana przez Ciebie metodologia to nie tylko proces tworzenia funkcjonalnego produktu. Jest to sposób na połączenie wartości Twojej organizacji i zespołów w celu stworzenia harmonijnego środowiska pracy.
FAQ
W zależności od wybranej metodologii, Twoje oprogramowanie przejdzie przez różną liczbę etapów. Następujące czynności powinny być częścią tego tak czy inaczej:
- Planowanie, zbieranie wymagań i analiza
- Uzgadnianie projektu lub architektury systemu
- Generowanie kodu
- Testowanie wyprodukowanego kodu
- Wdrożenie kodu w środowisku produkcyjnym
- Ciągła konserwacja i doskonalenie
Struganie; Wymagania i analiza; Projekt; Rozwój; Testowanie; Realizacja; Utrzymanie.
To zależy od Twojego projektu! Twoja analiza branży, cel projektu, dostępne możliwości i zasoby, metryki czasu i kosztów byłyby głównymi czynnikami przy wyborze najlepszej metodologii SDLC.