Model V jest rodzajem modelu SDLC gdzie proces jest wykonywany sekwencyjnie w kształcie litery V. Nazywa się go również modelem weryfikacji i walidacji. Opiera się na powiązaniu fazy testowej z każdym odpowiednim etapem rozwoju. Rozwój każdego etapu jest bezpośrednio powiązany z fazą testowania. Następna faza rozpoczyna się dopiero po zakończeniu poprzedniej, tzn. każdemu działaniu programistycznemu odpowiada działanie testujące.
Spis treści
- Projekt modelu V
- Znaczenie modelu V
- Zasady modelu V
- Kiedy stosować model V?
- Zalety modelu V
- Wady modelu V
- Wniosek
Model V to model cyklu życia oprogramowania (SDLC), który zapewnia systematyczną i wizualną reprezentację procesu tworzenia oprogramowania. Opiera się na idei kształtu litery V, w której dwie odnogi litery V reprezentują postęp proces tworzenia oprogramowania z zbieranie wymagań i analizy, aż po projektowanie, wdrażanie, testowanie i konserwację.
Projekt modelu V
- Zbieranie i analiza wymagań : Pierwsza faza V-Modelu to faza gromadzenia i analizy wymagań, podczas której zbierane i analizowane są wymagania klienta dotyczące oprogramowania w celu określenia zakresu projektu.
- Projekt: W fazie projektowania opracowywana jest architektura i projekt oprogramowania, w tym projekt wysokiego poziomu i projekt szczegółowy.
- Realizacja: W fazie wdrożenia oprogramowanie budowane jest w oparciu o projekt.
- Testowanie: W fazie testowej oprogramowanie jest testowane pod kątem zgodności z wymaganiami Klienta i wysokiej jakości.
- Zastosowanie: W fazie wdrażania oprogramowanie jest wdrażane i oddawane do użytku.
- Konserwacja: W fazie utrzymania oprogramowanie jest utrzymywane w taki sposób, aby w dalszym ciągu spełniało potrzeby i oczekiwania Klienta.
- Model V jest często używany w bezpieczeństwie: systemów krytycznych, takich jak systemy lotnicze i obronne, ze względu na nacisk na dokładne testowanie i zdolność do jasnego definiowania etapów procesu tworzenia oprogramowania.
Model V SDLC
Poniższa ilustracja przedstawia różne fazy w modelu V SDLC.
Weryfikacja Fazy :
Obejmuje technikę analizy statycznej (przeglądu) wykonaną bez wykonywania kodu. Jest to proces oceny fazy rozwoju produktu mający na celu sprawdzenie, czy spełnione są określone wymagania.
W Modelu V istnieje kilka faz weryfikacji:
Analiza wymagań biznesowych:
Jest to pierwszy etap wyznaczania cyklu rozwoju, w którym należy określić wymagania dotyczące produktu z perspektywy klienta. etapy te obejmują właściwą komunikację z klientem w celu zrozumienia jego wymagań. są to bardzo ważne czynności, którymi należy się odpowiednio zająć, ponieważ przez większość czasu klienci nie wiedzą dokładnie, czego chcą i nie są tego w tym momencie pewni, wówczas stosujemy metodę projekt testu akceptacyjnego planowanie, które jest wykonywane w momencie zapotrzebowania biznesowego, będzie wykorzystywane jako wejście do testów akceptacyjnych.
Projekt systemu:
Projektowanie systemu rozpocznie się, gdy ogólnie będziemy mieć jasność co do wymagań produktu, a następnie będziemy musieli całkowicie zaprojektować system. Zrozumienie to będzie na początku pełnego procesu rozwoju produktu. będzie to korzystne dla przyszłego wykonywania przypadków testowych.
Styl architektoniczny:
Na tym etapie ustalane są i projektowane specyfikacje architektoniczne. Zazwyczaj proponowanych jest kilka podejść technicznych, a ostatecznego wyboru dokonuje się po rozważeniu wykonalności technicznej i finansowej. Architektura systemu jest dalej podzielona na moduły, z których każdy obsługuje odrębną funkcję. Inna nazwa to High-Level Design (HLD).
W tym momencie wymiana danych i komunikacja pomiędzy modułami wewnętrznymi a systemami zewnętrznymi są dobrze rozumiane i zdefiniowane. Na tym etapie można utworzyć i udokumentować testy integracyjne, korzystając z dostarczonych informacji.
Projekt modułu:
Ta faza, znana jako projektowanie niskiego poziomu (LLD), określa kompleksowy projekt wewnętrzny każdego modułu systemu. Kluczowa jest kompatybilność projektu z innymi systemami zewnętrznymi i innymi modułami architektury systemu. Testy jednostkowe są kluczowym elementem każdego procesu programowania, ponieważ pomagają zidentyfikować i wyeliminować większość błędów i wad na wczesnym etapie. W oparciu o wewnętrzne projekty modułów można teraz utworzyć te testy jednostkowe.
Faza kodowania:
Etap kodowania polega na napisaniu kodu dla modułów systemu, które powstały na etapie projektowania. Wymagania systemowe i architektoniczne służą do określenia, który język programowania jest najbardziej odpowiedni.
Podczas kodowania przestrzegane są standardy i zasady kodowania. Zanim ostateczna kompilacja zostanie wpisana do repozytorium, kod przechodzi wiele przeglądów i jest optymalizowany pod kątem optymalnej wydajności.
Walidacja Fazy :
Obejmuje techniki analizy dynamicznej (funkcjonalnej i niefunkcjonalnej) oraz testowanie poprzez wykonanie kodu. Walidacja to proces oceny oprogramowania po zakończeniu fazy rozwojowej w celu ustalenia, czy oprogramowanie spełnia oczekiwania i wymagania klienta.
Zatem Model V zawiera fazy weryfikacji po jednej stronie faz walidacji po drugiej stronie. Fazy weryfikacji i walidacji są połączone fazą kodowania w kształcie litery V. Dlatego nazywa się go Modelem V.
Istnieje kilka Walidacja fazy w modelu V:
mysql nie jest równy
Testów jednostkowych:
Plany testów jednostkowych są opracowywane na etapie projektowania modułu. Te plany testów jednostkowych są wykonywane w celu wyeliminowania błędów w kodzie lub na poziomie jednostki.
Testy integracyjne:
Po zakończeniu testów jednostkowych przeprowadzane są testy integracyjne. W testach integracyjnych moduły są integrowane, a system testowany. Testowanie integracyjne przeprowadza się na etapie projektowania architektury. Test ten sprawdza komunikację modułów między sobą.
Testowanie systemu:
Testowanie systemowe testuje kompletną aplikację pod względem funkcjonalności, współzależności i komunikacji. Testuje wymagania funkcjonalne i niefunkcjonalne tworzonej aplikacji.
Testowanie akceptacyjne użytkownika (UAT):
UAT jest wykonywany w środowisku użytkownika przypominającym środowisko produkcyjne. UAT weryfikuje, czy dostarczony system spełnia wymagania użytkownika i jest gotowy do użycia w świecie rzeczywistym.
Faza projektowania:
- Analiza wymagań: Faza ta obejmuje szczegółową komunikację z klientem w celu zrozumienia jego wymagań i oczekiwań. Ten etap nazywany jest zbieraniem wymagań.
- Projekt systemu: Ta faza obejmuje projekt systemu oraz kompletną konfigurację sprzętu i komunikacji niezbędną do opracowania produktu.
- Styl architektoniczny: Projekt systemu jest dalej podzielony na moduły zajmujące się różnymi funkcjonalnościami. Przesyłanie danych i komunikacja pomiędzy modułami wewnętrznymi oraz ze światem zewnętrznym (innymi systemami) jest jasno zrozumiała.
- Projekt modułu: W tej fazie system rozkłada się na małe moduły. Określono szczegółowy projekt modułów, znany również jako projekt niskiego poziomu (LLD).
Fazy testowania:
- Testów jednostkowych: Plany testów jednostkowych są opracowywane na etapie projektowania modułu. Te plany testów jednostkowych są wykonywane w celu wyeliminowania błędów na poziomie kodu lub jednostki.
- Testy integracyjne: Po zakończeniu testów jednostkowych przeprowadzane są testy integracyjne. W testach integracyjnych moduły są integrowane, a system jest testowany. Testowanie integracyjne przeprowadza się na etapie projektowania architektury. Test ten sprawdza komunikację modułów między sobą.
- Testowanie systemu: Testowanie systemowe testuje kompletną aplikację pod kątem jej funkcjonalności, współzależności i komunikacji. Testuje wymagania funkcjonalne i niefunkcjonalne tworzonej aplikacji.
- Testowanie akceptacyjne użytkownika (UAT): UAT jest wykonywany w środowisku użytkownika przypominającym środowisko produkcyjne. UAT weryfikuje, czy dostarczony system spełnia wymagania użytkownika i jest gotowy do użycia w świecie rzeczywistym.
Wyzwanie przemysłowe:
Wraz z ewolucją branży technologie stają się coraz bardziej złożone, coraz szybsze i stale się zmieniają, jednakże pozostaje zestaw podstawowych zasad i koncepcji, które mają dziś takie samo zastosowanie, jak wtedy, gdy IT było w powijakach.
- Dokładnie definiuj i udoskonalaj wymagania użytkowników.
- Zaprojektuj i zbuduj aplikację zgodnie z wymaganiami autoryzowanego użytkownika.
- Sprawdź, czy zbudowana przez nich aplikacja jest zgodna z autoryzowanymi wymaganiami biznesowymi.
Znaczenie modelu V
1. Wczesna identyfikacja usterek
Włączając zadania weryfikacji i walidacji na każdym etapie procesu rozwoju, V-Model zachęca do wczesnego testowania. Obniża to koszty i wysiłek potrzebny do rozwiązania problemów na późniejszym etapie cyklu rozwojowego, pomagając we wczesnym wykrywaniu i rozwiązywaniu błędów.
2. określenie faz rozwoju i testowania
Model V zawiera fazę testowania odpowiadającą każdemu etapowi procesu rozwoju. Zapewniając jasne rozplanowanie procesów testowania i rozwoju, to przejrzyste mapowanie promuje metodyczne i uporządkowane podejście do inżynierii oprogramowania.
3. Zapobiega testom Wielkiego Wybuchu
W tradycyjnych modelach programowania często przeprowadza się testy na samym końcu cyklu życia oprogramowania, co skutkuje podejściem Wielkiego Wybuchu, w którym wszystkie operacje testowania skupiają się jednocześnie. Integrując działania testowe z procesem rozwoju i zachęcając do bardziej postępowego i regulowanego podejścia do testowania, V-Model zapobiega temu.
4. Poprawia współpracę
Na każdym poziomie V-Model promuje współpracę pomiędzy zespołami testującymi i programistycznymi. Dzięki tej współpracy wymagania projektu, wybory projektowe i metodologie testowania są lepiej rozumiane, co poprawia skuteczność i efektywność procesu rozwoju.
5. Lepsze zapewnienie jakości
Ogólne zapewnienie jakości jest wzmocnione przez Model V, który obejmuje operacje testowe na każdym poziomie. Zanim program osiągnie końcowy etap wdrożenia, upewnia się, że spełnia wymagania i przechodzi rygorystyczny proces walidacji i weryfikacji.
Zasady modelu V
- Duży do małego: W V-Model testowanie odbywa się w perspektywie hierarchicznej, na przykład wymagań zidentyfikowanych przez zespół projektowy, tworzenia projektów wysokiego poziomu i projektowania szczegółowego projektu. W miarę jak każda z tych faz jest zakończona, wymagania stają się coraz bardziej dopracowane i szczegółowe.
- Integralność danych/procesów: Zasada ta stanowi, że pomyślny projekt każdego projektu wymaga uwzględnienia i spójności zarówno danych, jak i procesów. Przy każdym wymaganiu należy zidentyfikować elementy procesu.
- Skalowalność: Zasada ta stwierdza, że koncepcja V-Modelu zapewnia elastyczność dostosowania się do każdego projektu IT, niezależnie od jego wielkości, złożoności i czasu trwania.
- Odsyłacze: Bezpośrednia korelacja pomiędzy wymaganiami a odpowiadającymi im działaniami testowymi nazywana jest odsyłaczami.
Dokumentacja rzeczowa:
Zasada ta stanowi, że każdy projekt wymaga stworzenia dokumentu. Dokumentacja ta jest wymagana i stosowana zarówno przez zespół programistów projektu, jak i zespół wsparcia. Dokumentacja służy do utrzymywania aplikacji po jej udostępnieniu w środowisku produkcyjnym.
Dlaczego preferowane?
- Jest łatwy w zarządzaniu ze względu na sztywność modelu. Każda faza V-Modelu obejmuje określone produkty i proces przeglądu.
- Proaktywne śledzenie defektów – czyli defekty są wykrywane na wczesnym etapie.
Kiedy użyć z Model V ?
- Identyfikowalność wymagań: Model V sprawdza się w sytuacjach, gdy konieczne jest zapewnienie precyzyjnej identyfikowalności pomiędzy wymaganiami i powiązanymi z nimi przypadkami testowymi.
- Złożone projekty: V-Model oferuje metodyczny sposób zarządzania działaniami testowymi i zmniejszania ryzyka związanego z problemami z integracją i interfejsem dla projektów o wysokim stopniu złożoności i współzależności pomiędzy komponentami systemu.
- Projekty przypominające wodospad : Ponieważ V-Model oferuje przystępną strukturę do organizowania, przeprowadzania i monitorowania działań testowych na każdym poziomie rozwoju, jest on odpowiedni dla projektów, które wykorzystują sekwencyjne podejście do programowania, podobnie jak model kaskadowy.
- Systemy krytyczne dla bezpieczeństwa: Systemy te są stosowane w przemyśle lotniczym, motoryzacyjnym i służbie zdrowia. Kładą duży nacisk na sztywne procedury weryfikacji i walidacji, które pomagają zagwarantować spełnienie podstawowych wymagań systemowych oraz wykrycie i wyeliminowanie potencjalnych zagrożeń na wczesnym etapie procesu rozwoju.
Zalety modelu V
- Jest to model wysoce zdyscyplinowany, a fazy są realizowane pojedynczo.
- V-Model jest używany w małych projektach, w których wymagania projektowe są jasne.
- Prosty i łatwy do zrozumienia i użycia.
- Model ten koncentruje się na działaniach weryfikacyjnych i walidacyjnych na początku cyklu życia, zwiększając w ten sposób prawdopodobieństwo zbudowania produktu wolnego od błędów i dobrej jakości.
- Umożliwia kierownictwu projektów dokładne śledzenie postępów.
- Jasny i ustrukturyzowany proces: Model V zapewnia przejrzysty i ustrukturyzowany proces rozwój oprogramowania , co ułatwi zrozumienie i przestrzeganie.
- Nacisk na testowanie: Model V kładzie duży nacisk na testowanie, co pomaga zapewnić jakość i niezawodność oprogramowania.
- Lepsza identyfikowalność: Model V zapewnia wyraźne powiązanie między wymaganiami a produktem końcowym, ułatwiając śledzenie i zarządzanie zmianami w oprogramowaniu.
- Lepsza komunikacja: Przejrzysta struktura V-Modelu pomaga poprawić komunikację pomiędzy klientem a zespołem programistów.
Wady modelu V
- Wysokie ryzyko i niepewność.
- Nie nadaje się do projektów złożonych i obiektowych.
- Nie nadaje się do projektów, w których wymagania nie są jasne i wiążą się z dużym ryzykiem zmiany.
- Model ten nie obsługuje iteracji faz.
- Nie radzi sobie łatwo z współbieżnymi zdarzeniami.
- Brak elastyczności: Model V jest modelem liniowym i sekwencyjnym, co może utrudniać dostosowanie się do zmieniających się wymagań lub nieoczekiwanych zdarzeń.
- Czasochłonne: Model V może być czasochłonny, ponieważ wymaga dużej ilości dokumentacji i testów.
- Nadmierne poleganie na dokumentacji: Model V kładzie duży nacisk na dokumentację, co może prowadzić do nadmiernego polegania na dokumentacji kosztem rzeczywistych prac programistycznych.
Wniosek
Naukowe i zorganizowane podejście do cyklu życia oprogramowania (SDLC) zapewnia V-Model inżynierii oprogramowania. Przy wyborze dowolnego modelu SDLC, w tym modelu V, należy wziąć pod uwagę wiedzę zespołu w zakresie wybranej metodologii, unikalne cechy projektu i charakter wymagań.
Książka referencyjna:
Inżynieria oprogramowania: podejście praktyka autorstwa Rogera S. Pressmana, opublikowane przez McGraw-Hill Education, 2017.