INOP, Uczelnia, INOP


1) Opisz cykl życia oprogramowania

Cykl życia oprogramowania (ang. software lifecycle) — ciąg działań projektowo-programowych, obejmujący zakres od powstania zapotrzebowania na oprogramowanie aż do jego wycofania z eksploatacji. Obejmuje wiele etapów składających się na projektowanie, programowanie (kodowanie), testowanie i wdrażanie oprogramowania oraz czas jego użytkowania. Nowa wersja oprogramowania na ogół wymaga zmiany lub rozszerzenia wyposażenia sprzętowego.

Zasadniczo cykl życia kolejnych wersji programu można podzielić na następujące etapy:

ostatnim etapem jest zwykle starzenie moralne programu i porzucenie przez autorów, co zwykle kończy jego życie

2) Model kaskadowy (klasyczny): wymień fazy
Wymień zalety i wady modelu kaskadowego.

- fazę określania wymagań w której określane są cele oraz szczegółowe wymagania wobec tworzonego systemu

- fazę projektowania, w której powstaje szczegółowy projekt systemu spełniającego ustalone wcześniej wymagania

- fazę implementacji/kodowania oraz testowania modułów, w której projekt zostaje zaimplementowany w konkretnym środowisku programistycznym oraz wykonywane są testy poszczególnych modułów

- fazę testowania, w której następuje integracja poszczególnych modułów połączona z testowaniem poszczególnych podsystemów oraz całego oprogramowania

- fazę konserwacji, w której oprogramowanie jest wykorzystywane przez użytkowników, a producent dokonuje konserwacji oprogramowania - wykonuje modyfikacje polegające na usuwaniu błędów, zmianach i rozszerzaniu funkcji systemu

W modelu kaskadowym często wyróżnia się pewne dodatkowe fazy, które często nakładają się na fazy przedstawione powyżej:

Podstawowe zalety tego modelu wiążą się przede wszystkim z łatwością zarządzania przedsięwzięciem. Model ten ułatwia planowanie, harmonogramowanie oraz monitorowanie przedsięwzięcia.

Wady:

- Narzucanie twórcom oprogramowania scisłej kolejności wykonywania prac

- Wysoki koszt błędów popełnianych we wstępnych fazach. Błędy popełnione w fazie określania wymagań zastaną najprawdopodobniej wykryte dopiero w fazie testowania lub konserwacji

- Długa przerwa w kontaktach z klientem

3) Wymień modele cyklu życia oprogramowania.

4) (Jr2)Narysuj diagramy: model kaskadowy z powtórzeniami; model kierowany dokumentami (document driven); model prototypowania, model realizacji przyrostowej, model spiralny. Krótko scharakteryzuj każdy z modeli (wymień zalety i wady).

a) Model Kierowany dokumentami

Metoda stosowana w armii amerykańskiej realizującej wiele złożonych przedsięwzięć informatycznych. W modelu tym jako podstawę działań przyjmuje się model kaskadowy, wzbogacając go o elementy szcze­gółowej dokumentacji prac, składa się więc z szeregu następujących po sobie faz. Każda faza kończy się opracowaniem szeregu dokumentów, w pełni opisujących wyniki tej fazy.Dokumenty te powinny być wystarczającą podstawą do realizacji dalszych faz. Dokumenty te są udostępniane klientów i dopiero po zaakceptowaniu dokumentacji przez klienta rozpoczynana jest kolejna faza.

+ Zalety

możliwość realizacji dalszych faz przez inną firmę,

łatwe planowanie, harmonogramowanie oraz monitorowanie przedsięwzięcia

aktywnie włączenie użytkownika w proces realizacji projektu

- Wady

duży nakład pracy na opracowanie dokumentów zgodnych ze standardem

przerwy w realizacji niezbędne dla weryfikacji dokumentów przez klienta

b) model kaskadowy

0x01 graphic

Zalety:

Wady:

Stosowany w projekcie o dobrze zdefiniowanych wymaganiach dla dobrze rozumianych zastosowań. Rzadko stosuje się ten model w czystej postaci, ale stanowi on bazę dla innych modeli powstałych

jako jego udoskonalenia.

c) model kaskadowy z iteracjami

0x08 graphic
Model kaskadowy z iteracjami (z nawrotami) Jest to odmiana modelu kaskadowego

W czystym modelu kaskadowym:

W iteracyjnym modelu kaskadowym:

Wady:

- Duży nakład pracy na opracowanie dokumentów zgodnych ze standardem

