2006 10 Przegląd modeli cyklu życia oprogramowania [Inzynieria Oprogramowania]

background image

52

Inżynieria

oprogramowania

www.sdjournal.org

Software Developer’s Journal 10/2006

Przegląd modeli

cyklu życia oprogramowania

T

worzenie oprogramowania nie jest sprawą

prostą i nikogo, kto brał udział w dużym pro-

jekcie, nie trzeba o tym przekonywać. Czasy,

kiedy jedna osoba zajmowała się zbieraniem wyma-

gań, analizą, projektowaniem, programowaniem, te-

stowaniem i wdrażaniem produktu informatycznego

dawno już się skończyły. „Programowanie odkryw-

cze” nie jest obecnie dobrym sposobem budowy ja-

kichkolwiek systemów informatycznych. Tworzone

dziś systemy są po prostu zbyt skomplikowane, aby

przez cały cykl życia tych systemów mogła nad nimi

panować jedna osoba.

Trudności w budowaniu dużych systemów wymu-

siły, już wiele lat temu, konieczność usystematyzo-

wania procesu wytwarzania systemów informatycz-

nych. Stworzono więc modele porządkujące podej-

mowane działania i stany w jakich znajduje się pro-

dukt informatyczny. Obecnie zbiór modeli cykli ży-

cia oprogramowania jest niezwykle bogaty. Oczywi-

ście wystarczy poznać tylko kilka kluczowych mode-

li, pozostałe są najczęściej hybrydami tych podsta-

wowych.

Pojęcie modelu cyklu życia

systemu informatycznego

Czym właściwie jest model cyklu życia systemu in-

formatycznego (oprogramowania)? To szereg wza-

jemnie zależnych od siebie etapów, w których podej-

mowane są działania, począwszy od ujawnienia po-

trzeby budowy systemu informatycznego, prezenta-

cji jego idei, konstrukcję, użytkowanie, przystosowa-

ne do ewentualnych zmian funkcjonowania (wyni-

kających najczęściej ze względu na zmieniające się

warunki otoczenia), a kończąc na wycofaniu z eks-

ploatacji. Będziemy zajmować się tylko tą częścią cy-

klu życia oprogramowania, która związana jest z pro-

cesem wytwórczym i w związku z tym nazywana jest

cyklem wytwarzania oprogramowania.

Każdy model cyklu życia oprogramowania ma na

celu przedstawienie procesu wytwarzania oprogra-

mowania, który prowadzi do stworzenia działającego

systemu spełniającego oczekiwania klienta.

Popularne modele cyklu życia

systemu informatycznego

Najczęściej wymienianym procesem wytwarzania

oprogramowania jest model kaskadowy (zwany rów-

nież modelem wodospadu, ang. waterfall) i model ite-

racyjny. Terminy te często są nie do końca poprawnie

rozumiane. Bardzo często można się spotkać z prze-

konaniem, że proces kaskadowy jest procesem prze-

starzałym, a jedynie słusznym podejściem jest proces

iteracyjny. Osobiście ostrożnie podchodzę do takiej

oceny tych dwóch najpopularniejszych modeli wytwa-

rzania oprogramowania. Uważam, że wybór procesu

w znacznym stopniu zależy od charakteru projektu, a

tym samym nie ma jednego słusznego modelu cyklu

życia oprogramowania. Co więcej, najczęściej okazuje

się, że w praktyce najlepiej radzą sobie modele, które

są modyfikacjami lub hybrydami procesów podstawo-

wych. Przyczyna ich powstania związana jest bądź to

z wadami bądź trudnościami w adaptacji do rzeczywi-

stych warunków wytwarzania systemów informatycz-

nych modelu kaskadowego. Zauważmy, że sam pro-

ces iteracyjny stanowi swego rodzaju modyfikację

procesu kaskadowego. Inne znane i popularne mode-

le cyklu życia oprogramowania to model spiralny, mo-

del V, prototypowanie, i wiele innych.

Model kaskadowy

Najstarszym i prawdopodobnie najlepiej znanym cy-

