Cykl życia oprogramowania (cykl życia oprogramowania). Cykl życia oprogramowania

Cykl życia oprogramowania

Koło życia oprogramowanie - okres, który rozpoczyna się od momentu podjęcia decyzji o potrzebie stworzenia oprogramowania, a kończy w momencie całkowitego wycofania go z usługi. (Standard IEEE Std 610.12)

Konieczność określenia etapów cyklu życia oprogramowania (LC) wynika z chęci deweloperów do podnoszenia jakości oprogramowania poprzez optymalne zarządzanie rozwojem i stosowanie różnorodnych mechanizmów kontroli jakości na każdym etapie, od ustalenia problemu do autorskiego wsparcia oprogramowania. Najbardziej ogólną reprezentacją cyklu życia oprogramowania jest model w postaci podstawowych etapów - procesów, do których należą:

Analiza systemu i uzasadnienie wymagań oprogramowania;

Wstępny (szkic) i szczegółowy (techniczny) projekt oprogramowania;

Rozwój komponentów oprogramowania, ich integracja i debugowanie oprogramowania jako całości;

Testowanie, działanie próbne i replikacja oprogramowania;

Regularna obsługa oprogramowania, wsparcie serwisowe i analiza wyników;

Utrzymanie oprogramowania, jego modyfikacja i ulepszanie, tworzenie nowych wersji.

Model ten jest ogólnie akceptowany i odpowiada zarówno krajowym dokumentom regulacyjnym w zakresie tworzenia oprogramowania, jak i zagranicznym. Z punktu widzenia zapewnienia bezpieczeństwa technologicznego wskazane jest bardziej szczegółowe rozważenie cech prezentacji etapów cyklu życia w modelach zagranicznych, ponieważ jest to obce oprogramowanie są najbardziej prawdopodobnymi nośnikami defektów oprogramowania typu sabotaż.

Standardy cyklu życia oprogramowania

GOST 34.601-90

ISO / IEC 12207: 1995 (rosyjski odpowiednik - GOST R ISO / IEC 12207-99)

Graficzna prezentacja modeli cyklu życia pozwala na wizualne podkreślenie ich cech oraz niektórych właściwości procesów.

Początkowo stworzono kaskadowy model cyklu życia, w którym główne etapy rozpoczynały się jeden po drugim przy wykorzystaniu wyników wcześniejszych prac. Zapewnia sekwencyjną realizację wszystkich etapów projektu w ściśle ustalonej kolejności. Przejście do kolejnego etapu oznacza całkowite zakończenie prac na poprzednim etapie. Wymagania zidentyfikowane na etapie tworzenia wymagań są ściśle udokumentowane w postaci specyfikacji technicznych i są ustalane na cały czas realizacji projektu. Każdy etap kończy się wydaniem pełnego zestawu dokumentacji, wystarczającego do dalszego rozwoju przez inny zespół programistów. Niedokładność któregokolwiek wymagania lub jego błędna interpretacja w rezultacie prowadzi do tego, że konieczne jest „wycofanie się” do wczesnej fazy projektu, a wymagana rewizja nie tylko wytrąca zespół projektowy z harmonogramu, ale często prowadzi do jakościowego wzrostu kosztów i ewentualnie do zakończenia projektu. w formie, w jakiej został pierwotnie poczęty. Głównym błędnym przekonaniem autorów modelu kaskadowego jest założenie, że projekt przechodzi raz przez cały proces, zaprojektowana architektura jest dobra i łatwa w użyciu, projekt implementacji jest rozsądny, a błędy wdrożeniowe są łatwo eliminowane wraz z postępem testów. Model ten zakłada, że \u200b\u200bwszystkie błędy będą skoncentrowane podczas implementacji, dlatego są one równomiernie eliminowane podczas testowania komponentów i systemów. Dlatego model kaskadowy dla dużych projektów nie jest zbyt realistyczny i może być skutecznie używany tylko do tworzenia małych systemów.

Najbardziej konkretny jest spiralny model cyklu życia. W tym modelu uwaga skupiona jest na iteracyjnym procesie początkowych etapów projektowania. Na tych etapach kolejno tworzone są koncepcje, specyfikacje wymagań, projekt wstępny i szczegółowy. Na każdym etapie doprecyzowuje się treść pracy i koncentruje się na wyglądzie tworzonego oprogramowania, oceniana jest jakość uzyskanych wyników oraz planowana jest praca kolejnej iteracji. W każdej iteracji oceniane są następujące elementy:

Ryzyko przekroczenia terminów i kosztów projektu;

Konieczność wykonania jeszcze jednej iteracji;

Stopień kompletności i dokładności zrozumienia wymagań systemu;

Możliwość zakończenia projektu.

Standaryzacja oprogramowania cyklu życia przebiega w trzech kierunkach. Pierwszy kierunek jest organizowany i stymulowany przez Międzynarodową Organizację Normalizacyjną (ISO - Międzynarodowa Organizacja Normalizacyjna) i Międzynarodową Komisję Elektrotechniczną (IEC - Międzynarodowa Komisja Elektrotechniczna). Na tym poziomie dokonuje się standaryzacji najpowszechniejszych procesów technologicznych, które są istotne dla współpracy międzynarodowej. Drugi kierunek jest aktywnie rozwijany w USA przez Institute of Electrotechnical and Electronics Engineers (IEEE) wraz z American National Standards Institute (ANSI). Normy ISO / IEC i ANSI / IEEE mają głównie charakter doradczy. Trzeci obszar jest stymulowany przez Departament Obrony USA (DOD). Standardy DOD są wiążące dla firm zleconych przez Departament Obrony Stanów Zjednoczonych.

Do projektowania oprogramowania złożonego systemu, zwłaszcza systemu czasu rzeczywistego, zaleca się stosowanie ogólnosystemowego modelu cyklu życia, opartego na połączeniu wszystkich znanych prac w ramach rozważanych podstawowych procesów. Model ten jest przeznaczony do wykorzystania w planowaniu, harmonogramowaniu, zarządzaniu różnymi projektami oprogramowania.

Wskazane jest podzielenie zestawu etapów tego modelu cyklu życia na dwie części, różniące się istotnie cechami procesów, cechami techniczno-ekonomicznymi i wpływającymi na nie czynnikami.

W pierwszej części cyklu życia przeprowadzana jest analiza systemu, projektowanie, rozwój, testowanie i testowanie oprogramowania. Zakres prac, ich pracochłonność, czas trwania i inne cechy na tych etapach w istotny sposób zależą od obiektu i otoczenia deweloperskiego. Badanie takich zależności dla różnych klas oprogramowania pozwala przewidzieć skład i główne cechy harmonogramów pracy dla nowych wersji oprogramowania.

Druga część cyklu życia, odzwierciedlająca wsparcie działania i utrzymania oprogramowania, jest relatywnie słabo związana z charakterystyką obiektu i środowiska deweloperskiego. Nazewnictwo pracy na tych etapach jest bardziej stabilne, a ich pracochłonność i czas trwania mogą się znacznie różnić i zależeć od masowego wykorzystania oprogramowania. Dla każdego modelu cyklu życia zapewnienie wysokiej jakości systemów oprogramowania jest możliwe tylko przy zastosowaniu regulowanego procesu technologicznego na każdym z tych etapów. Taki proces wspierają narzędzia automatyzacji rozwoju, które warto wybrać z dostępnych lub stworzyć, biorąc pod uwagę obiekt deweloperski i odpowiednią listę prac.

