background image

 Slajd  1

Metody tworzenia 

systemów 

informatycznych

background image

 Slajd  2

Plan wykładu

Tworzenie kaskadowe

Tworzenie ewolucyjne 

Tworzenie formalne systemu 

Tworzenie z użyciem wielokrotnym 

 Iteracja procesu tworzenia 
oprogramowania

           

Tworzenie przyrostowe 

            Tworzenie spiralne

background image

 Slajd  3

Tworzenie 
kaskadowe

background image

 Slajd  4

Metody tworzenia systemów 
informatycznych

Tworzenie kaskadowe

     W tym modelu podstawowe 

czynności specyfikowania, 
tworzenia, zatwierdzania i ewolucji 
są odrębnymi fazami procesu.

background image

 Slajd  5

Fazy modelu kaskadowego

Definiowanie i analiza wymagań

Projektowanie systemu i analiza 
wymagań

Implementacja i testowanie jednostek

Integracja i testowanie systemu

Działanie i pielęgnacja

background image

 Slajd  6

Model kaskadowy

 

Definiowanie wymagań

Definiowanie wymagań

Projektowanie systemu 

i oprogramowania

Implementacja i testowanie

jednostek

Integracja i testowanie
         

systemu

Działanie i 
pielęgnacja

background image

 Slajd  7

Problemy modelu 
kaskadowego

Następnej fazy nie powinno się 

rozpoczynać, jeśli poprzednia się nie zakończy.

Koszty opracowania i akceptacji 

dokumentów są wysokie i dlatego iteracje są 

również kosztowne oraz wymagają powtarzania 

wielu prac.

Wadą modelu kaskadowego jest zawarty w nim 

nieelastyczny podział na rozłączne etapy.

Model kaskadowy powinien być używany 

jedynie wówczas, gdy wymagania są jasne i 

zrozumiałe.

background image

 Slajd  8

Tworzenie 
ewolucyjne

background image

 Slajd  9

Metody tworzenia systemów 
informatycznych

Tworzenie ewolucyjne

    W tym procesie czynności 

specyfikowania, projektowania i 
zatwierdzania przeplatają się.

background image

 Slajd  10

Tworzenie ewolucyjne

Tworzenie badawcze 

Celem procesu jest praca z klientem, polegająca na 

badaniu wymagań i dostarczeniu ostatecznego 

systemu. Tworzenie rozpoczyna się od tych części 

systemu, które są dobrze rozpoznane. System 

ewoluuje przez dodawanie nowych cech, które 

proponuje klient.

Prototypowanie z porzuceniem

Celem procesu tworzenia ewolucyjnego jest 

zrozumienie wymagań klienta i wypracowanie lepszej 

definicji wymagań stawianych systemowi. Budowanie 

prototypu ma głównie na celu eksperymentowanie z 

tymi wymaganiami użytkownika, które są niejasne. 

background image

 Slajd  11

Tworzenie ewolucyjne

Wersja 
początko
wa

Ogólny opis

   Specyfikacja

        Tworzenie

Zatwierdzenie

Wersje pośrednie

Wersja końcowa

Równolegle czynności

background image

 Slajd  12

Tworzenie ewolucyjne

Problemy

Proces nie jest widoczny

System ma złą strukturę

Konieczne mogą być specjalne narzędzia i techniki

Stosowanie

W wypadku systemów małych (mniej niż 100 000 
wierszy kodu) lub średnich (do 500 000 wierszy kodu) z 
krótkim czasem życia podejście ewolucyjne jest 
najlepsze.

W wypadku dużych systemów o długim czasie życia 
wady tworzenia ewolucyjnego ujawniają się jednak z 
całą ostrością.

background image

 Slajd  13

Tworzenie formalne 
systemu

background image

 Slajd  14

Metody tworzenia systemów 
informatycznych

Tworzenie formalne systemu

     To podejście jest oparte na 

budowaniu formalnych 
matematycznych specyfikacji 
systemu i przekształcaniu tych 
specyfikacji w program za pomocą 
metod matematycznych.

background image

 Slajd  15

Tworzenie formalne 
systemów

 

 

Definicja 
wymagań

Specyfikacja
formalna

Przekształce
nie 
formalne

Integracja i testowanie
     systemu

background image

 Slajd  16

Tworzenie formalne 
systemów

R2

Formal

specification

R3

Executable

program

P2

P3

P4

T1

T2

T3

T4

Proofs of transformation correctness

Formal transformations

R1

P1

background image

 Slajd  17

Problemy i stosowalność

Oprócz specjalistycznych dziedzin procesy 

oparte na przekształceniach formalnych 

są używane rzadko.

Wymagają specjalistycznej wiedzy i w 

praktyce okazuje się, że w wypadku 

większości systemów nie powodują 

zmniejszenia kosztów lub polepszenia 

jakości w porównaniu z innymi 

podejściami.

Interakcje systemów nie poddają się 

łatwo specyfikowaniu formalnemu.

background image

 Slajd  18

Tworzenie z użyciem 
wielokrotnym

background image

 Slajd  19

Metody tworzenia systemów 
informatycznych

Tworzenie z użyciem wielokrotnym

     W tym podejściu zakłada się 

istnienie dużej liczby komponentów 
zdatnych do ponownego użycia.

background image

 Slajd  20

Tworzenie z użyciem 
wielokrotnym

W większości przedsięwzięć

 

programistycznych występuje użycie 

wielokrotne oprogramowania.

Etapy procesu

Analiza komponentów

Modyfikacja wymagań

Projektowanie systemu z użyciem wielokrotnym

Tworzenie i integracja

Zakłada się 

istnienie wielkiego zbioru

 

dostępnych komponentów programowych 

użycia wielokrotnego 

oraz integrującej je 

struktury.

background image

 Slajd  21

Tworzenie z użyciem 
wielokrotnym

Specyfikacja 
    wymagań

Zatwierdze
nie
  systemu

Tworzenie i
  integracja

Projekt systemu z
 użyciem 
wielokrotnym

Analiza
komponentów

Modyfikacja
wymagań

background image

 Slajd  22

Iteracja procesu 

tworzenia 

oprogramowania

background image

 Slajd  23

Iteracja procesu

Potrzebne jest wspomaganie iteracji 
procesu, która polega na powtarzaniu 
fragmentu w miarę ewolucji wymagań 
stawianych
 systemowi.

Prace projektowe i implementacyjne 
muszą być ponownie wykonane, aby 
spełnić zmienione wymagania.

Dwa hybrydowe modele

Tworzenie przyrostowe

Tworzenie spiralne

background image

 Slajd  24

Tworzenie przyrostowe

background image

 Slajd  25

Tworzenie przyrostowe

Podejście przyrostowe do tworzenia zaproponował 

Mills jako sposób na ograniczenie powtarzania 

prac w procesie tworzenia oraz danie klientom 

pewnych możliwości odkładania decyzji o 

szczegółowych wymaganiach do czasu, aż zdobędą 

pewne doświadczenia w pracy z systemem.

W procesie przyrostowym klienci identyfikują w 

zarysie usługi, które system ma oferować. Wskazują, 

które z nich są dla nich najważniejsze, a które 

najmniej ważne. Definiuje się następnie pewną liczbę 

przyrostów, które mają być dostarczone. 

Gdy przyrost jest już gotowy i dostarczony, klienci 

mogą go uruchomić. Oznacza to, że szybko otrzymują 

część funkcjonalności systemu

background image

 Slajd  26

Przyrostowy model tworzenia 
systemu

Definicja 

wymagań

Architektur

a

Analiza

Projekt

Kodowanie i 

testowanie

Wdrożenie

Projekt

Projekt

Kodowanie i 

testowanie

Kodowanie i 

testowanie

Wdrożenie

Wdrożenie

.

.

background image

 Slajd  27

Tworzenie przyrostowe

 

 

      

 

Zdefiniuj zarys
   wymagań

Wytwórz przyrost
     systemu

Przypisz wymagania
  do przyrostów

    Zweryfikuj
    przyrost

Zaprojektuj
architekturę systemu

  

Zintegruj system

  Zweryfikuj system

System
 końcowy

System nie ukończony

background image

 Slajd  28

Zalety procesu tworzenia 
przyrostowego

Klienci nie musza czekać na dostarczenie 
całego systemu
, zanim zaczną czerpać z niego 
korzyść.

Klienci mogą używać wstępnych przyrostów 
jako rodzaju prototypu
 i zdobywać 
doświadczenia, które inspirują wymagania wobec 
późniejszych przyrostów.

Ryzyko całkowitej porażki przedsięwzięcia jest 
mniejsze.

Usługi o najwyższym priorytecie będą 
dostarczane jako pierwsze.

background image

 Slajd  29

Tworzenie spiralne

background image

 Slajd  30

Tworzenie spiralne

Każda pętla spirali reprezentuje 
jedną
 fazę procesu.

Najbardziej wewnętrzna pętla 
może być poświęcona 
wykonalności systemu
, następna 
- definicji wymagań stawianych 
systemowi, kolejna projektowaniu 
itd.. 