klem życia oprogramowania jest model wodospadu.

Najpowszechniej spotykanym argumentem zachę-

cającym do użycia tego modelu jest fakt, iż jest on

dla człowieka najbardziej naturalnym sposobem roz-

wiązywania wszelkich problemów. W modelu kaska-

dowym, aby zbudować system informatyczny nale-

ży przejść przez kolejne etapy, których realizacja ma

zapewnić zakończenie projektu. Etapy na jakie dzie-

lony jest proces wytwarzania to: zbieranie wymagań,

analiza, projektowanie, implementacja, testowanie i

wdrożenie systemu.

W modelu wodospadu wyjście z jednego etapu

jest równocześnie wejściem w kolejny, bez możliwo-

Rafał Kasprzyk

Autor jest absolwentem Wydziale Cybernetyki Wojsko-
wej Akademii Technicznej, gdzie od roku zajmuje sta-
nowisko asystenta w Instytucie Systemów Informatycz-
nych. Pracuje w firmie ISOLUTION będąc odpowiedzial-
nym za przygotowywanie, prowadzenie i audyt szkoleń
obejmujących analizę i projektowanie systemów infor-
matycznych z użyciem notacji UML.
Kontakt z autorem: rafal.kasprzyk@wat.edu.pl

Rysunek 1.

Programowanie odkrywcze

����������������

���������

������

������

����������

������

����������

������

����������

������

���

���

background image

Przegląd modeli cyklu życia oprogramowania

53

www.sdjournal.org

Software Developer’s Journal 10/2006

ści powrotu. Zostaje zatem utworzona sztywno narzucona ko-

lejność poszczególnych etapów. Analityk po stworzeniu mo-

delu dziedziny problemu przekazuje wyniki swojej pracy pro-

jektantowi. Projektant, po stworzeniu projektu oprogramowa-

nia, w oparciu o wyniki etapu analizy, przekazuje go w ręce

programisty, którego zadaniem jest jego implementacja. Na-

stępnie w celu zapewnienia wysokiej jakości produktu, kod

jest testowany, a dopiero na samym końcu jest przekazywa-

ny klientowi.

W procesie kaskadowym bardzo istotna jest forma przeka-

zywania wyników z jednego etapu do drugiego. Niekiedy po-

jawiają się powroty, ale możliwość wystąpienia takiej sytuacji

powinna być minimalizowana. Oczywistym jest przecież, że

na przykład podczas implementacji może wystąpić jakiś pro-

blem, który zmusi zespół do powrotu do projektu lub co gor-

sza powtórnej analizy. Weryfikacja wyników poszczególnych

etapów jest więc nieunikniona.

Podstawowe cechy modelu kaskadowego niestety poka-

zują jednocześnie jego wady:

l

Uzyskanie produktu spełniającego oczekiwania klienta

niezwykle silnie zależy od stabilności wymagań, która jest

przecież trudna do uzyskania.

l

Weryfikacja zgodności produktu z wymaganiami i jego

użyteczności następuje dopiero w końcowych krokach.

l

Próba dopasowania produktu do zmieniających się wyma-

gań, powoduje znaczący wzrostu kosztów budowy systemu.

l

Kolejności wykonywania prac muszą być ściśle przestrze-

gane, co niekoniecznie trzeba uważać za wadę. Warto jed-

nak zauważyć, że większość osób preferuje znacznie mniej

rygorystyczne procesy wytwarzania oprogramowania.

l

Wysoki koszt błędów popełnionych we wstępnych eta-

pach jest bardzo charakterystyczną właściwością modelu

kaskadowego. Przecież błędy popełnione na etapie zbie-

rania lub analizy wymagań mogą być wykryte dopiero na

etapie testów akceptacyjnych, bądź eksploatacji, a ich

koszt o kilka rzędów wielkości przewyższać koszt błędów

popełnionych podczas implementacji.

l

Częstym argumentem podnoszonym przeciwko modelowi li-

niowemu jest zmarginalizowanie roli klienta w procesie wy-

twarzania oprogramowania. Długa przerwa w kontaktach z