Cykl życia oprogramowania (oprogramowania) to okres, który rozpoczyna się od momentu podjęcia decyzji o potrzebie stworzenia oprogramowania, a kończy w momencie całkowitego wycofania go z użytkowania. Ten cykl to proces tworzenia i rozwijania oprogramowania.

Etapy cyklu życia:

2. Projekt

3. Wdrożenie

4. Montaż, testowanie, testowanie

5. Wdrożenie (wydanie)

6. Escort

Istnieją 2 przypadki produkcji oprogramowania: 1) Oprogramowanie jest tworzone dla konkretnego klienta. W takim przypadku musisz zamienić zastosowane zadanie na programistyczne. Musisz zrozumieć, w jaki sposób środowisko, w którym chcesz zautomatyzować funkcje (analiza procesów biznesowych). W efekcie pojawia się dokumentacja-specyfikacja wymagania, w której dokładnie należy wskazać zadania. rozwiązane i na jakich warunkach. Ta praca jest wykonywana przez analityka systemowego (analityka procesów biznesowych).

2) Oprogramowanie jest przeznaczone na rynek. Musisz przeprowadzić badania marketingowe i dowiedzieć się, jakiego produktu nie ma na rynku. Wiąże się to z dużym ryzykiem. Celem jest opracowanie specyfikacji wymagań.

Projekt

Celem jest określenie ogólnej struktury (architektury) oprogramowania. Rezultatem jest specyfikacja oprogramowania. Zadanie to wykonuje programista systemu.

Realizacja

Pisanie kodu programu. Wdrożenie obejmuje programowanie, testowanie i dokumentację.

Montaż, testowanie, testowanie

Składanie wszystkiego, co zrobili różni programiści. Testowanie całego pakietu oprogramowania. Debugowanie - znajdowanie i usuwanie przyczyn błędów. Test - udoskonalenie właściwości techniczne... W rezultacie program ma gwarancję działania.

Wdrożenie (wydanie)

Wdrożenie - gdy pracują dla jednego klienta. Obejmuje konfigurację programu u klienta, szkolenie klienta, doradztwo, eliminację błędów i oczywistych braków. Oprogramowanie powinno być wyobcowane - użytkownik może pracować z oprogramowaniem bez udziału autora.

Wydanie - kiedy oprogramowanie jest wprowadzane na rynek. Zaczyna się od fazy testów beta. Odpowiedni wersja - wersja beta. Testy alfa to testy wykonywane przez osoby z tej samej organizacji, które nie były zaangażowane w tworzenie oprogramowania. Testy beta - wykonanie kilku kopii oprogramowania i wysłanie go do potencjalnych klientów. Celem jest dwukrotne sprawdzenie rozwoju oprogramowania.

Jeśli na rynek zostanie wypuszczone całkowicie nowe oprogramowanie, możliwych jest kilka testów beta. Po testach beta - wydanie wersji komercyjnej.

Eskorta

Eliminacja błędów zauważonych podczas pracy. Dokonywanie drobnych ulepszeń. Kumulacja propozycji rozwoju następnej wersji.

Modele cyklu życia

1. Wodospad („wodospad”, model kaskadowy)

2. Prototypowanie

Po pierwsze, nie jest rozwijane samo oprogramowanie, ale jego prototyp, który zawiera rozwiązanie głównych problemów stojących przed twórcami. Po pomyślnym zakończeniu opracowywania prototypu prawdziwy produkt programowy jest opracowywany zgodnie z tymi samymi zasadami. Prototyp pozwala lepiej zrozumieć wymagania dla opracowanego programu. Korzystając z prototypu, klient może również precyzyjniej sformułować swoje wymagania. Deweloper ma możliwość zaprezentowania klientowi wstępnych wyników swojej pracy za pomocą prototypu.

3. Model iteracyjny

Zadanie podzielone jest na podzadania i ustalana jest kolejność ich realizacji, dzięki czemu każde kolejne podzadanie rozszerza możliwości programu. Sukces zasadniczo zależy od tego, jak dobrze zadania są podzielone na podzadania i jak wybrana jest kolejność. Zalety: 1) możliwość aktywnego udziału klienta w rozwoju, ma on możliwość doprecyzowania swoich wymagań podczas rozwoju; 2) możliwość testowania nowo opracowanych części razem z wcześniej opracowanymi, co zmniejszy koszt złożonego debugowania; 3) w trakcie rozwoju można rozpocząć wdrażanie w częściach.

na elektrotechnice). Norma ta definiuje strukturę cyklu życia, zawierającą procesy, działania i zadania, które muszą być wykonane podczas tworzenia PS.

W tym standardzie PS (lub oprogramowanie) definiuje się jako zbiór programów komputerowych, procedur i ewentualnie związanej z nimi dokumentacji i danych. Proces definiuje się jako zbiór powiązanych ze sobą działań, które przekształcają niektóre dane wejściowe w dane wyjściowe (G. Myers nazywa to translacją danych). Każdy proces charakteryzuje się określonymi zadaniami i metodami ich rozwiązywania. Z kolei każdy proces jest podzielony na zestaw działań, a każde działanie na zestaw zadań. Każdy proces, akcja lub zadanie jest inicjowane i wykonywane przez inny proces w zależności od potrzeb i nie ma z góry określonych sekwencji wykonywania (oczywiście przy zachowaniu połączeń zgodnie z danymi wejściowymi).

Należy zauważyć, że w Związku Radzieckim, a następnie w Rosji, tworzenie oprogramowania (oprogramowania) było początkowo, w latach 70. ubiegłego wieku, regulowane standardami GOST ESPD (Unified system dokumentacji programowej - seria GOST 19.XXX), które koncentrowały się na klasie stosunkowo proste, niewielkie programy tworzone przez indywidualnych programistów. Obecnie standardy te są przestarzałe koncepcyjnie i formalnie, upłynęły okresy ich obowiązywania, a ich stosowanie jest niepraktyczne.

Procesy tworzenia zautomatyzowanych systemów (AS), w skład których wchodzi również oprogramowanie, regulują normy GOST 34.601-90 „Informatyka. Zbiór standardów dla zautomatyzowanych systemów. Etapy rozwoju”, GOST 34.602-89 „Informatyka. Zestaw standardów dla zautomatyzowanych systemów. Zadanie techniczne stworzenie zautomatyzowanego systemu ”i GOST 34.603-92„ Technologia informacyjna. Rodzaje testów systemów zautomatyzowanych. ”Jednak wiele zapisów tych norm jest nieaktualnych, a inne nie są wystarczająco odzwierciedlone, aby można je było zastosować w poważnych projektach tworzenia systemu oprogramowania. Dlatego w krajowych projektach zaleca się stosowanie nowoczesnych standardów międzynarodowych.

Zgodnie z normą ISO / IEC 12207 wszystkie procesy cyklu życia oprogramowania są podzielone na trzy grupy (rysunek 5.1).


Postać: 5.1.

Grupy definiują pięć głównych procesów: zakup, dostawa, rozwój, eksploatacja i utrzymanie. Osiem procesów pomocniczych wspiera realizację głównych procesów, a mianowicie dokumentowanie, zarządzanie konfiguracją, zapewnienie jakości, weryfikacja, certyfikacja, ocena wspólna, audyt, rozwiązywanie problemów. Cztery procesy organizacyjne zapewniają zarządzanie, infrastrukturę, doskonalenie i uczenie się.

5.2. Główne procesy cyklu życia PS

Proces przejęcia składa się z działań i zadań klienta kupującego PS. Ten proces obejmuje następujące kroki:

  1. zainicjowanie przejęcia;
  2. przygotowywanie wniosków aplikacyjnych;
  3. przygotowanie i dostosowanie umowy;
  4. nadzór nad działalnością dostawcy;
  5. przyjęcie i zakończenie prac.

Zainicjowanie przejęcia obejmuje następujące zadania:

  1. określenie przez klienta jego potrzeb w zakresie nabycia, rozwoju lub ulepszenia systemu, oprogramowania lub usług;
  2. podejmowanie decyzji dotyczących zakupu, rozwoju lub ulepszania istniejącego oprogramowania;
  3. sprawdzenie dostępności niezbędnej dokumentacji, gwarancji, certyfikatów, licencji oraz wsparcia w przypadku zakupu oprogramowania;
  4. przygotowanie i zatwierdzenie planu akwizycji, w tym wymagań systemowych, rodzaju umowy, odpowiedzialności stron itp.

Wnioski aplikacyjne muszą zawierać:

  1. wymagania dotyczące systemu;
  2. lista oprogramowania;
  3. warunki zakupu i umowy;
  4. ograniczenia techniczne (np. dotyczące środowiska pracy systemu).

Oferty są wysyłane do wybranego dostawcy lub wielu dostawców w przypadku przetargu. Dostawca to organizacja, która zawiera umowę z klientem na dostawę systemu, oprogramowania lub usługi oprogramowania na warunkach określonych w umowie.

Przygotowanie i dostosowanie umowy obejmuje następujące zadania:

  1. ustalenie przez klienta procedury wyboru dostawcy, w tym kryteriów oceny ofert potencjalnych dostawców;
  2. wybór konkretnego dostawcy na podstawie analizy ofert;
  3. przygotowanie i zakończenie umowy z dostawcami;
  4. wprowadzanie zmian (jeśli to konieczne) do umowy w trakcie jej realizacji.

Nadzór nad dostawcą jest prowadzony zgodnie z działaniami określonymi w ramach procesów wspólnej oceny i audytu. Podczas akceptacji przygotowywane i przeprowadzane są niezbędne testy. Zakończenie robót w ramach umowy następuje w przypadku spełnienia wszystkich warunków odbioru.

Proces dostawy obejmuje czynności i zadania wykonywane przez dostawcę, który dostarcza klientowi oprogramowanie lub usługę. Ten proces obejmuje następujące kroki:

  1. inicjacja dostawy;
  2. przygotowanie odpowiedzi na wnioski aplikacyjne;
  3. przygotowanie umowy;
  4. planowanie pracy w ramach umowy;
  5. wykonanie i kontrola prac kontraktowych oraz ich ocena;
  6. dostawa i zakończenie robót.

Rozpoczęcie dostaw polega na rozpatrzeniu przez dostawcę ofert i podjęciu decyzji, czy zgodzić się z określonymi wymaganiami i warunkami, czy też zaproponować własne (uzgodnić). Planowanie obejmuje następujące zadania:

  1. podjęcie przez dostawcę decyzji dotyczącej wykonywania prac we własnym zakresie lub z udziałem podwykonawcy;
  2. opracowanie przez dostawcę planu zarządzania projektem zawierającego strukturę organizacyjną projektu, określenie obowiązków, wymagania techniczne dotyczące środowiska programistycznego i zasobów, zarządzanie podwykonawcami itp.

Proces rozwoju obejmuje czynności i zadania wykonywane przez programistę i obejmuje prace związane z tworzeniem oprogramowania i jego komponentów zgodnie z określonymi wymaganiami. Obejmuje to przygotowanie dokumentacji projektowej i operacyjnej, przygotowanie materiałów niezbędnych do przetestowania funkcjonalności oraz jakość oprogramowania, materiały niezbędne do zorganizowania szkolenia personelu itp.

Proces rozwoju obejmuje następujące kroki:

  1. praca przygotowawcza;
  2. analiza wymagań dla systemu;
  3. projektowanie architektury systemu;
  4. analiza wymagań dotyczących oprogramowania;
  5. projektowanie architektury oprogramowania;
  6. szczegółowy projekt oprogramowania;
  7. kodowanie i testowanie oprogramowania;
  8. integracja oprogramowania;
  9. testowanie kwalifikacji oprogramowania;
  10. integracja systemu;
  11. testowanie kwalifikacji systemu;
  12. instalacja oprogramowania;
  13. akceptacja oprogramowania.

Prace przygotowawcze rozpoczynają się od wyboru modelu cyklu życia oprogramowania odpowiadającego skali, znaczeniu i złożoności projektu. Działania i zadania procesu deweloperskiego powinny być zgodne z wybranym modelem. Deweloper musi wybrać, dostosować się do warunków projektu i zastosować standardy, metody i narzędzia programistyczne, a także sporządzić plan pracy.

Analiza wymagań dla systemu implikuje określenie jego funkcjonalności, niestandardowe wymagania, wymagania dotyczące niezawodności, bezpieczeństwa, wymagań dotyczących interfejsów zewnętrznych, wydajności itp. Wymagania systemowe są oceniane na podstawie kryteriów wykonalności i testowalności.

Projekt architektury systemu polega na zdefiniowaniu elementów jego wyposażenia (sprzętu), oprogramowania oraz operacji wykonywanych przez personel obsługujący system. Architektura systemu powinna być zgodna z wymaganiami systemowymi oraz przyjętymi standardami i praktykami projektowymi.

Analiza wymagań oprogramowania obejmuje określenie następujących cech dla każdego komponentu oprogramowania:

  1. funkcjonalność, w tym charakterystyka wydajności i środowisko operacyjne komponentów;
  2. interfejsy zewnętrzne;
  3. niezawodność i specyfikacje bezpieczeństwa;
  4. wymagania ergonomiczne;
  5. wymagania dotyczące wykorzystywanych danych;
  6. wymagania dotyczące instalacji i odbioru;
  7. wymagania dotyczące dokumentacji użytkownika;
  8. wymagania dotyczące eksploatacji i konserwacji.

Wymagania dotyczące oprogramowania są oceniane na podstawie kryteriów spełnienia wymagań dla systemu jako całości, wykonalności i weryfikowalności podczas testów.

Projekt architektury oprogramowania obejmuje następujące zadania dla każdego komponentu oprogramowania:

  1. transformacja wymagań oprogramowania w architekturę, która determinuje wysoki poziom struktura oprogramowania i skład jego komponentów;
  2. opracowywanie i dokumentacja interfejsów programowania oprogramowania i baz danych (DB);
  3. opracowanie wstępnej wersji dokumentacji użytkownika;
  4. opracowanie i dokumentowanie wymagań wstępnych testów i planu integracji oprogramowania.

Szczegółowy projekt oprogramowania obejmuje następujące zadania:

  1. opis komponentów oprogramowania i interfejsów między nimi na niższym poziomie, wystarczającym do późniejszego kodowania i testowania;
  2. opracowanie i dokumentacja szczegółowego projektu bazy danych;
  3. aktualizacja (jeśli to konieczne) dokumentacji użytkownika;
  4. opracowywanie i dokumentowanie wymagań testowych i planu testów dla komponentów oprogramowania;

Kodowanie i testowanie oprogramowania obejmuje następujące zadania:

  1. kodowanie i dokumentowanie każdego komponentu oprogramowania i bazy danych, a także przygotowanie zestawu procedur testowych i danych do ich testowania;
  2. testowanie każdego komponentu oprogramowania i bazy danych pod kątem zgodności z ich wymaganiami, a następnie dokumentowanie wyników testów;
  3. aktualizacja dokumentacji (jeśli to konieczne);
  4. aktualizacja planu integracji oprogramowania.

Integracja oprogramowania zapewnia montaż tworzonych komponentów oprogramowania zgodnie z planem integracji i testowania zagregowanych komponentów. Dla każdego z zagregowanych komponentów opracowywane są zestawy testów i procedur testowych w celu przetestowania każdego z wymagań kwalifikacyjnych w kolejnych testach kwalifikacyjnych. Wymóg kwalifikacyjny to zestaw kryteriów lub warunków, które muszą zostać spełnione, aby się zakwalifikować oprogramowanie zgodny ze specyfikacjami i gotowy do użycia w terenie.

Testy kwalifikacyjne oprogramowania są przeprowadzane przez programistę w obecności klienta (

Proces eksploatacji obejmuje czynności i zadania organizacji operatora obsługującego system. Proces obsługi obejmuje następujące kroki.

  1. Prace przygotowawcze, które obejmują następujące zadania operatora:

    1. planowanie czynności i prac wykonywanych podczas eksploatacji oraz ustalanie standardów operacyjnych;
    2. określenie procedur lokalizacji i rozwiązywania problemów pojawiających się podczas eksploatacji.
  2. Testy operacyjne, przeprowadzane dla każdej kolejnej wersji oprogramowania, po czym ta wersja jest wprowadzana do eksploatacji.
  3. Faktyczna praca systemu, która jest wykonywana w przewidzianym środowisku zgodnie z dokumentacją użytkownika.
  4. analiza problemów i wniosków o modyfikację oprogramowania (analiza komunikatów o problemie lub prośbie o modyfikację, ocena skali, kosztów modyfikacji, uzyskanego efektu, ocena wykonalności modyfikacji);
  5. modyfikacja oprogramowania (wprowadzanie zmian w komponentach oprogramowania i dokumentacji zgodnie z zasadami procesu rozwoju);
  6. oględziny i odbiory (pod względem integralności zmodyfikowanego systemu);
  7. transfer oprogramowania do innego środowiska (konwersja programów i danych, równoległe działanie oprogramowania w starym i nowym środowisku przez określony czas);
  8. wycofanie oprogramowania na decyzję klienta z udziałem organizacji obsługującej, serwisu i użytkowników. W takim przypadku oprogramowanie i dokumentacja podlegają archiwizacji zgodnie z umową.

Cykl życia oprogramowania. Etapy i etapy

Cykl życia SI to seria zdarzeń, które zachodzą w systemie w procesie jego tworzenia i użytkowania.

Etap - fragment procesu wytwarzania oprogramowania, ograniczony w określonym czasie i kończący się wydaniem określonego produktu (modele, komponenty oprogramowania, dokumentacja), określony przez wymagania stawiane na tym etapie.

Cykl życia jest tradycyjnie modelowany jako szereg kolejnych etapów (lub etapów, faz). Obecnie nie ma ogólnie przyjętego podziału cyklu życia systemu oprogramowania na etapy. Czasami etap jest wyodrębniany jako oddzielny element, czasami stanowi integralną część większej sceny. Działania podjęte na tym czy innym etapie mogą się różnić. Nazwy tych etapów nie są jednolite.

Tradycyjnie wyróżnia się następujące główne etapy cyklu życia oprogramowania:

Analiza wymagań,

Projekt,

Kodowanie (programowanie),

Testowanie i debugowanie,

Obsługa i konserwacja.

Cykl życia oprogramowania. Model kaskadowy

model kaskadowy (70-80 lat) ≈ zakłada przejście do kolejnego etapu po całkowitym zakończeniu prac na poprzednim etapie,

Głównym osiągnięciem modelu wodospadu jest ukończenie etapów. Umożliwia to planowanie kosztów i terminów. Ponadto tworzona jest kompletna i spójna dokumentacja projektowa.

Model kaskadowy ma zastosowanie do małych projektów oprogramowania z jasno określonymi i niezmiennymi wymaganiami. Prawdziwy proces może ujawnić awarie na dowolnym etapie, co prowadzi do cofnięcia się do jednego z poprzednich etapów. Model takiej produkcji oprogramowania to powrót kaskadowy

Cykl życia oprogramowania. Model krok po kroku ze sterowaniem pośrednim

model krok po kroku ze sterowaniem pośrednim (80-85) ≈ iteracyjny model tworzenia oprogramowania z cyklami sprzężenie zwrotne między etapami. Zaletą tego modelu jest to, że korekty międzyetapowe są mniej pracochłonne niż model kaskadowy; jednakże żywotność każdego etapu rozciąga się na cały okres rozwoju,

Główne etapy rozwiązywania problemów

Celem programowania jest opisanie procesów przetwarzania danych (zwanych dalej prostymi procesami).

Dane (dane) to przedstawienie faktów i pomysłów w sformalizowanej formie, nadające się do przekazania i przetwarzania w określonym procesie, a informacja (informacja) to znaczenie, jakie nadaje się danym, gdy są prezentowane.

Przetwarzanie danych to wykonywanie systematycznej sekwencji działań na danych. Dane są prezentowane i przechowywane na nośnikach danych.

Zbiór nośników danych używanych do wszelkiego rodzaju przetwarzania danych nazywany jest nośnikiem danych.

Zbiór danych zawartych w dowolnym momencie w środowisku informacyjnym to stan środowiska informacyjnego.

Proces można zdefiniować jako ciąg następujących po sobie stanów określonego środowiska informacyjnego.

Opisanie procesu oznacza określenie sekwencji stanów środowiska informacyjnego. Aby wymagany proces został wygenerowany automatycznie na komputerze zgodnie z podanym opisem, opis ten musi zostać sformalizowany.

Kryteria jakości oprogramowania

Produkt komercyjny (produkt, usługa) musi spełniać wymagania klienta.

Jakość to obiektywna cecha produktu (produktu, usługi), pokazująca stopień zadowolenia klienta

Cechy jakościowe:

› Operatywność - system działa i realizuje wymagane funkcje.

› Niezawodność - system działa bezawaryjnie i bezawaryjnie.

› Możliwość odzyskania.

› Wydajność - system wykonuje swoje funkcje w najlepszy możliwy sposób.

› Wydajność ekonomiczna - minimalny koszt produktu końcowego przy maksymalnym zysku.

Cechy jakościowe:

› Uwzględniając czynnik ludzki - łatwość obsługi, szybkość nauki pracy z PP, łatwość konserwacji, wprowadzania zmian.

› Ruchliwość (przenoszenie) - przenoszenie kodu na inną platformę lub system.

› Kompletność funkcjonalna - być może najpełniejsza realizacja funkcji zewnętrznych.

› Dokładność obliczeń

Właściwości algorytmu.

Skuteczność oznacza możliwość uzyskania wyniku po wykonaniu skończonej liczby operacji.

Pewność polega na zbieżności wyników uzyskanych niezależnie od użytkownika i zastosowanych środków technicznych.

Charakter masowy polega na możliwości zastosowania algorytmu do całej klasy problemów tego samego typu, różniących się określonymi wartościami danych wyjściowych.

Dyskretność - możliwość podzielenia procesu obliczeń wyznaczonych przez algorytm na odrębne etapy, możliwość wyboru sekcji programu o określonej strukturze.

Metody opisu algorytmów

Istnieją następujące sposoby opisywania (reprezentowania) algorytmów:

1. opis słowny;

2. opis algorytmu za pomocą wzorów matematycznych;

3. graficzny opis algorytmu w postaci schematu blokowego;

4. opis algorytmu za pomocą pseudokodu;

5. połączony sposób wyświetlania algorytmu metodami werbalnymi, graficznymi i innymi .

6. za pomocą sieci Petriego.

Opis słowny Algorytm to opis struktury algorytmu w języku naturalnym. Na przykład do urządzeń gospodarstwa domowego zwykle dołączana jest instrukcja obsługi, tj. słowny opis algorytmu, zgodnie z którym to urządzenie ma być używane.

Opis graficzny algorytm w postaci schematu blokowegoTo opis struktury algorytmu wykorzystującego kształty geometryczne z liniami komunikacyjnymi.

Schemat blokowy to graficzna reprezentacja metody rozwiązywania problemu, która używa znaków specjalnych do reprezentowania operacji.

Symbole, które tworzą schemat blokowy algorytmu, są określone przez GOST 19.701-90. Odpowiada temu GOST międzynarodowy standard projektowanie algorytmów, dlatego schematy blokowe algorytmów sporządzone zgodnie z GOST 19.701-90 są zrozumiałe jednoznacznie w różnych krajach.

Pseudo kod - opis struktury algorytmu w języku naturalnym, ale częściowo sformalizowanym. Pseudokod wykorzystuje pewne konstrukcje formalne i powszechną notację matematyczną. Nie ma ścisłych reguł składniowych dotyczących pisania pseudokodów.

Spójrzmy na najprostszy przykład. Niech konieczne będzie opisanie algorytmu wyświetlania największej wartości z dwóch liczb na ekranie monitora.


Rysunek 1 - Przykład opisu algorytmu w postaci schematu blokowego

Opis tego samego algorytmu w pseudokodzie:

2. Wprowadzanie liczb: Z, X

3. Jeśli Z\u003e X, to wniosek Z

4. W przeciwnym razie wyprowadź X

Każda z wymienionych metod wyświetlania algorytmów ma zarówno zalety, jak i wady. Na przykład metoda werbalna wyróżnia się gadatliwością i niejasnością, ale pozwala lepiej opisać poszczególne operacje. Metoda graficzna jest bardziej wizualna, ale często konieczne jest opisanie niektórych operacji w formie werbalnej. Dlatego przy opracowywaniu złożonych algorytmów lepiej jest zastosować metodę łączoną.

Rodzaje algorytmów

liniowy;

rozgałęzienie;

cykliczne.

· Algorytm liniowy - zestaw poleceń (instrukcji) wykonywanych kolejno jedna po drugiej.

· Algorytm rozwidlenia - algorytm zawierający co najmniej jeden warunek, w wyniku sprawdzenia, który komputer zapewnia przejście do jednego z dwóch możliwych kroków.

· Algorytm cykliczny - algorytm zapewniający wielokrotne powtarzanie tej samej czynności (tych samych operacji) na nowych danych początkowych. Większość metod obliczeń, wyliczania opcji, sprowadza się do algorytmów cyklicznych. Cykl programu - sekwencja poleceń (seria, treść pętli), które mogą być wykonywane wielokrotnie (dla nowych danych początkowych), aż do spełnienia określonego warunku.

C. Typy danych.

Typ danych to opis zakresu wartości, które może przyjąć zmienna określonego typu. Każdy typ danych charakteryzuje się:
1. liczba zajmowanych bajtów (rozmiar)
2. zakres wartości, jakie może przyjąć zmienna tego typu.

Wszystkie typy danych można podzielić na następujące typy:
1. typy proste (skalarne) i złożone (wektorowe);
2. podstawowe (systemowe) i zdefiniowane przez użytkownika (zdefiniowane przez użytkownika).
W języku C system typów bazowych tworzą cztery typy danych:
1. postać,
2. liczba całkowita,
3. rzeczywista pojedyncza precyzja,
4. podwójna precyzja rzeczywista.

Struktura programu w C.

1. Operatory języka C ++

Operatorzy kontrolują proces wykonywania programu. Zestaw operatorów C ++ zawiera wszystkie konstrukcje sterujące programowania strukturalnego.
Instrukcja złożona jest oddzielona nawiasami klamrowymi. Wszystkie inne operatory kończą się średnikiem.
Operator pusty -;
Operator pusty to operator składający się wyłącznie ze średników. Może pojawić się w dowolnym miejscu programu, w którym składnia wymaga instrukcji. Wykonanie pustej instrukcji nie zmienia stanu programu.
Operator złożony - (...)
Akcja instrukcji złożonej polega na sekwencyjnym wykonywaniu instrukcji w niej zawartych, poza przypadkami, gdy dowolna instrukcja w sposób jawny przekazuje sterowanie w inne miejsce w programie.
Operator obsługi wyjątków

próbować (<операторы> }
łapać (<объявление исключения>) { <операторы> }
łapać (<объявление исключения>) { <операторы> }
...
łapać (<объявление исключения>) { <операторы> }

Operator warunkowy

jeśli (<выражение>) <оператор 1>

Operator przełącznika

przełącznik (<выражение>)
(walizka<константное выражение 1>: <операторы 1>
walizka<константное выражение 2>: <операторы 2>
...
walizka<константное выражение N>: <операторы N>
}
Operator przełącznika jest przeznaczony do wyboru jednego z kilku alternatywnych sposobów wykonywania programu. Ocena operatora przełącznika rozpoczyna się od oceny wyrażenia, po czym sterowanie przekazywane jest do operatora oznaczonego stałym wyrażeniem równym oszacowanej wartości wyrażenia. Wyjście z operatora przełącznika realizowane jest przez operatora przerwy. Jeśli wartość wyrażenia nie jest równa żadnemu stałemu wyrażeniu, sterowanie jest przekazywane do operatora oznaczonego domyślnym słowem kluczowym, jeśli istnieje.
Operator pętli z warunkiem wstępnym

podczas (<выражение>) <оператор>

Operator pętli z warunkiem końcowym

robić<оператор> podczas<выражение>;
W języku C ++ ten operator różni się od klasycznej implementacji pętli z warunkiem końcowym tym, że gdy wyrażenie jest prawdziwe, pętla jest kontynuowana, a nie zamykana.
Operator cyklu kroków

dla ([<начальное выражение>];
[<условное выражение>];
[<выражение приращения>])
<оператор>
Treść instrukcji for jest wykonywana, dopóki wyrażenie warunkowe nie stanie się fałszywe (równe 0). Wyrażenie początkowe i wyrażenie inkrementacji są powszechnie używane do inicjowania i modyfikowania parametrów pętli i innych wartości. Wyrażenie początkowe jest oceniane raz przed pierwszym testem wyrażenia warunkowego, a wyrażenie inkrementacji jest oceniane po każdym wykonaniu instrukcji. Każde z trzech wyrażeń nagłówka pętli, a nawet wszystkie trzy, można pominąć (pamiętaj o pozostawieniu średników). Jeśli wyrażenie warunkowe zostanie pominięte, zostanie uznane za prawdziwe, a pętla stanie się nieskończona.
Operator pętli krokowej w języku C ++ jest konstrukcją elastyczną i wygodną, \u200b\u200bdlatego operator pętli z warunkiem wstępnym while jest używany niezwykle rzadko w języku C ++, ponieważ w większości przypadków wygodniej jest użyć instrukcji for.
Operator przerwy

przerwa;
Instrukcja break przerywa wykonywanie instrukcji while, do, for i switch. Może być zawarte tylko w treści tych oświadczeń. Sterowanie jest przekazywane operatorowi programu po przerwanym. Jeśli instrukcja break jest zapisana wewnątrz zagnieżdżonych instrukcji while, do, for, switch, to kończy ona tylko bezpośrednio obejmującą instrukcję.
Operator kontynuacji

kontyntynuj;
Instrukcja kontynuacji przekazuje kontrolę do następnej iteracji w while, do, dla instrukcji pętli. Może być zawarte tylko w treści tych oświadczeń. W instrukcjach do i while następna iteracja rozpoczyna się od oceny wyrażenia warunkowego. W instrukcji for następna iteracja rozpoczyna się od oszacowania wyrażenia inkrementacji, a następnie wyliczenia wyrażenia warunkowego.
Operator zwrotu

powrót [<выражение>];
Instrukcja return kończy wykonywanie funkcji, w której jest zawarta, i zwraca sterowanie do funkcji wywołującej. Kontrola jest przekazywana do punktu funkcji wywołującej

Jeśli (wyrażenie boolowskie)

operator;

Jeśli (wyrażenie boolowskie)

operator_1;

operator_2;

<логическое выражение> ? <выражение_1> : <выражение_2>;

Jeśli wartością wyrażenia logicznego jest prawda, oceniane jest wyrażenie_1, w przeciwnym razie obliczane jest wyrażenie_2.

przełącznik (wyrażenie całkowite)

wartość przypadku_1:

statement_sequence_1;

wartość przypadku_2:

statement_sequence_2;

wartość przypadku_n:

statement_sequence_n;

domyślna:

statement_sequence_n + 1;

Gałąź domyślna nie da się opisać. Jest wykonywany, jeśli żadne z wyrażeń wyższego poziomu nie jest spełnione.

Operator pętli.

Turbo C ma następujące konstrukcje, które umożliwiają programowanie pętli: while, do while i dla ... Ich strukturę można opisać następująco:

Pętla ze sprawdzeniem stanu u góry:

Operator selekcji

Jeśli czynności, które należy wykonać w programie, zależą od wartości jakiejś zmiennej, można skorzystać z instrukcji select. Jednocześnie w C ++ tylko zmienne numeryczne mogą być używane jako zmienne w instrukcji select. Ogólnie zapis operatora selekcji wygląda następująco:

przełącznik (zmienny)
{
wartość przypadku1:
działania 1
przerwa;

wartość przypadku2:
action2
przerwa;
...

domyślna:
akcje domyślne
}

Słowo kluczowe break należy dodać na końcu każdej gałęzi. Zatrzymuje wykonywanie operacji wyboru. Jeśli go nie wpiszesz, to po wykonaniu akcji z jednej gałęzi selekcji wykonywanie akcji z kolejnych gałęzi będzie kontynuowane. Czasami jednak ta właściwość wyboru jest przydatna, na przykład, jeśli musisz wykonać te same czynności dla różnych wartości zmiennej.

przełącznik (zmienny)
{
wartość przypadku1:
wartość przypadku2:
działania 1
przerwa;

wartość przypadku3:
action2
przerwa;
...
}

Przykład z wykorzystaniem wyboru:

int n, x;
...
przełącznik (n)
{
przypadek 0:
przerwa; // jeśli n wynosi 0, to nie wykonujemy żadnej akcji

przypadek 1:
przypadek 2:
przypadek 3:
x \u003d 3 * n; // jeśli n wynosi 1, 2 lub 3, to wykonujemy pewne czynności
przerwa;

przypadek 4:
x \u003d n; // jeśli n wynosi 4, wykonaj inne czynności
przerwa;

domyślna:
x \u003d 0; // dla wszystkich innych wartości n wykonaj domyślne działania
}

C. Pętla: Pętla z parametrem

Ogólna forma zgłoszenia

for (inicjalizacja parametrów; sprawdzenie warunku zakończenia; korekta parametrów) (

blok operacji;

for to pętla parametryczna (pętla ze stałą liczbą powtórzeń). Aby zorganizować taki cykl, konieczne jest wykonanie trzech operacji:

§ inicjalizacja parametrów - przypisanie wartości początkowej do parametru cyklu;

§ sprawdzenie stanu końcowego - porównanie wartości parametru z określoną wartością graniczną;

§ korekta parametrów - zmiana wartości parametru przy każdym przejściu ciała pętli.

Te trzy operacje są zapisane w nawiasach i oddzielone średnikami (;). Zwykle parametr pętli jest zmienną całkowitą.
Parametr jest inicjalizowany tylko raz - gdy zaczyna się wykonywanie pętli for. Warunek końcowy jest sprawdzany przed każdym możliwym wykonaniem treści pętli. Gdy wyrażenie stanie się fałszywe (równe zero), pętla się kończy. Parametr jest dostosowywany na końcu każdego wykonania treści pętli. Parametr może się zwiększać lub zmniejszać.

Przykład

#zawierać
int main () (

for (num \u003d 1; num< 5; num++)

printf ("num \u003d% d \\ n", num);

DO. Pętla z warunkiem wstępnym

Ogólna forma zgłoszenia

while (wyrażenie) (

blok operacji;
}

Jeśli wyrażenie jest prawdziwe (niezerowe), wykonywany jest blok operacji ujęty w nawiasy klamrowe, a następnie wyrażenie jest ponownie sprawdzane. Sekwencja czynności, polegająca na sprawdzeniu i wykonaniu bloku operacji, jest powtarzana, aż wyrażenie stanie się fałszywe (równe zero). W tym przypadku pętla jest zamykana, a operacja po wykonaniu operatora pętli.

Przykład

int k \u003d 5;
int i \u003d 1;
int sum \u003d 0;
podczas gdy ja<=k) {

Budując pętlę while konieczne jest uwzględnienie w niej konstrukcji, które zmieniają wartość testowanego wyrażenia tak, aby ostatecznie stało się fałszywe (równe zero). W przeciwnym razie pętla będzie wykonywana na przykład w nieskończoność (nieskończona pętla)

blok operacji;
}

while jest pętlą z warunkiem wstępnym, więc jest całkiem możliwe, że treść pętli nie zostanie wykonana nawet raz, jeśli sprawdzany warunek okaże się fałszywy w momencie pierwszego sprawdzenia.

DO. Pętla z warunkiem końcowym

Pętla z postcondition do ... while

Ogólna forma zgłoszenia

blok operacji;

) while (wyrażenie);

Pętla z warunkiem końcowym

Pętla do ... while jest pętlą z warunkiem końcowym, w której prawdziwość wyrażenia jest sprawdzana po wykonaniu wszystkich operacji zawartych w bloku ujętym w nawiasy klamrowe. Ciało pętli jest wykonywane, dopóki wyrażenie nie stanie się fałszywe, to znaczy, że zostanie wykonana treść pętli z warunkiem końcowym. pewnego razu.

Pętla do ... while lepiej jest używać w przypadkach, gdy trzeba wykonać co najmniej jedną iterację lub gdy inicjalizacja obiektów uczestniczących w sprawdzaniu warunków następuje wewnątrz treści pętli.

Przykład... Wpisz liczbę od 0 do 10

#zawierać
#zawierać
int main () (

system („chcp 1251”);

printf ("Podaj liczbę od 0 do 10:");

scanf ("% d", & num);

) podczas gdy ((num< 0) || (num > 10));

printf ("Podałeś numer% d", num);

getchar (); getchar ();

Definiowanie funkcji

Rozważmy definicję funkcji na przykładzie funkcji sumy.

W językach C i C ++ nie trzeba definiować funkcji, dopóki nie zostaną użyte, ale należy je wcześniej zadeklarować. Ale nawet po tym wszystkim ostatecznie ta funkcja musi zostać zdefiniowana. Prototyp funkcji i definicja są następnie łączone i funkcja może być używana.

Jeśli funkcja została wcześniej zadeklarowana, musi być zdefiniowana z tą samą wartością zwracaną i typami danych, w przeciwnym razie zostanie utworzona nowa, przeciążona funkcja. Zauważ, że nazwy parametrów funkcji nie muszą być takie same.

Rozwój VT stale poszerza klasy zadań do rozwiązania związanych z przetwarzaniem informacji o innym charakterze.

Są to zasadniczo trzy rodzaje informacji i odpowiednio trzy klasy problemów, do rozwiązania których używane są komputery:

1) Zadania obliczeniowe związane z przetwarzaniem informacji liczbowych. Należą do nich na przykład problem rozwiązania układu równań liniowych o dużych wymiarach. Kiedyś był to główny, dominujący obszar użytkowania komputera.

