sdlc phases
Co to jest cykl życia oprogramowania (SDLC)? Poznaj fazy, metodologie, procesy i modele SDLC
Cykl życia oprogramowania (SDLC) to struktura, która definiuje etapy tworzenia oprogramowania na każdym etapie. Obejmuje szczegółowy plan budowy, wdrażania i konserwacji oprogramowania.
SDLC definiuje pełny cykl rozwoju, tj. Wszystkie zadania związane z planowaniem, tworzeniem, testowaniem i wdrażaniem oprogramowania.
Czego się nauczysz:
Proces cyklu życia oprogramowania
SDLC to proces, który definiuje różne etapy tworzenia oprogramowania służącego do dostarczania produktu wysokiej jakości. Etapy SDLC obejmują cały cykl życia oprogramowania, tj. Od powstania do wycofania produktu.
Przestrzeganie procesu SDLC prowadzi do rozwoju oprogramowania w systematyczny i zdyscyplinowany sposób.
Cel, powód:
Celem SDLC jest dostarczenie wysokiej jakości produktu spełniającego wymagania klienta.
SDLC zdefiniował swoje fazy jako: zbieranie wymagań, projektowanie, kodowanie, testowanie i konserwacja. Ważne jest, aby przestrzegać tych faz, aby dostarczać Produkt w sposób systematyczny.
Na przykład, Należy opracować oprogramowanie, a zespół jest podzielony na pracę nad funkcją produktu i może pracować tak, jak chce. Jeden z programistów decyduje się najpierw zaprojektować, drugi decyduje się najpierw kodować, a drugi w części dokumentacyjnej.
Doprowadzi to do niepowodzenia projektu, z powodu którego konieczna jest dobra wiedza i zrozumienie wśród członków zespołu, aby dostarczyć oczekiwany produkt.
Cykl SDLC
Cykl SDLC reprezentuje proces tworzenia oprogramowania.
Poniżej znajduje się schematyczne przedstawienie cyklu SDLC:
Fazy SDLC
Poniżej podano różne fazy:
- Gromadzenie i analiza wymagań
- Projekt
- Wdrożenie lub kodowanie
- Testowanie
- Rozlokowanie
- Konserwacja
1) Gromadzenie i analiza wymagań
Na tym etapie wszystkie istotne informacje są zbierane od klienta w celu opracowania produktu zgodnie z jego oczekiwaniami. Wszelkie niejasności należy rozstrzygać tylko na tym etapie.
Analityk biznesowy i kierownik projektu umówili się na spotkanie z klientem, aby zebrać wszystkie informacje, takie jak to, co klient chce zbudować, kto będzie użytkownikiem końcowym, jaki jest cel produktu. Przed stworzeniem produktu bardzo ważne jest zrozumienie lub znajomość produktu.
Na przykład, Klient chce mieć aplikację obsługującą transakcje pieniężne. W takim przypadku wymóg musi być jasny, np. Jakiego rodzaju transakcje będą wykonywane, jak to się dzieje, w jakiej walucie będzie to robione itp.
Po zebraniu wymagań przeprowadzana jest analiza w celu sprawdzenia wykonalności rozwoju produktu. W przypadku jakichkolwiek niejasności nawiązywane jest wezwanie do dalszej dyskusji.
Po jasnym zrozumieniu wymagania tworzony jest dokument SRS (Specyfikacja Wymagań Oprogramowania). Ten dokument powinien zostać dokładnie zrozumiany przez programistów, a także powinien zostać przejrzany przez klienta w celu wykorzystania w przyszłości.
# 2) Projekt
Na tym etapie wymaganie zebrane w dokumencie SRS jest wykorzystywane jako dane wejściowe i wyprowadzana jest architektura oprogramowania wykorzystywana do wdrażania rozwoju systemu.
# 3) Implementacja lub kodowanie
Implementacja / kodowanie rozpoczyna się, gdy programista otrzyma dokument projektu. Projekt oprogramowania jest tłumaczony na kod źródłowy. Wszystkie komponenty oprogramowania są wdrażane na tym etapie.
jak otworzyć plik .7z mac
# 4) Testowanie
Testowanie rozpoczyna się po zakończeniu kodowania i udostępnieniu modułów do testów. Na tym etapie opracowane oprogramowanie jest gruntownie testowane, a wszelkie znalezione usterki są przypisywane programistom w celu ich usunięcia.
Ponowne testowanie, testy regresyjne są wykonywane do momentu, w którym oprogramowanie będzie zgodne z oczekiwaniami klienta. Testerzy odsyłają dokument SRS, aby upewnić się, że oprogramowanie jest zgodne ze standardami klienta.
# 5) Wdrożenie
Po przetestowaniu produktu jest on wdrażany w środowisku produkcyjnym lub jako pierwszy UAT (testy akceptacji użytkowników) odbywa się w zależności od oczekiwań klienta.
W przypadku UAT powstaje replika środowiska produkcyjnego, a klient wraz z programistami wykonuje testy. Jeśli klient znajdzie aplikację zgodnie z oczekiwaniami, klient zapewni jej podpis.
# 6) Konserwacja
Po wdrożeniu produktu w środowisku produkcyjnym, jego konserwacją, tj. W przypadku pojawienia się jakiegokolwiek problemu i konieczności jego naprawienia lub wprowadzenia ulepszeń, zajmują się programiści.
Modele cyklu życia oprogramowania
Model cyklu życia oprogramowania to opisowa reprezentacja cyklu tworzenia oprogramowania. Modele SDLC mogą mieć inne podejście, ale podstawowe fazy i czynności pozostają takie same dla wszystkich modeli.
1) Model wodospadu
Model wodospadu jest pierwszym modelem używanym w SDLC. Jest również znany jako liniowy model sekwencyjny.
W tym modelu wynik jednej fazy jest wkładem dla następnej fazy. Rozwój następnej fazy rozpoczyna się dopiero po zakończeniu poprzedniej fazy.
- Po pierwsze, zbieranie i analiza wymagań jest wykonywana. Po zamrożeniu wymagania można rozpocząć tylko projektowanie systemu. W tym przypadku utworzony dokument SRS jest wynikiem fazy zapotrzebowania i służy jako dane wejściowe do projektu systemu.
- W architekturze i projektowaniu oprogramowania do projektowania systemów tworzone są dokumenty, które służą jako dane wejściowe do następnej fazy, tj. Implementacja i kodowanie.
- W fazie wdrożenia kodowanie jest zakończone, a opracowane oprogramowanie stanowi dane wejściowe do następnej fazy, tj. Testowania.
- W fazie testów opracowany kod jest dokładnie testowany w celu wykrycia defektów w oprogramowaniu. Defekty są rejestrowane w narzędziu do śledzenia defektów i są ponownie testowane po naprawieniu. Rejestrowanie błędów, ponowne testowanie, testowanie regresyjne trwa do momentu uruchomienia oprogramowania.
- W fazie wdrażania opracowany kod jest przenoszony do produkcji po zatwierdzeniu przez klienta.
- Wszelkie problemy w środowisku produkcyjnym są rozwiązywane przez programistów, którzy przechodzą konserwację.
Zalety modelu wodospadu:
- Model wodospadu jest prostym modelem, który można łatwo zrozumieć i jest tym, w którym wszystkie fazy są wykonywane krok po kroku.
- Rezultaty każdej fazy są dobrze zdefiniowane, co nie prowadzi do złożoności i sprawia, że projekt jest łatwy w zarządzaniu.
Wady modelu Waterfall:
- Model wodospadu jest czasochłonny i nie można go stosować w projektach krótkoterminowych, ponieważ w tym modelu nie można rozpocząć nowej fazy, dopóki trwająca faza nie zostanie zakończona.
- Model kaskadowy nie może być stosowany w projektach, które mają niepewne wymagania lub w których wymaganie ciągle się zmienia, ponieważ model ten oczekuje, że wymóg będzie jasny w samej fazie gromadzenia i analizy wymagań, a każda zmiana na późniejszych etapach prowadziłaby do wzrostu kosztów, ponieważ zmiany byłyby wymagane na wszystkich etapach.
# 2) Model w kształcie litery V.
V- Model jest również znany jako model weryfikacji i walidacji. W tym modelu weryfikacja i walidacja idą w parze, tj. Rozwój i testowanie przebiegają równolegle. Model V i model kaskadowy są takie same, z tym wyjątkiem, że planowanie testów i testowanie rozpoczynają się na wczesnym etapie w modelu V.
a) Faza weryfikacji:
(i) Analiza wymagań:
Na tym etapie wszystkie wymagane informacje są gromadzone i analizowane. Czynności weryfikacyjne obejmują przegląd wymagań.
(ii) Projekt systemu:
Gdy wymagania są jasne, projektowany jest system, tj. Architektura, komponenty produktu są tworzone i dokumentowane w dokumencie projektowym.
(iii) Projekt wysokiego poziomu:
Projekt wysokiego poziomu określa architekturę / projekt modułów. Określa funkcjonalność między dwoma modułami.
(iv) Projekt niskopoziomowy:
Projekt niskopoziomowy definiuje architekturę / projekt poszczególnych komponentów.
(v) Kodowanie:
Rozwój kodu odbywa się w tej fazie.
b) Faza walidacji:
(i) Testy jednostkowe:
Testów jednostkowych jest wykonywany przy użyciu zaprojektowanych przypadków testów jednostkowych i jest wykonywany w fazie projektowania niskiego poziomu. Testy jednostkowe są wykonywane przez samego programistę. Odbywa się to na poszczególnych komponentach, co prowadzi do wczesnego wykrywania defektów.
(ii) Testowanie integracyjne:
Testy integracyjne jest wykonywana przy użyciu przypadków testowych integracji w fazie projektowania wysokiego poziomu. Testowanie integracyjne to testowanie przeprowadzane na zintegrowanych modułach. Wykonywany jest przez testerów.
(iii) Testowanie systemu:
Testowanie systemu jest wykonywana w fazie projektowania systemu. Na tym etapie testowany jest cały system, czyli testowana jest cała funkcjonalność systemu.
(iv) Testy akceptacyjne:
Testy akceptacyjne są powiązane z fazą analizy wymagań i są wykonywane w środowisku klienta.
Zalety V - Model:
- To prosty i zrozumiały model.
- Podejście modelowe V jest dobre dla mniejszych projektów, w których wymagania są zdefiniowane i zawiesza się na wczesnym etapie.
- To systematyczny i zdyscyplinowany model, którego efektem jest produkt wysokiej jakości.
Wady modelu V:
- Model w kształcie litery V nie nadaje się do bieżących projektów.
- Zmiana wymagań na późniejszym etapie byłaby zbyt wysoka.
# 3) Model prototypowy
Model prototypowy to model, w którym prototyp jest opracowywany przed rzeczywistym oprogramowaniem.
Modele prototypowe mają ograniczone możliwości funkcjonalne i nieefektywną wydajność w porównaniu z rzeczywistym oprogramowaniem. Funkcje atrapy służą do tworzenia prototypów. To cenny mechanizm umożliwiający zrozumienie potrzeb klientów.
Prototypy oprogramowania są budowane przed rzeczywistym oprogramowaniem, aby uzyskać cenne informacje zwrotne od klienta. Wprowadzane są informacje zwrotne, a prototyp jest ponownie sprawdzany przez klienta pod kątem wszelkich zmian. Proces ten trwa do momentu akceptacji modelu przez klienta.
Po zebraniu wymagań tworzony jest szybki projekt i budowany jest prototyp, który jest przedstawiany klientowi do oceny.
Informacje zwrotne od klientów i dopracowane wymagania służą do modyfikacji prototypu i są ponownie przedstawiane klientowi do oceny. Gdy klient zatwierdzi prototyp, jest on używany jako wymaganie do zbudowania właściwego oprogramowania. Rzeczywiste oprogramowanie jest tworzone przy użyciu metody modelu Waterfall.
Zalety modelu prototypowego:
- Model prototypowy zmniejsza koszty i skraca czas rozwoju, ponieważ defekty są wykrywane znacznie wcześniej.
- Brakującą cechę lub funkcjonalność lub zmianę wymagania można zidentyfikować na etapie oceny i zaimplementować w udoskonalonym prototypie.
- Zaangażowanie klienta na początkowym etapie zmniejsza wszelkie nieporozumienia dotyczące wymagań lub zrozumienia dowolnej funkcjonalności.
Wady modelu prototypowego:
- Ponieważ klient jest zaangażowany w każdą fazę, może zmienić wymagania dotyczące produktu końcowego, co zwiększa złożoność zakresu i może wydłużyć czas dostawy produktu.
# 4) Model spiralny
Model spiralny obejmuje podejście iteracyjne i prototypowe.
W iteracjach śledzone są fazy modelu spiralnego. Pętle w modelu reprezentują fazę procesu SDLC, tj. Najbardziej wewnętrzna pętla polega na gromadzeniu i analizie wymagań, która następuje po Planowaniu, analizie ryzyka, rozwoju i ocenie. Kolejna pętla to projektowanie, a następnie implementacja i testowanie.
Model spiralny ma cztery fazy:
- Planowanie
- Ocena ryzyka
- Inżynieria
- Ocena
(i) Planowanie:
Faza planowania obejmuje gromadzenie wymagań, podczas których wszystkie wymagane informacje są zbierane od klienta i dokumentowane. Dla następnej fazy tworzony jest dokument specyfikacji wymagań oprogramowania.
(ii) Analiza ryzyka:
Na tym etapie wybierane jest najlepsze rozwiązanie ze względu na występujące ryzyko, a analiza jest wykonywana poprzez zbudowanie prototypu.
Na przykład , ryzyko związane z dostępem do danych ze zdalnej bazy danych może polegać na tym, że szybkość dostępu do danych może być zbyt niska. Ryzyko można wyeliminować, budując prototyp podsystemu dostępu do danych.
(iii) Inżynieria:
Po wykonaniu analizy ryzyka następuje kodowanie i testowanie.
(iv) Ocena:
Klient ocenia opracowany system i planuje kolejną iterację.
Zalety modelu spiralnego:
- Analiza ryzyka jest szeroko przeprowadzana przy użyciu modeli prototypowych.
- Wszelkie ulepszenia lub zmiany w funkcjonalności można wprowadzić w następnej iteracji.
Wady modelu spiralnego:
- Model spiralny najlepiej nadaje się tylko do dużych projektów.
- Koszt może być wysoki, ponieważ może zająć dużą liczbę iteracji, co może prowadzić do długiego czasu na osiągnięcie produktu końcowego.
# 5) Iteracyjny model przyrostowy
Iteracyjny model przyrostowy dzieli produkt na małe fragmenty.
Na przykład , Funkcja, która ma zostać opracowana w iteracji, jest ustalana i wdrażana. Każda iteracja przechodzi przez fazy, a mianowicie analizę wymagań, projektowanie, kodowanie i testowanie. W iteracjach nie jest wymagane szczegółowe planowanie.
Po zakończeniu iteracji produkt jest weryfikowany i dostarczany klientowi do oceny i opinii. Opinie klientów są wdrażane w następnej iteracji wraz z nowo dodaną funkcją.
W związku z tym produkt rozwija się pod względem funkcji, a po zakończeniu iteracji ostateczna wersja zawiera wszystkie funkcje produktu.
Fazy iteracyjnego i przyrostowego modelu rozwoju:
- Faza początkowa
- Faza opracowania
- Faza budowy
- Faza przejściowa
(i) Faza powstania:
Faza początkowa obejmuje wymagania i zakres Projektu.
(ii) Faza opracowania:
W fazie opracowywania dostarczana jest architektura robocza produktu, która obejmuje ryzyko zidentyfikowane w fazie początkowej, a także spełnia wymagania niefunkcjonalne.
(iii) Faza budowy:
W fazie Konstrukcji architektura jest wypełniana kodem, który jest gotowy do wdrożenia i tworzony poprzez analizę, projektowanie, wdrażanie i testowanie wymagań funkcjonalnych.
(iv) Faza przejściowa:
W fazie przejściowej produkt jest wdrażany w środowisku produkcyjnym.
Zalety modelu iteracyjnego i przyrostowego:
- Jakakolwiek zmiana w wymaganiu może być łatwo wykonana i nie będzie kosztować, ponieważ istnieje zakres uwzględnienia nowego wymagania w następnej iteracji.
- Ryzyko jest analizowane i identyfikowane w iteracjach.
- Wady są wykrywane na wczesnym etapie.
- Ponieważ produkt jest podzielony na mniejsze części, łatwo jest nim zarządzać.
Niedogodności modelu iteracyjnego i przyrostowego:
- Pełne wymagania i zrozumienie produktu są wymagane, aby rozkładać i budować stopniowo.
# 6) Model Wielkiego Wybuchu
Model Big Bang nie ma żadnego zdefiniowanego procesu. Pieniądze i wysiłki są łączone, ponieważ wkład i produkt są dostarczane jako opracowany produkt, który może być lub nie być tym samym, czego potrzebuje klient.
Model Wielkiego Wybuchu nie wymaga dużego planowania i harmonogramowania. Deweloper przeprowadza analizę wymagań i kodowanie oraz rozwija produkt zgodnie z jego zrozumieniem. Ten model jest używany tylko do małych projektów. Nie ma zespołu testującego i nie przeprowadza się żadnych formalnych testów, co może być przyczyną niepowodzenia projektu.
Zalety Modelu Wielkiego Wybuchu:
- To bardzo prosty model.
- Wymagane jest mniej planowania i harmonogramowania.
- Deweloper ma swobodę tworzenia własnego oprogramowania.
Wady modelu Wielkiego Wybuchu:
- Modele Wielkiego Wybuchu nie mogą być używane w dużych, trwających i złożonych projektach.
- Wysokie ryzyko i niepewność.
# 7) Model zwinny
Model Agile to połączenie modelu iteracyjnego i przyrostowego. Model ten skupia się bardziej na elastyczności podczas opracowywania produktu niż na wymaganiach.
W Agile produkt jest dzielony na małe przyrostowe kompilacje. Nie jest opracowywany jako kompletny produkt za jednym razem. Każda kompilacja zwiększa funkcje. Następna kompilacja jest oparta na poprzedniej funkcjonalności.
W zwinnych iteracjach nazywane są sprintami. Każdy sprint trwa od 2 do 4 tygodni. Na koniec każdego sprintu właściciel produktu weryfikuje produkt i po jego zatwierdzeniu trafia do klienta.
Opinie klientów są brane pod uwagę w celu poprawy, a jego sugestie i ulepszenia są opracowywane w następnym sprincie. Testowanie odbywa się w każdym sprincie, aby zminimalizować ryzyko jakichkolwiek awarii.
Zalety modelu Agile:
- Pozwala na większą elastyczność w dostosowywaniu się do zmian.
- Nową funkcję można łatwo dodać.
- Zadowolenie klienta, ponieważ opinie i sugestie są brane pod uwagę na każdym etapie.
Niedogodności:
- Brak dokumentacji.
- Agile potrzebuje doświadczonych i wysoko wykwalifikowanych zasobów.
- Jeśli klient nie jest pewien, jak dokładnie ma wyglądać produkt, projekt zakończy się niepowodzeniem.
Wniosek
Przestrzeganie odpowiedniego cyklu życia jest bardzo ważne dla pomyślnego zakończenia Projektu. To z kolei ułatwia zarządzanie.
Różne modele cyklu życia oprogramowania mają swoje zalety i wady. Najlepszy model dla dowolnego projektu można określić na podstawie takich czynników, jak wymagania (jasne lub niejasne), złożoność systemu, rozmiar projektu, koszt, ograniczenie umiejętności itp.
Przykład, w przypadku niejasnych wymagań najlepiej jest zastosować modele Spiral i Agile, ponieważ wymaganą zmianę można łatwo wprowadzić na każdym etapie.
Model wodospadu jest modelem podstawowym i wszystkie inne modele SDLC są oparte tylko na nim.
Mam nadzieję, że zdobyłbyś ogromną wiedzę na temat SDLC.
rekomendowane lektury
- Model spiralny - Co to jest model spiralny SDLC?
- Co to jest model wodospadu SDLC?
- Co to jest cykl życia testowania oprogramowania (STLC)?
- Asystent testowania oprogramowania
- 10 NAJLEPSZYCH firm i usług tworzących oprogramowanie niestandardowe w 2021 r
- Praktyczne testowanie oprogramowania - nowy BEZPŁATNY eBook (Pobierz)
- Lokalny - offshore model projektów testowania oprogramowania (i jak sprawić, by to działało dla Ciebie)
- Dlaczego oprogramowanie ma błędy?