klientem, z którym ściśle współpracuje się podczas określa-

nia wymagań, pociąga za sobą ryzyko zmniejszenia zain-

teresowania klienta produktem, podczas gdy nie bierze on

udziału w procesie wytwórczym. Klient „przypomina” sobie o

systemie, który w końcu był przez niego zamawiany, na eta-

pie wdrażania, kiedy to jego wizja na temat funkcjonalności,

jaką system powinien zapewniać, może ulec istotnej zmianie.

Warto nadmienić, że model kaskadowy mimo swych licznych

wad, w nieco zmodyfikowanej postaci, stał się standardem,

zalecanym przez Departament Obrony Narodowej Stanów

Zjednoczonych (DOD STD 2167), stosowanym przy wytwa-

rzaniu systemów informatycznych dla wojska. Standard ten

jest ścisłą realizacją modelu kaskadowego „kierowaną doku-

mentami”. Na czym owa modyfikacja polega? Po prostu, każ-

dy etap kończy się opracowaniem szeregu dokumentów, które

z założenia są wystarczającą podstawą do realizacji kolejnych

etapów. Dopiero akceptacja przez klienta dokumentacji zreali-

zowanego etapu pozwala na rozpoczęcie kolejnego.

Rysunek 2.

Model kaskadowy

�����������������

�������

�������������

�������������

����������

���������

Rysunek 3.

Model iteracyjny

���������������

�������

���������������

�������

������������������

����������������������

������������

���������������

�������

�������������

�����������

�������

������

����������

background image

54

Inżynieria

oprogramowania

www.sdjournal.org

Software Developer’s Journal 10/2006

Model iteracyjny

W modelu iteracyjnym wymagania są porządkowane i dzie-

lone na mniejsze podzbiory. Każdy taki podzbiór wymaganej

funkcjonalności wymaga przejścia przez etapy, o których by-

ła mowa w modelu kaskadowym. Po zakończeniu każdej ite-

racji wybierany jest kolejny podzbiór wymagań do realizacji i

ponownie przechodzimy przez wszystkie etapy wytwarzania

oprogramowania.

Zauważmy, że takie podejście pozwala na szybką imple-

mentację przynajmniej części wymaganej funkcjonalności (tej

o najwyższym priorytecie, lub też stanowiącej najwyższe ry-

zyko niepowodzenia realizacji). Model iteracyjny pozwala więc

na bardzo szybką weryfikację realizowalności wytwarzanego

systemu i informację zwrotną od klienta, czy to, czego potrze-

buje, jest tym, co otrzyma jako produkt procesu wytwórczego.

Praktyka stosowania procesu iteracyjnego zaleca przed

rozpoczęciem rzeczywistych iteracji przeprowadzenie swe-

go rodzaju rozpoznania wymagań, w celu uzyskania ogólnego

obrazu i zakresu projektu. Celem, jaki przyświeca tym działa-

niom, jest podział wymagań na właściwe iteracje. Takie wstęp-

ne działania polegają najczęściej na stworzeniu ogólnej archi-

tektury systemu, a niekiedy nawet jego prototypu.

Ciekawą i moim zdaniem niezwykle pożądaną odmia-

ną procesu iteracyjnego jest możliwość przekazania sys-

temu do wdrożenia, gdy tylko jakiś rozsądny podzbiór wy-

magań zostanie zaimplementowany i przetestowany. Jest to

korzystne, co najmniej z dwóch powodów: wcześniej moż-

na uzyskać pewne korzyści (nie ma co ukrywać, że chodzi

tu o korzyści finansowe) z wdrożenia systemu, ale również,

co w dłuższej perspektywie jest ważniejsze, można uzyskać

w pełni obiektywne opinie na temat jego działania w rzeczy-

wistych warunkach. W takich sytuacjach system można wy-

puszczać w kolejnych wydaniach, z których każde podzielo-

ne jest na pewną liczbę iteracji.

Rysunek 4.

Model V

���������

�����

��������

�������

��������

�������

��������

�������������

���������

�����

������������

�����

�����������

�����

������������

�����

�������

Rysunek 5.

Model spiralny

����������

����������

�����������������

�����

�������������

�������������

����������������

�������������������������������

����������������������������

�����������������������������

������������������

�����������������������������������

������������������������

�������������������

���������������������������

����������������

������������������������

�������������������������

background image

Przegląd modeli cyklu życia oprogramowania

Bardzo często można spotkać się z pojęciem procesu przy-

rostowego, ewolucyjnego lub spiralnego, które w praktyce są tym

samym, co proces iteracyjny. Oczywiście na gruncie teoretycz-

nym rozważa się różnice pomiędzy tymi procesami, ale nie są

one wyraźne. W dalszej części artykułu przedstawiony jednak

zostanie model spiralny, ze względu na częste odwołania się do

niego w literaturze dotyczącej omawianego tematu.

Model kaskadowy

i model iteracyjny – możliwe scalenie

Przedstawiony opis modelu kaskadowego i iteracyjnego zo-

stał znacząco uproszczony, aby czytelnik uchwycił podsta-

wową różnicę pomiędzy tymi procesami. Praktyka pokazuje,

że oba procesy mogą podlegać bardzo wielu zaburzeniom, co

nie oznacza oczywiście, że wówczas system jest realizowany

niemetodycznie.

Często proponowanym rodzajem procesu jest tzw. etapo-

wy cykl tworzenia oprogramowania, które stanowi scalenie

modelu kaskadowego i modelu iteracyjnego. Proponuje się w

nim dokonać według modelu kaskadowego zbierania wyma-

gań, analizy i projektowania, a implementację i testowanie po-

dzielić następnie na iteracje. Wdrożenia można natomiast do-

konać po zaimplementowaniu i przetestowaniu całości wy-

magań ponownie według modelu kaskadowego lub też mo-

że to polegać na instalacji kolejnych wydań systemu, co zale-

ży oczywiście od charakteru projektu i uzgodnień z klientem.

Oczywistym jest, co już zostało wspomniane, że to drugie po-

dejście wydaje się być z różnych przyczyn korzystniejsze za-

równo dla twórców, jak i odbiorców systemu.

Można śmiało postawić tezę, że jednym z głównych po-

wodów modyfikacji modelu kaskadowego elementami cha-

rakterystycznymi dla procesu iteracyjnego są względy finan-

sowe, a nie jak by się mogło wydawać oczywiste zalety itera-

cyjnego podejścia do wytwarzania oprogramowania. Zauważ-

my, że wykonawca żąda pieniędzy za każdy wykonany etap.

Z kolei klient, płacąc za wykonany etap, żąda wyników, które

R

E

K

L

A

M

A

jest wstanie ocenić pod względem zgodności z wymaganiami

(a często niestety mało precyzyjnymi wyobrażeniami).

Model V

Rozwinięciem modelu wodospadu jest model V, charakteryzu-

jący się rozbudowaną fazą testów. Model V jest jednym z naj-

popularniejszych podejść do procesu testowania. Testy mają

na celu weryfikację i walidację poprawności wykonania każ-

dego etapu stanowiącego cykl życia oprogramowania. Dzię-

ki rozbudowaniu sekwencji etapów wytwórczych o testowanie

otrzymujemy produkt o najwyższej jakości, spełniający wyma-

gania klienta.

Model V podobnie jak klasyczny model kaskadowy stwa-

rza bardzo duże niebezpieczeństwo. Oczywistym jest prze-

cież, że im później zostanie wykryty błąd lub niezgodność z

wymaganiami, tym kosztowniejsza będzie naprawa. Dzięki te-

mu, że każdy z etapów wytwórczych kończy się różnego ro-

dzaju przeglądami i inspekcjami prawdopodobieństwo poja-

wienia się błędu lub niezgodności z wymaganiami przy wdro-

żeniu i eksploatacji jest dużo mniejsze niż w modelu klasycz-

nym. Powoduje to znaczące obniżenie kosztów pielęgnacji

systemu. Dodatkowo wynikiem każdego etapu wytwórcze-