- Przerwy w realizacji niezbędne dla weryfikacji dokumentów przez klienta.

d) model spiralny

0x01 graphic

Proces tworzenia ma postać spirali, której każda pętla reprezentuje jedną fazę procesu. Najbardziej wewnętrzna pętla przedstawia początkowe etapy projektowania, np. studium wykonalności, kolejna definicji wymagań systemowych, itd.

Zalety:

Wady:

e) model prototypowania

0x01 graphic

Prototypowanie - sposób na uniknięcie zbyt wysokich kosztów błędów popełnionych w fazie określania wymagań. Zalecany w przypadku, gdy określenie początkowych wymagań jest stosunkowo łatwe.

Model kaskadowy wymaga określenia wymagań na samym początku pracy. Możemy to ułatwić przez zbudowanie prototypu. Występują wówczas dodatkowe fazy projektu poprzedzające wykonanie zadań zgodnych ze zwykłym modelem kaskadowym:

- wstępne określenie wymagań,

- budowa prototypu

- weryfikacja prototypu przez klienta

- pełne określenie wymagań

- realizacja pełnego systemu zgodnie z modelem kaskadowym

Cele:

- wykrycie nieporozumień pomiędzy klientem, a twórcami systemu

- wykrycie brakujących funkcji

- wykrycie trudnych usług

- wykrycie braków w specyfikacji wymagań

Takie podejście zwiększa koszt przedsięwzięcia, ale:

- prototyp nie musi być wykonany w pełni,

- nie musi być niezawodny, ani starannie przetestowany,

- nie musi działać szybko ani mieć dobrego interfejsu użytkownika,

- może być realizowany w nieoptymalnych językach bardzo wysokiego poziomu, można nie instalować go u klienta.

Zalety prototypowania:

Wady:

Metody prototypowania

f) model realizacji przyrostowej

0x01 graphic

Jest to odmiana modelu spiralnego. Wybierany jest i realizowany podstawowy zestaw funkcji. Po realizacji pewnych funkcji następuje zrealizowanie i dostarczenie kolejnych funkcji.

Zalety:

Wady:

- dodatkowy koszt towarzyszący niezależnej realizacji fragmentów systemu

5) Wymień zagadnienia, jakie obejmuje inżynieria oprogramowania (J12)

- sposoby prowadzenia przedsięwzięć informatycznych

- techniki planowania, szacowania kosztów, harmonogramowania i monitorowania przedsięwzięć programistycznych

- metody analizy i programowania systemów

- techniki zwiększania niezawodności oprogramowania

- sposoby przygotowania dokumentacji technicznej i użytkowej

- procedury kontroli jakości

- metody redukcji kosztów konserwacji (usuwania błędów, modyfikacji i rozszerzeń)

- techniki pracy zespołowej i czynniki psychologiczne wpływające na efektywność pracy

6) Scharakteryzuj w jednym-dwóch zadaniach każdą z faz cyklu życia oprogramowania

7) (Jr3) Wymień czynności wykonywane w czasie fazy strategicznej.

- dokonanie serii rozmów/wywiadów z przedstawicielami klienta,

- określenie celów przedsięwzięcia z punktu widzenia klienta,

- określenie zakresu oraz kontekstu przedsięwzięcia,

- ogólne określenie wymagań, wykonanie zgrubnej analizy i projektu systemu,

- propozycja kilku możliwych rozwiązań (sposobu realizacji) systemu,

- oszacowanie kosztów oprogramowania,

- analiza rozwiązań,

- prezentacja wyników fazy strategicznej klientowi oraz korekcja wyników na podstawie uzyskanych uwag,

- określenie wstępnego harmonogramu oraz struktury zespołu realizującego przedsięwzięcie,

- określenie standardów, zgodnie, z którymi realizowane będzie przedsięwzięcie.

8) (Jw35) Wymień kryteria oceny rozwiązań. Sposoby oceny rozwiązań (Js35 i nast.)

W zależności od kontekstu przedsięwzięcia kryteria oceny rozwiązań mogą być różne:

Rozwiązanie

A

B

C

Koszt [tyś zł.]

120

80

175

Czas [m-ce]

33

30

36

Niezawodność [liczba błędów/ tydz.]

5

9

13

Ponowne wykorzystanie [%]

40

40

30

Przenośność [%]

90

75

30

Wydajność [transakcji/s ]

0,35

0,75

1

Sposoby oceny rozwiązań: