Tworzenie oprogramowania
Proces tworzenia oprogramowania:
Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu programowego. Może to być tworzenie oprogramowania od zera, ale coraz częściej nowe oprogramowanie powstaje przez rozszerzanie i modyfikowanie istniejących systemów.
Zasadnicze czynności:
- Specyfikowanie oprogramowania. Funkcjonalność oprogramowania i ograniczenia jego działania muszą być zdefiniowane.
- Projektowanie i implementowanie oprogramowania. Oprogramowanie, które spełnia specyfikację, musi być stworzone.
- Zatwierdzenie oprogramowania. Oprogramowanie musi być zweryfikowane, aby zapewnić, że robi to, czego oczekiwał klient.
- Ewolucja oprogramowania. Oprogramowanie musi ewoluować, aby spełniać zmieniające się potrzeby użytkowników.
Ma na celu określenie, jakich usług wymaga się od systemu i jakim ograniczeniom podlega tworzenie i działanie oprogramowania. Ta czynność jest obecnie bardzo często nazywana inżynierią wymagań.
W procesie inżynierii wymagań możemy wyróżnić cztery główne fazy:
- Studium wykonalności
- Określenie i analiza wymagań
- Specyfikowanie wymagań
- Zatwierdzanie wymagań
Charakterystyczne czynności procesu projektowania:
- Projektowanie architektury
- Specyfikowanie abstrakcyjne
- Projektowanie interfejsów
- Projektowanie komponentów
- Projektowanie struktur danych
- Projektowanie algorytmów
Metody projektowania
Są zbiorami notacji i porad dla projektantów oprogramowania.
Użycie metod strukturalnych polega zwykle na opracowaniu graficznych modeli systemu i prowadzi do ogromnej ilości dokumentacji projektowej.
Modele:
Model przepływu danych
Model strukturalny
Model obiektowy
Procesy tworzenia oprogramowania to czynności zmierzające do wyprodukowania systemu. Modele procesów tworzenia oprogramowania to abstrakcyjne reprezentacje tych procesów.
Wszystkie procesy tworzenia oprogramowania obejmują specyfikowanie, projektowanie, implementację, zatwierdzanie i ewolucje oprogramowania.
Inżynieria wymagań to proces opracowywania specyfikacji oprogramowania. Obejmuje przygotowanie specyfikacji zrozumiałej dla użytkowników systemu oraz bardziej szczegółowej specyfikacji dla budowniczych systemu.
Proces projektowania i implementowania polega na przekształceniu specyfikacji wymagań w działający system oprogramowania. Metody systematycznego projektowania mogą być elementem tego przekształcenia.
Zatwierdzenie oprogramowania to proces sprawdzania, czy system jest zgodny ze swoją specyfikacją oraz czy spełnia rzeczywiste potrzeby użytkowników.
METODY TWORZENIA SYSTEMU:
Tworzenie kaskadowe - W tym modelu podstawowe czynności specyfikowania, tworzenia, zatwierdzania i ewolucji są odrębnymi fazami procesu.
Fazy tworzenia kaskadowego:
Definiowanie i analiza wymagań
Projektowanie systemu i analiza wymagań
Implementacja i testowanie jednostek
Integracja i testowanie systemu
Działanie i pielęgnacja
Tworzenie ewolucyjne - W tym procesie czynności specyfikowania, projektowania i zatwierdzania przeplatają się.
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.
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ą.
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.
Problemy i stosowalność:
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.