2) Zadania przetwarzania informacji symbolicznych związanych z tworzeniem, edycją i transformacją danych tekstowych. Rozwiązanie takich problemów wiąże się np. Z pracą sekretarki-maszynistki.

3) Zadania przetwarzania informacji graficznych tj. diagramy, rysunki, wykresy, szkice itp. Do takich zadań należy na przykład zadanie opracowania przez projektanta rysunków nowych produktów.

4) Zadania przetwarzania informacji alfanumerycznych - IS. Obecnie stał się jednym z głównych obszarów zastosowań komputerów, a zadania stają się coraz bardziej skomplikowane.

Rozwiązanie na komputerze problemów każdej klasy ma swoją specyfikę, ale można je podzielić na kilka etapów, które są typowe dla większości problemów.

Technologia programowania bada procesy technologiczne i kolejność ich przebiegów (etapów) z wykorzystaniem wiedzy, metod i środków.

Dogodnie jest scharakteryzować technologie w dwóch wymiarach - pionowym (przedstawiającym procesy) i poziomym (przedstawiającym etapy).

Obrazek

Proces to zestaw powiązanych ze sobą działań (operacji technologicznych), które przekształcają niektóre dane wejściowe w dane wyjściowe. Procesy składają się z zestawu czynności (operacji technologicznych), a każde działanie składa się z zestawu zadań i metod ich rozwiązywania. Wymiar pionowy odzwierciedla statyczne aspekty procesów i operuje takimi pojęciami, jak procesy pracy, czynności, zadania, rezultaty czynności, wykonawcy.