go są plany testów, które po zakończeniu zstępującego cyklu

produkcyjnego (lewe ramię litery V) realizowane są wstępują-

co (prawe ramię litery V).

Model spiralny

Model spiralny jest w pewnym sensie próbą formalizacji po-

dejścia iteracyjnego do wytwarzania oprogramowania. Głów-

ną cechą tego modelu jest analiza ryzyka występująca w każ-

dej iteracji. Ciągłe monitorowanie i pomiar zmian, które pod-

dawane są krytycznemu spojrzeniu użytkownika, umożliwiają

dokonanie analizy ryzyka. Pierwszą czynnością, która nie jest

przedstawiona na rysunku obrazującym model spiralny, jest

analiza wymagań wstępnych. Jeżeli wymagania wydają się

być realizowalne w założonym czasie, budżecie i przy dostęp-

background image

56

Inżynieria

oprogramowania

www.sdjournal.org

Software Developer’s Journal 10/2006

nych zasobach (tzw. zasad trójkąta) można przejść do plano-

wania projektu i pierwszej iteracji.

Właściwie kolejne iteracje mają postać „małych” wodo-

spadów. Po każdej takiej pełnej iteracji dokonuje się przeglą-

du systemu. Jeżeli dane przedsięwzięcie wymaga dalszych

prac wówczas należy zaplanować kolejną iterację, a następ-

nie przeprowadzić analizę ryzyka realizacji kolejnego wyda-

nia. Model spiralny stanowi więc „obudowaną” wersję modelu

wodospadu opartą o bieżącą analizę ryzyka.

Model spiralny można postrzegać jako cyklicznie powta-

rzane cztery czynności:

l

planowanie – na podstawie wymagań i celów wyznaczo-

nych przez klienta, dokonuje się określenia alternatyw i

ograniczeń oraz planowania iteracji przy każdorazowym

rozpoczęciu kolejnego cyklu spirali.

l

analiza ryzyka – sprowadza się do oceny rozwiązań alter-

natywnych oraz próby identyfikacji i analizy ryzyka zwią-

zanego z każdą z możliwych alternatyw konstrukcji nowe-

go wydania.

l

konstrukcja – ma postać „małego” wodospadu, a jej celem

jest wytworzenie kolejnego wydania systemu.

l

ocena przez klienta – walidacja wydania i jego ocena z

możliwością modyfikacji wymagań na system (możliwość

wystąpienia modyfikacji wymagań powinna być minimali-

zowana).

Główne zalety modelu spiralnego to próba minimalizacji ry-

zyka niepowodzenia przedsięwzięcia oraz ciągła weryfikacja

produktu przez użytkownika, co ma na celu wytworzenie pro-

duktu w pełni satysfakcjonującego klienta.

Prototypowanie

Model prototypowania jest kolejną próbą radzenia sobie z pro-

blemem identyfikacji i braku stabilności wymagań. Prototy-

powanie polega na budowaniu kolejnych „przybliżeń” syste-

mu do momentu aż prototyp stanie się dobrym odzwiercie-

dleniem wymagań. Oceny prototypów i kolejne wersje owych

prototypów, w sposób bardzo naturalny prowadzą do identy-

fikacji wymagań. Zauważmy, że prototypowanie w tym przy-

padku pokrywa etap analizy wymagań i stąd często przedsta-

wiany model określa się jako „prototypowanie wymagań”. Ce-

chą charakterystyczną „prototypowania wymagań” jest budo-

wa „szybkiego projektu” bez dbałości o jego jakość i dostoso-

wanie do środowiska docelowego. Oczywiście możliwe jest

szersze spojrzenie na prototypowanie tak, aby obejmowało

ono również etap projektowania w celu weryfikacji efektywno-

ści przyjętych rozwiązań. Ten rodzaj prototypowania określa-

ny jest mianem „prototypowania wytwórczego”.

Gdy mamy już pewność, że wszystkie wymagania zosta-

ły zidentyfikowane, wówczas można przystąpić do konstruk-