background image

 Slajd  31

Każda pętla spirali jest 
podzielona na cztery 
sektory:

Ustalanie celów

Definiuje się konkretne cele tej fazy przedsięwzięcia. 
Identyfikuje się ograniczenia, którym podlega proces i 
produkt.

Rozpoznanie i redukcja zagrożeń

Przeprowadza się szczegółową analizę każdego z 
rozpoznanych zagrożeń przedsięwzięcia

.

Tworzenie i zatwierdzanie

Po ocenie zagrożeń wybiera się model tworzenia systemu.

Planowanie

Recenzuje się przedsięwzięcie i podejmuje decyzję, czy 
rozpoczynać następną pętlę spirali.

background image

 Slajd  32

Model spiralny procesu 
tworzenia oprogramowania

 

 

 

 

 

 

 

 

 

 

 

Określ cele,
inne strategie
i ograniczenia

Oceń inne strategie,
rozpoznaj i zmniejsz
          zagrożenia

RECENZJA

Plan wymagań
Plan cyklu życia

Plan tworzenia

Plan testowania
   i integracji

Zaplanuj następną 
     fazę

Analiza zagrożeń

Analiza zagrożeń

Analiza zagrożeń

Analiza
zagrożeń

Prototyp 1

Prototyp 2

Prototyp 3

Działający
 prototyp 

Sposób
postępowania

Symulacje, modele, miary odniesienia

 Zatwierdzenie
wymagań

 Wymagania
      S/W        Projekto-

     wanie
produktu

Weryfikacja i
zatwierdzenie

działanie

Testy
akceptacji

Testy
integracji

Testy
jednostek

kodowanie

Szczegółowe
projekto-
  wanie

Utwórz, zweryfikuj
produkt następnego
    poziomu

background image

 Slajd  33

Model cyklu życia 
oprogramowania

Analiza

Projektowanie

Programowanie

Kaskadowy

Bardzo dokładna

Staranne, ale nie narażone na 
ciągłe zmiany. Znaczna część pracy 

przerzucona na projektantów i 
programistów
                                                       

Łatwe jeśli dobry projekt. 

Kaskadowy z nawrotami

Dokładna

Staranne, ale nie narażone na 

ciągłe zmiany. Znaczna część pracy 
przerzucona na projektantów i 

programistów

Dość łatwe ale musi uwzględniać 

możliwość pewnych zmian.

                                                           
                            

Przyrostowy

Dokładna w obrębie podzbioru

Łatwe na początku bo projektuje się 
mały podzbiór, jednocześnie przy 
rozszerzaniu funkcjonalności jest 

się związanym tym co się wcześniej 
zaprojektowało. System należy tak 

projektować aby był 
konfigurowalny

Prowadzi od improwizacji, wymaga 
dużej wiedzy od programistów.

                                                           

                           

Prototypowy

Nie wymaga dużej przenikliwości. 

J.w. Znaczna część pracy 

przerzucona na programistów. 

                                                           
                               

Odkrywczy

Brak

Brak 

Czasem trzeba wszystko zrobić od 
nowa. Kod nieprofesjonalny
                                                           
                           

Komponentowy

Dokładna

Brak 

Znikome lub brak 

Oprogramowanie oparte na 

koncepcji rodzin

Dokładna zarówno dla rodziny i narzędzi z 

nią związanych
Bardzo dokładna dla produktu.
Specyfikacja produktu w języku specjalnie 
zaprojektowanym dla całej rodziny
                                

Bardzo dokładne dla narzędzi dla 

całej rodziny i języka opisu 
członków rodziny
                                                          

Bardzo dokładne dla narzędzi dla 

całej rodziny
Wykonywane automatycznie dla 

konkretnych produktów. 

                                                           
                                                           

                                                        

Zestawienie modeli cykli życia oprogramowania

background image

 Slajd  34

O czym był wykład?

Tworzenie kaskadowe

Tworzenie ewolucyjne 

Tworzenie formalne systemu 

Tworzenie z użyciem wielokrotnym 

 Iteracja procesu tworzenia 
oprogramowania

           

Tworzenie przyrostowe 

            Tworzenie spiralne

background image

 Slajd  35

Literatura dodatkowa

1.    Z.  Szyjewski,  Metodyki  zarządzania 

projektami 

informatycznymi

Wydawnictwo Placet, Warszawa 2004 

2.        M.  Flasiński,  Wstęp  do  analitycznych 

metod 

projektowania 

systemów 

informatycznych

Wydawnictwa 

Naukowo-Techniczne, Warszawa 1997 


Document Outline