Etap to część działań związanych z tworzeniem oprogramowania, ograniczona przez określony czas i kończąca się wydaniem konkretnego produktu, określona przez wymagania stawiane dla tego etapu. Czasami etapy są pogrupowane w większe ramy czasowe zwane fazami lub kamieniami milowymi. Zatem wymiar poziomy reprezentuje czas, odzwierciedla dynamiczne aspekty procesów i operuje takimi pojęciami jak fazy, etapy, etapy, iteracje i punkty kontrolne.

Rozwój oprogramowania przebiega według określonego cyklu życia.

Koło życia Oprogramowanie to ciągły i uporządkowany zestaw czynności wykonywanych i zarządzanych w ramach każdego projektu na rzecz rozwoju i eksploatacji oprogramowania, począwszy od pomysłu (koncepcji) stworzenia oprogramowania i podjęcia decyzji o potrzebie jego stworzenia, a skończywszy na jego całkowitym wycofaniu z operacja z powodów:


a) starzenie się;

b) utrata potrzeby rozwiązywania odpowiednich problemów.

Podejścia technologiczne to mechanizmy wdrażania w cyklu życia.

Podejście technologiczne determinowane jest specyfiką łączenia etapów i procesów, skupionych na różnych klasach oprogramowania oraz charakterystyce zespołu programistycznego.

