
[[[separator]]]
Budowa oprogramowania komputerowego nigdy nie była łatwa. Historia zna wiele nieudanych przedsięwzięć informatycznych: gdy produkty, które powstały w efekcie ich przeprowadzenia, nie osiągnęły oczekiwanej jakości (w tym przede wszystkim funkcjonalności), gdy ich realizacja znacząco przekraczała zaplanowany budżet lub gdy kończyły się niezgodnie z harmonogramem albo - co gorsza - kompletnym fiaskiem, czyli zaniechaniem (porzuceniem) przed ich finalizacją. Stąd od zawsze informatycy stosowali różnorodne metody, by zredukować prawdopodobieństwo klęski, pamiętając jednocześnie o wymiarze ekonomicznym. Starano się zatrudniać najlepszych dostępnych specjalistów, pracownikom oferowano dodatkowe szkolenia, miejsca pracy wyposażano w najnowocześniejszy sprzęt i najbardziej niezawodne oprogramowanie systemowe oraz narzędziowe, promowano stosowanie nowoczesnych, a jednocześnie najlepiej dostosowanych do branży języków programowania i metodyk programistycznych, zapewniano dostęp do nowoczesnych narzędzi CASE (ang. Computer Aided/Assisted Software/System Engineering). Ale najprostszą z metod, zasadniczo nieomal bezkosztową i stosowaną praktycznie od zawsze, było w miarę zdobywania kolejnych doświadczeń takie przeorganizowanie prac wytwórczych - analitycznych, projektowych, programistycznych, weryfikacyjnych i wdrożeniowych - by zwiększyć prawdopodobieństwo osiągnięcia sukcesu.
Wymienione wyżej prace mogą być przeprowadzone na wiele różnych sposobów. I ten właśnie sposób zorganizowania działań i kolejność ich realizacji stanowią model cyklu życia rozwoju oprogramowania (lub w skrócie: model rozwoju oprogramowania). Modeli takich powstało wiele. Różnią się m.in.: stopniem skomplikowania, wielkością produktu programowego, który ma dzięki nim powstać, sposobem zorganizowania współpracy ze zleceniodawcą podczas ustalania wymagań oraz angażowania go podczas kolejnych działań wytwórczych, sposobem dostarczania kończonego produktu (jednorazowo lub fragmentarycznie), organizacją przepływu pracy (sekwencyjnie lub iteracyjnie). Nie ma modelu idealnego, najlepszego we wszystkich okolicznościach. Każdy ma swe zalety i wady, każdy może się sprawdzić w określonych sytuacjach lub doprowadzić do klęski, gdy będzie zastosowany w niewłaściwych warunkach. Zasadniczym celem autora niniejszej publikacji było przedstawienie korzyści i niebezpieczeństw związanych ze stosowaniem różnych znanych z literatury i praktyki modeli cyklu życia oprogramowania oraz udzielenie wskazówek, w jakich okolicznościach dany model może wykazać przewagi nad innymi.
Celowi temu została podporządkowana struktura pracy. W rozdziale 1 omówiono proces cyklu życia oprogramowania w kontekście zarządzania projektami. W kolejnych rozdziałach opisano najbardziej znane tradycyjne modele: model programowania eksploracyjnego (rozdział 2), model kaskadowy (rozdział 3), model prototypowania (rozdział 4), model szybkiego wytwarzania oprogramowania RAD (Rapid Application Development; rozdział 5), model przyrostowy (rozdział 6), model spiralny (rozdział 7) i proces ujednolicony RUP (Rational Unified Process; rozdział 8) - większość ich w kilku wariantach i odmianach. Struktura rozdziałów jest ustandaryzowana: po opisie samego modelu i jego genezy przedstawiono zalety i wady modelu oraz okoliczności sprawiające, że jego zastosowanie może być skuteczne. W rozdziale 9 zestawiono charakterystyki modeli: ich mocne i słabe stron, najważniejsze właściwości oraz uwarunkowania skłaniające do ich wykorzystania.
Warto podkreślić, co zresztą sygnalizuje podtytuł niniejszej monografii, że opisano w niej wyłącznie modele tradycyjne. Modelom zwinnym, które aktualnie w praktyce są częściej stosowane, będzie poświęcona druga część dylogii.
[[[separator]]]
WSTĘP
MODELE CYKLU ŻYCIA W KONTEKŚCIE ZARZĄDZANIA PROJEKTAMI
MODEL PROGRAMOWANIA EKSPLORACYJNEGO
MODEL KASKADOWY
3.1. Podstawowe wersje modelu kaskadowego
3.2. Inne warianty modelu kaskadowego
3.2.1. Model kaskadowy z nakładającymi się fazami
3.2.2. Model kierowany dokumentami
3.2.3. Model V
3.2.4. Model W
MODEL PROTOTYPOWANIA
4.1. Prototypowanie odrzucane
4.2. Prototypowanie ewolucyjne
4.3. Prototyp odrzucany czy ewolucyjny?
4.4. Uzupełnienie
MODEL RAD (RAPID APPLICATION DEVELOPMENT)
5.1. RAD w interpretacji J. Martina
5.2. Interpretacja R.S. Pressmana - RAD (P)
MODEL PRZYROSTOWY
6.1. Tradycyjne podejście przyrostowe
6.2. Model przyrostowy równoległy
6.3. Uzupełnienie
MODEL SPIRALNY
7.1. Podstawowy model spiralny
7.2. Inne interpretacje modelu spiralnego
MODEL RUP (RATIONAL UNIFIED PROCESS)
8.1. Fazy modelu RUP
8.2. Dyscypliny modelu RUP
PORÓWNANIE MODELI
9.1. Zestawienie właściwości modeli
9.2. Modele sekwencyjne
9.3. Modele iteracyjne
9.4. Wybór odpowiedniego modelu
ZAKOŃCZENIE
BIBLIOGRAFIA
SPIS RYSUNKÓW
SPIS TABEL
Opis
Wstęp
Budowa oprogramowania komputerowego nigdy nie była łatwa. Historia zna wiele nieudanych przedsięwzięć informatycznych: gdy produkty, które powstały w efekcie ich przeprowadzenia, nie osiągnęły oczekiwanej jakości (w tym przede wszystkim funkcjonalności), gdy ich realizacja znacząco przekraczała zaplanowany budżet lub gdy kończyły się niezgodnie z harmonogramem albo - co gorsza - kompletnym fiaskiem, czyli zaniechaniem (porzuceniem) przed ich finalizacją. Stąd od zawsze informatycy stosowali różnorodne metody, by zredukować prawdopodobieństwo klęski, pamiętając jednocześnie o wymiarze ekonomicznym. Starano się zatrudniać najlepszych dostępnych specjalistów, pracownikom oferowano dodatkowe szkolenia, miejsca pracy wyposażano w najnowocześniejszy sprzęt i najbardziej niezawodne oprogramowanie systemowe oraz narzędziowe, promowano stosowanie nowoczesnych, a jednocześnie najlepiej dostosowanych do branży języków programowania i metodyk programistycznych, zapewniano dostęp do nowoczesnych narzędzi CASE (ang. Computer Aided/Assisted Software/System Engineering). Ale najprostszą z metod, zasadniczo nieomal bezkosztową i stosowaną praktycznie od zawsze, było w miarę zdobywania kolejnych doświadczeń takie przeorganizowanie prac wytwórczych - analitycznych, projektowych, programistycznych, weryfikacyjnych i wdrożeniowych - by zwiększyć prawdopodobieństwo osiągnięcia sukcesu.
Wymienione wyżej prace mogą być przeprowadzone na wiele różnych sposobów. I ten właśnie sposób zorganizowania działań i kolejność ich realizacji stanowią model cyklu życia rozwoju oprogramowania (lub w skrócie: model rozwoju oprogramowania). Modeli takich powstało wiele. Różnią się m.in.: stopniem skomplikowania, wielkością produktu programowego, który ma dzięki nim powstać, sposobem zorganizowania współpracy ze zleceniodawcą podczas ustalania wymagań oraz angażowania go podczas kolejnych działań wytwórczych, sposobem dostarczania kończonego produktu (jednorazowo lub fragmentarycznie), organizacją przepływu pracy (sekwencyjnie lub iteracyjnie). Nie ma modelu idealnego, najlepszego we wszystkich okolicznościach. Każdy ma swe zalety i wady, każdy może się sprawdzić w określonych sytuacjach lub doprowadzić do klęski, gdy będzie zastosowany w niewłaściwych warunkach. Zasadniczym celem autora niniejszej publikacji było przedstawienie korzyści i niebezpieczeństw związanych ze stosowaniem różnych znanych z literatury i praktyki modeli cyklu życia oprogramowania oraz udzielenie wskazówek, w jakich okolicznościach dany model może wykazać przewagi nad innymi.
Celowi temu została podporządkowana struktura pracy. W rozdziale 1 omówiono proces cyklu życia oprogramowania w kontekście zarządzania projektami. W kolejnych rozdziałach opisano najbardziej znane tradycyjne modele: model programowania eksploracyjnego (rozdział 2), model kaskadowy (rozdział 3), model prototypowania (rozdział 4), model szybkiego wytwarzania oprogramowania RAD (Rapid Application Development; rozdział 5), model przyrostowy (rozdział 6), model spiralny (rozdział 7) i proces ujednolicony RUP (Rational Unified Process; rozdział 8) - większość ich w kilku wariantach i odmianach. Struktura rozdziałów jest ustandaryzowana: po opisie samego modelu i jego genezy przedstawiono zalety i wady modelu oraz okoliczności sprawiające, że jego zastosowanie może być skuteczne. W rozdziale 9 zestawiono charakterystyki modeli: ich mocne i słabe stron, najważniejsze właściwości oraz uwarunkowania skłaniające do ich wykorzystania.
Warto podkreślić, co zresztą sygnalizuje podtytuł niniejszej monografii, że opisano w niej wyłącznie modele tradycyjne. Modelom zwinnym, które aktualnie w praktyce są częściej stosowane, będzie poświęcona druga część dylogii.
Spis treści
WSTĘP
MODELE CYKLU ŻYCIA W KONTEKŚCIE ZARZĄDZANIA PROJEKTAMI
MODEL PROGRAMOWANIA EKSPLORACYJNEGO
MODEL KASKADOWY
3.1. Podstawowe wersje modelu kaskadowego
3.2. Inne warianty modelu kaskadowego
3.2.1. Model kaskadowy z nakładającymi się fazami
3.2.2. Model kierowany dokumentami
3.2.3. Model V
3.2.4. Model W
MODEL PROTOTYPOWANIA
4.1. Prototypowanie odrzucane
4.2. Prototypowanie ewolucyjne
4.3. Prototyp odrzucany czy ewolucyjny?
4.4. Uzupełnienie
MODEL RAD (RAPID APPLICATION DEVELOPMENT)
5.1. RAD w interpretacji J. Martina
5.2. Interpretacja R.S. Pressmana - RAD (P)
MODEL PRZYROSTOWY
6.1. Tradycyjne podejście przyrostowe
6.2. Model przyrostowy równoległy
6.3. Uzupełnienie
MODEL SPIRALNY
7.1. Podstawowy model spiralny
7.2. Inne interpretacje modelu spiralnego
MODEL RUP (RATIONAL UNIFIED PROCESS)
8.1. Fazy modelu RUP
8.2. Dyscypliny modelu RUP
PORÓWNANIE MODELI
9.1. Zestawienie właściwości modeli
9.2. Modele sekwencyjne
9.3. Modele iteracyjne
9.4. Wybór odpowiedniego modelu
ZAKOŃCZENIE
BIBLIOGRAFIA
SPIS RYSUNKÓW
SPIS TABEL
Opinie
Budowa oprogramowania komputerowego nigdy nie była łatwa. Historia zna wiele nieudanych przedsięwzięć informatycznych: gdy produkty, które powstały w efekcie ich przeprowadzenia, nie osiągnęły oczekiwanej jakości (w tym przede wszystkim funkcjonalności), gdy ich realizacja znacząco przekraczała zaplanowany budżet lub gdy kończyły się niezgodnie z harmonogramem albo - co gorsza - kompletnym fiaskiem, czyli zaniechaniem (porzuceniem) przed ich finalizacją. Stąd od zawsze informatycy stosowali różnorodne metody, by zredukować prawdopodobieństwo klęski, pamiętając jednocześnie o wymiarze ekonomicznym. Starano się zatrudniać najlepszych dostępnych specjalistów, pracownikom oferowano dodatkowe szkolenia, miejsca pracy wyposażano w najnowocześniejszy sprzęt i najbardziej niezawodne oprogramowanie systemowe oraz narzędziowe, promowano stosowanie nowoczesnych, a jednocześnie najlepiej dostosowanych do branży języków programowania i metodyk programistycznych, zapewniano dostęp do nowoczesnych narzędzi CASE (ang. Computer Aided/Assisted Software/System Engineering). Ale najprostszą z metod, zasadniczo nieomal bezkosztową i stosowaną praktycznie od zawsze, było w miarę zdobywania kolejnych doświadczeń takie przeorganizowanie prac wytwórczych - analitycznych, projektowych, programistycznych, weryfikacyjnych i wdrożeniowych - by zwiększyć prawdopodobieństwo osiągnięcia sukcesu.
Wymienione wyżej prace mogą być przeprowadzone na wiele różnych sposobów. I ten właśnie sposób zorganizowania działań i kolejność ich realizacji stanowią model cyklu życia rozwoju oprogramowania (lub w skrócie: model rozwoju oprogramowania). Modeli takich powstało wiele. Różnią się m.in.: stopniem skomplikowania, wielkością produktu programowego, który ma dzięki nim powstać, sposobem zorganizowania współpracy ze zleceniodawcą podczas ustalania wymagań oraz angażowania go podczas kolejnych działań wytwórczych, sposobem dostarczania kończonego produktu (jednorazowo lub fragmentarycznie), organizacją przepływu pracy (sekwencyjnie lub iteracyjnie). Nie ma modelu idealnego, najlepszego we wszystkich okolicznościach. Każdy ma swe zalety i wady, każdy może się sprawdzić w określonych sytuacjach lub doprowadzić do klęski, gdy będzie zastosowany w niewłaściwych warunkach. Zasadniczym celem autora niniejszej publikacji było przedstawienie korzyści i niebezpieczeństw związanych ze stosowaniem różnych znanych z literatury i praktyki modeli cyklu życia oprogramowania oraz udzielenie wskazówek, w jakich okolicznościach dany model może wykazać przewagi nad innymi.
Celowi temu została podporządkowana struktura pracy. W rozdziale 1 omówiono proces cyklu życia oprogramowania w kontekście zarządzania projektami. W kolejnych rozdziałach opisano najbardziej znane tradycyjne modele: model programowania eksploracyjnego (rozdział 2), model kaskadowy (rozdział 3), model prototypowania (rozdział 4), model szybkiego wytwarzania oprogramowania RAD (Rapid Application Development; rozdział 5), model przyrostowy (rozdział 6), model spiralny (rozdział 7) i proces ujednolicony RUP (Rational Unified Process; rozdział 8) - większość ich w kilku wariantach i odmianach. Struktura rozdziałów jest ustandaryzowana: po opisie samego modelu i jego genezy przedstawiono zalety i wady modelu oraz okoliczności sprawiające, że jego zastosowanie może być skuteczne. W rozdziale 9 zestawiono charakterystyki modeli: ich mocne i słabe stron, najważniejsze właściwości oraz uwarunkowania skłaniające do ich wykorzystania.
Warto podkreślić, co zresztą sygnalizuje podtytuł niniejszej monografii, że opisano w niej wyłącznie modele tradycyjne. Modelom zwinnym, które aktualnie w praktyce są częściej stosowane, będzie poświęcona druga część dylogii.
WSTĘP
MODELE CYKLU ŻYCIA W KONTEKŚCIE ZARZĄDZANIA PROJEKTAMI
MODEL PROGRAMOWANIA EKSPLORACYJNEGO
MODEL KASKADOWY
3.1. Podstawowe wersje modelu kaskadowego
3.2. Inne warianty modelu kaskadowego
3.2.1. Model kaskadowy z nakładającymi się fazami
3.2.2. Model kierowany dokumentami
3.2.3. Model V
3.2.4. Model W
MODEL PROTOTYPOWANIA
4.1. Prototypowanie odrzucane
4.2. Prototypowanie ewolucyjne
4.3. Prototyp odrzucany czy ewolucyjny?
4.4. Uzupełnienie
MODEL RAD (RAPID APPLICATION DEVELOPMENT)
5.1. RAD w interpretacji J. Martina
5.2. Interpretacja R.S. Pressmana - RAD (P)
MODEL PRZYROSTOWY
6.1. Tradycyjne podejście przyrostowe
6.2. Model przyrostowy równoległy
6.3. Uzupełnienie
MODEL SPIRALNY
7.1. Podstawowy model spiralny
7.2. Inne interpretacje modelu spiralnego
MODEL RUP (RATIONAL UNIFIED PROCESS)
8.1. Fazy modelu RUP
8.2. Dyscypliny modelu RUP
PORÓWNANIE MODELI
9.1. Zestawienie właściwości modeli
9.2. Modele sekwencyjne
9.3. Modele iteracyjne
9.4. Wybór odpowiedniego modelu
ZAKOŃCZENIE
BIBLIOGRAFIA
SPIS RYSUNKÓW
SPIS TABEL