cji właściwego produktu zgodnie z modelem klasycznym wy-

twarzania oprogramowania, rozpoczynając od etapu projekto-

wania. Tego typu podejście może niekiedy spotkać się z nie-

zrozumieniem ze strony klienta, bądź też pojawić się na wyż-

szych szczeblach zarządzania firmą wykonawcy. Często po-

jawiają się pytania typu: Dlaczego trzeba zaczynać wszystko

od nowa „jeśli już prawie wszystko zrobiono”? Kolejną wadą

prototypowania jest możliwość „przyzwyczajenia się” klienta

do funkcjonalności oferowanej przez prototyp, a która nie wy-

nika z przyjętych wymagań. Również projektant może „przy-

zwyczaić się” do rozwiązań zastosowanych w prototypie. Re-

asumując, model prototypowy musi być dobrze rozumiany

przez obie strony tj. zarówno twórcę systemu informatyczne-

go, jak i klienta.

Planowanie predykcyjne i adaptacyjne

Wybór procesu wytwarzania oprogramowania bardzo silnie

zależeć będzie od stabilności wymagań. Również sposób pla-

nowania jest uzależniony od stabilności wymagań. Przy zało-

żeniu, że wymagania, które zostały zebrane nie będą już się

zmieniały, jak również klient nie będzie dodawał nowych, za-

Literatura

l

[1] Marin Fowler UML Distilled: A Brief Guide To The Standard

Object Modeling Language, Pearson Education, Inc., 2004;

l

[2] Stanisław Szejko Metody wytwarzania oprogramowania,

MIKOM, Warszawa 2002;

l

[3] Graham I. Inżynieria oprogramowania – metody obiektowe

w teorii i praktyce, WNT, Warszawa 2004.

Rysunek 6.

Model prototypowania

background image

Przegląd modeli cyklu życia oprogramowania

leca się planowanie predykcyjne. Planowanie predykcyjne jest

bardzo często narzucone w projektach rządowych i dla woj-

ska. Trudno wyobrazić sobie tutaj inny sposób planowania,

ponieważ mamy najczęściej sztywną datę zakończenia i kwo-

tę budżetu. Ustalenia pomiędzy twórcą systemu i zamawiają-

cym muszą jednoznacznie precyzować, co właściwie jest do

zrobienia, ile produkt finalny będzie kosztował i kiedy zosta-

nie ukończony. To dlatego w tego typu projektach możliwe jest

wykorzystania procesu kaskadowego. Dla administracji nic

przecież nie jest bardziej kłopotliwe niż brak jasnej wizji kosz-

tu wytworzenia jakiegoś produktu i czasu jego realizacji.

Powstaje jednak pytanie, czy projekty informatyczne mo-

gą być w ogóle przewidywalne. Bez wątpienia w większości

projektów można się spotkać z „chaosem wymagań”. Chaos

polega na wprowadzaniu zmian do wymagań w późniejszych

etapach cyklu życia oprogramowania. Zmiany takie prak-

tycznie zawsze powodują konieczność przebudowy pierwot-

nie stworzonego planu projektu. Oczywiście można próbo-

wać walczyć z taką sytuacją. Powszechnie stosowanym spo-

sobem radzenia sobie ze zmianami „życzeń klienta” jest za-

mrożenie na pewnym etapie zbioru wymagań. Powstaje jed-

nak pewien problem. Zamrożenie wymagań powoduje ryzyko

stworzenia produktu, który właściwie nie jest potrzebny klien-

towi już w chwili wdrażania.

Można jednak inaczej próbować podejść do proble-

mu zmieniających się wymagań. Zakładamy mianowicie,

że „chaos wymagań” jest zjawiskiem nieuniknionym, a peł-

na przewidywalność to iluzja. Doskonale sprawdza się wów-

czas planowanie adaptacyjne, które traktuje zmiany jako

coś zupełnie naturalnego. Zmiany muszą być oczywiście

kontrolowane. Ciekawą rzeczą jest fakt, że w przypadku

planowania adaptacyjnego ciężko powiedzieć, że system ja-