Cykl życia definiuje etapy (fazy, etapy), dzięki czemu oprogramowanie przechodzi z jednego etapu do drugiego, począwszy od powstania koncepcji produktu, a skończywszy na etapie jego składania.

Cykl życia tworzenia oprogramowania można przedstawić na różnych etapach szczegółowości. Najprostsza reprezentacja cyklu życia obejmuje etapy:

Projekt

Realizacja

Testowanie i debugowanie

Wdrożenie, obsługa i konserwacja.

Najprostsza reprezentacja cyklu życia programu (kaskadowe podejście technologiczne do utrzymania cyklu życia):

Procesy

Projekt

Programowanie

Testowanie

Eskorta

Analiza Implementacja Projektu Testowanie Implementacja Operacja

oraz debugowanie i konserwacja

W rzeczywistości na każdym etapie wykonywany jest jeden proces. Oczywiście przy opracowywaniu i tworzeniu dużych programów taki schemat nie jest wystarczająco poprawny (nie ma zastosowania), ale można go przyjąć jako podstawę.

Etap analizykoncentruje się na wymaganiach systemowych. Wymagania są zdefiniowane i sprecyzowane (opisane). Prowadzony jest rozwój i integracja modeli funkcjonalnych i modeli danych dla systemu. Ponadto rejestrowane są niefunkcjonalne i inne wymagania systemowe.

Faza projektowania podzielona jest na dwa główne podfazy: projekt architektoniczny i projekt wykonawczy. W szczególności udoskonalany jest projekt programu, interfejs użytkownika i struktury danych. Zgłaszane i rejestrowane są problemy projektowe, które wpływają na zrozumiałość, łatwość konserwacji i skalowalność systemu.

Faza implementacjiobejmuje pisanie programu.

Różnice w sprzęcie i oprogramowaniu są szczególnie widoczne na scenie eksploatacja... Jeśli dobra konsumpcyjne przechodzą przez etapy wprowadzania na rynek, wzrostu, dojrzałości i upadku, to życie oprogramowania bardziej przypomina historię niedokończonego, ale ciągle ukończonego i remontowanego budynku (samolotu) (Abonent).

Oprogramowanie cyklu życia podlega wielu standardom, w tym międzynarodowym.

Cel standaryzacji cyklu życia złożonych systemów oprogramowania:

Uogólnienie doświadczeń i wyników badań wielu specjalistów;

Opracowanie procesów technologicznych i technik rozwojowych oraz bazy metodycznej do ich automatyzacji.

Standardy obejmują:

Zasady opisu wstępnych informacji, metod i metod wykonywania operacji;

Ustanowić zasady kontroli procesów technologicznych;

Ustanowić wymagania dotyczące prezentacji wyników;

Regulować treść dokumentów technologicznych i operacyjnych;

Określić strukturę organizacyjną zespołu deweloperskiego;

Zapewnij dystrybucję i planowanie zadań;

Zapewnij kontrolę nad postępem tworzenia PS.

W Rosji istnieją standardy regulujące cykl życia:

Etapy rozwoju oprogramowania - GOST 19.102-77

Etapy rozwoju EJ - GOST 34.601 –90;

Warunki odniesienia dla utworzenia AU - GOST 34.602-89;

Typy testów głośników - GOST 34.603-92;

Jednak tworzenie, utrzymanie i rozwój stosowanych systemów oprogramowania dla IS nie znajduje dostatecznego odzwierciedlenia w tych standardach, a niektóre z ich zapisów zdezaktualizowały się pod względem budowy nowoczesnych rozproszonych kompleksów wysokiej jakości programów aplikacyjnych w systemach sterowania i przetwarzania danych o różnych architekturach.

W tym względzie należy zwrócić uwagę na międzynarodową normę ISO / IEC 12207-1999 - „ Technologia informacyjna - Procesy cyklu życia oprogramowania ”.

ISO - Międzynarodowa Organizacja Normalizacyjna - Międzynarodowa Organizacja Normalizacyjna, IEC - Międzynarodowa Komisja Elektrotechniczna - Międzynarodowa Komisja Elektrotechniczna.

Określa strukturę cyklu życia oprogramowania i jego procesów.