ko całość rozwija się zgodnie z planem, a to dlatego, że taki

plan ulega ciągłej modyfikacji. Oznacza to tyle, że plan słu-

ży raczej do możliwości oszacowania konsekwencji wpro-

wadzenia zmian niż do przewidywania, kiedy system zosta-

nia oddany w ręce klienta. W przypadku planowania adapta-

cyjnego można oczywiście na stałe określić budżet przewi-

dziany na projekt i czas jego zakończenia, jednak nie moż-

na przewidzieć zakresu wymagań, które zostaną zrealizo-

wane. Planowanie adaptacyjne wymaga ścisłej permanent-

nej współpracy zespołu projektowego z klientem, a zbiór

wymagań może być dość elastycznie modyfikowany, roz-

szerzany, a niekiedy zawężany, oczywiście wszystko za po-

rozumieniem obu stron. W tego typu projektach zastosowa-

nie modelu kaskadowego z góry skazane jest na niepowo-

dzenie. Plan adaptacyjny możliwy jest do zastosowania je-

dynie w przypadku zastosowania procesu iteracyjnego i je-

go licznych modyfikacji, z których niektóre przedstawione

zostały w artykule.

Podsumowanie

Badania prowadzone w Stanach Zjednoczonych wykazały, że

ponad 2/3 wszystkich projektów informatycznych kończą się

niepowodzeniem. Niepowodzenie było najczęściej rezultatem

braku środków finansowych na kontynuowanie projektu (nie-

doszacowanie kosztów), stworzenie produktu, który nie speł-

nia wymagań klienta lub zakończenie procesu wytwarzania z

bliżej nieokreślonych względów (często politycznych).

Powodów porażki może być wiele, ale najczęściej wskazy-

wanymi były:

l

brak większego zaangażowania ze strony klienta;

l

zbyt ogólnie sformułowane wymagania lub ich modyfika-

cja;

l

brak „właściciela” projektu;

l

brak planu działania.

Wydaje się więc, że rozważania na temat procesu wytwarza-

nia oprogramowania są potrzebne, ponieważ twórcom syste-

mów informatycznych zależy na tym, aby sukces jednego pro-

jektu przekładał się na następny, aby był powtarzalny. Takie

podejście daje możliwość doskonalenia procesu wytwarza-

nia oprogramowania poprzez dokonywanie pomiarów i osza-

cowań, a to z kolei wpływa na polepszenie jakości produktu i

zadowolenie klienta.

Nie wolno zapominać, że proces wytwarzania oprogramo-

wania powinien być wspomagany przez narzędzia CASE, któ-

re oczywiście wymagają odpowiedniej konfiguracji na potrze-

by danego projektu. Umiejętność wykorzystania tego typu na-

rzędzi jest praktycznie warunkiem koniecznym powodzenia

każdego większego przedsięwzięcia informatycznego. n

R

E

K

L

A

M

A


Wyszukiwarka

Podobne podstrony:
2006 10 Łączenie kodu C z zarządzanym kodem NET [Inzynieria Oprogramowania]
unold, inżynieria oprograamowania, Modele cyklu życia projektu
10 Dysleksja ADHD, psychologia, II rok, psychologia rozwoju czlowieka w cyklu zycia
2006 09 Data Protection API i NET Framework 2 0 [Inzynieria Oprogramowania]
Etapy cyklu zycia rodzinnego, ciaza
2006 10 trendy
IPN 08 2006 10 06
2 Prenatalny, psychologia, II rok, psychologia rozwoju czlowieka w cyklu zycia
6 Emocje, psychologia, II rok, psychologia rozwoju czlowieka w cyklu zycia
2006.10.30 psychometria cw, Psychologia, Psychometria
materiały na egzamin, Studia z psychologii, Psychologia rozwoju człowieka w cyklu życia
2006.10.16 psychometria ćw, Psychologia, Psychometria
Projekt gospodarki złożem i organizacji produkcji w cyklu życia kopalni T B (Gotowy)
Podsumowanie Cyklu życia jogurtu

więcej podobnych podstron