Te. tworzenie oprogramowania nie jest tak łatwym zadaniem, dlatego istnieją standardy, w których wszystko jest napisane: co należy zrobić, kiedy i jak.

Struktura cyklu życia oprogramowania według międzynarodowej normy ISO / IEC 12207-95 opiera się na trzech grupach procesów:

1) podstawowe procesy cyklu życia oprogramowania (zakup, dostawa, rozwój, eksploatacja, konserwacja). Skoncentrujemy się na tym drugim.

2) procesy pomocnicze zapewniające realizację głównych procesów ( dokumentowanie, zarządzanie konfiguracją, zapewnienie jakości, weryfikacja, walidacja, wspólny przegląd (ocena), audyt, rozwiązywanie problemów).

1. Zarządzanie konfiguracją to jestproces wspierający główne procesy cyklu życia oprogramowania, przede wszystkim procesy rozwoju i utrzymania. Przy opracowywaniu projektów złożonego oprogramowania, składającego się z wielu komponentów, z których każdy może mieć odmiany lub wersje, pojawia się problem uwzględnienia ich powiązań i funkcji, stworzenia ujednoliconej (czyli jednej) struktury i zapewnienia rozwoju całego systemu. Zarządzanie konfiguracją umożliwia organizowanie, systematyczne uwzględnianie i kontrolowanie zmian w różnych komponentach oprogramowania na wszystkich etapach jego cyklu życia.

2. Weryfikacjato proces określania, czy aktualny stan oprogramowania, osiągnięty na danym etapie, spełnia wymagania tego etapu.

3. Certyfikacja - potwierdzenie poprzez badanie i przedstawienie obiektywnych dowodów, że szczegółowe wymagania dotyczące określonych obiektów zostały w pełni wdrożone.

4. Wspólna analiza (ocena) systematyczne określanie stopnia zgodności obiektu z ustalonymi kryteriami.

5. Audyt - audyt przeprowadzany przez właściwy organ (osobę) w celu zapewnienia niezależnej oceny stopnia zgodności oprogramowania lub procesów z określonymi wymaganiami. Czekpozwala ocenić zgodność parametrów deweloperskich z pierwotnymi wymaganiami. Weryfikacja pokrywa się z testowaniem, które ma na celu określenie różnicy między rzeczywistymi i oczekiwanymi wynikami oraz ocenę, czy cechy oprogramowania spełniają pierwotne wymagania. W procesie realizacji projektu ważne miejsce zajmują kwestie identyfikacji, opisu i sterowania konfiguracją poszczególnych komponentów oraz całego systemu jako całości.

3) procesy organizacyjne (zarządzanie projektem, tworzenie infrastruktury projektu, definiowanie, ocena i doskonalenie samego cyklu życia, szkolenia).

Zarządzanie projektamizwiązane z planowaniem i organizacją pracy, tworzeniem zespołów deweloperskich oraz kontrolą czasu i jakości wykonywanych prac. Wsparcie techniczne i organizacyjne projektu obejmuje dobór metod i przybory na realizację projektu, określenie metod opisu pośrednich stanów rozwoju, opracowanie metod i narzędzi do testowania tworzonego oprogramowania, szkolenie personelu itp. Zapewnienie jakości projektu dotyczy kwestii weryfikacji, walidacji i testowania komponentów oprogramowania.

Rozważymy cykl życia oprogramowania z punktu widzenia programisty.

Proces rozwoju zgodny ze standardem uwzględnia czynności i zadania wykonywane przez dewelopera oraz obejmuje prace nad stworzeniem oprogramowania i jego komponentów zgodnie z określonymi wymaganiami, w tym przygotowanie dokumentacji projektowej i eksploatacyjnej, a także przygotowanie materiałów niezbędnych do sprawdzenia działania i jakości oprogramowania materiały potrzebne do szkolenia personelu itp.

Zgodnie z normą cykl życia oprogramowania IP obejmuje następujące działania:

1) powstanie i badanie idei (koncepcji);

2) etap przygotowawczy - wybór modelu cyklu życia, standardów, metod i narzędzi programistycznych, a także sporządzenie planu pracy.

3) analiza wymagań systemu informatycznego - definiując to

funkcjonalność, wymagania użytkownika, wymagania dotyczące niezawodności i bezpieczeństwa, wymagania dotyczące interfejsu zewnętrznego itp.

4) projektowanie architektury systemu informatycznego - określenie składu niezbędnego sprzętu, oprogramowania i operacji wykonywanych przez personel serwisowy.

5) analiza wymagań oprogramowania- definicja funkcjonalności, w tym charakterystyki wydajności, środowisko pracy komponentów, interfejsy zewnętrzne, specyfikacje dotyczące niezawodności i bezpieczeństwa, wymagania ergonomiczne, wymagania dotyczące wykorzystywanych danych, instalacja, odbiór, dokumentacja użytkownika, obsługa i konserwacja.

6) projektowanie architektury oprogramowania - zdefiniowanie struktury oprogramowania, udokumentowanie interfejsów jego komponentów, opracowanie wstępnej wersji dokumentacji użytkownika, a także wymagań testowych i planu integracji.

7) szczegółowy projekt oprogramowania - szczegółowe

opis komponentów oprogramowania i interfejsów między nimi, aktualizacja dokumentacji użytkownika, opracowanie i dokumentacja wymagań testowych i planu testów, komponenty oprogramowania, aktualizacja planu integracji komponentów.

8) kodowanie oprogramowania -opracowanie i dokumentacja

każdy składnik oprogramowania;

9)testowanie oprogramowania - opracowanie zestawu procedur testowych i danych do ich testowania, testowania komponentów, aktualizacji dokumentacji użytkownika, aktualizacji planu integracji oprogramowania;

10) integracja oprogramowania montaż komponentów oprogramowania zgodnie z

plan integracji i testowanie oprogramowania pod kątem zgodności z wymaganiami kwalifikacyjnymi, które stanowią zbiór kryteriów lub warunków, które muszą zostać spełnione, aby oprogramowanie zostało zakwalifikowane jako spełniające specyfikacje i gotowe do użycia w określonych warunkach operacyjnych;

11) testowanie kwalifikacji oprogramowaniatestowanie oprogramowania w

obecność klienta w celu wykazania zgodności

wymagania i gotowość do pracy; Sprawdzana jest również gotowość i kompletność dokumentacji technicznej i użytkownika;

12) integracja systemumontaż wszystkich elementów systemu informatycznego, w tym oprogramowania i sprzętu;

13) testowanie kwalifikacji IPtestowanie systemu pod kątem

zgodność z jego wymaganiami oraz weryfikacja projektu i kompletności dokumentacji;

14) instalacja oprogramowaniainstalacja oprogramowania na sprzęt klienta i sprawdzenie jego działania;;

15) akceptacja oprogramowaniaocena wyników kwalifikacji

testowanie oprogramowania i systemu informacyjnego jako całości oraz

dokumentowanie wyników oceny wraz z klientem, certyfikacja i ostateczne przekazanie oprogramowania klientowi.

16) Zarządzanie i opracowywanie dokumentacji;

17) eksploatacja

18) eskorta - proces tworzenia i wdrażania nowych wersji

produkt oprogramowania.;

19) zakończenie operacji.

Działania te można pogrupować, konwencjonalnie podkreślając następujące główne etapy tworzenia oprogramowania:

· Przedstawienie problemu (TZ) (zgodnie z GOST 19.102-77 etap „Zakres zadań”)

Podobne artykuły

2020 choosevoice.ru. Mój biznes. Księgowość. Historie sukcesów. Pomysły. Kalkulatory. Magazyn.