• Nie Znaleziono Wyników

Proces tworzenia oprogramowania

N/A
N/A
Protected

Academic year: 2021

Share "Proces tworzenia oprogramowania"

Copied!
13
0
0

Pełen tekst

(1)

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 poprzez rozszerzanie i modyfikowanie istniejących systemów.

Procesy tworzenia oprogramowania są złożone i zależą od opinii

ludzi, podobnie jak wszystkie procesy intelektualne.

(2)

Proces tworzenia oprogramowania

Czynności tego procesu są następujące:

1. Specyfikowanie oprogramowania - funkcjonalność

oprogramowania i ograniczenia jego działania muszą być zdefiniowane.

2. Projektowanie i implementacja oprogramowania - oprogramowanie, które spełnia specyfikację musi być stworzone.

3. Zatwierdzanie oprogramowania - oprogramowanie musi być zweryfikowane, aby zapewnić, że robi to, czego oczekiwał klient.

4. Ewolucja oprogramowania - oprogramowanie musi

ewoluować, aby spełniać zmieniające się potrzeby

użytkowników.

(3)

Specyfikowanie wymagań

• Ma na celu określenie, jakich usług wymaga się od systemu i jakim ograniczeniom podlega tworzenie i działanie

oprogramowania. Ta czynność jest często nazywana inżynierią oprogramowania. Jest bardzo ważna bowiem błędy w tej fazie prowadzą do późniejszych kłopotów w trakcie projektowania i implementacji.

• Proces inżynierii wymagań prowadzi do opracowania

dokumentacji wymagań, która jest specyfikacją systemu. W tym dokumencie wymagania zwykle przedstawia się w dwóch

poziomach szczegółowości. Użytkownicy i klienci potrzebują

wykazu wymagań na wysokim poziomie abstrakcji, podczas

gdy programiści muszą mieć bardziej szczegółową specyfikację

systemu.

(4)

Inżynieria wymagań

W procesie inżynierii wymagań wyróżnia się cztery główne fazy:

1. Studium wykonalności - ocenia się, czy rozpoznane potrzeby użytkowników mogą być spełnione przy obecnych technologiach sprzętu i oprogramowania. Studium pozwala zdecydować, czy proponowany system, będzie opłacalny z punktu widzenia

ekonomii czy można zbudować system w ramach założonego budżetu.

2. Określenie i analiza wymagań - jest to proces określania wymagań na podstawie obserwacji istniejących systemów,

rozmów z potencjalnymi użytkownikami i zaopatrzeniowcami, analizy zadań itd.

3. Specyfikowanie wymagań - jest czynnością polegającą na zapisywaniu informacji zebranych w czasie analizy w

dokumencie definiującym zbiór wymagań. Mogą w nim pojawić się dwa rodzaje wymagań

(5)

Inżynieria wymagań

4. Zatwierdzanie wymagań – w tej czynności sprawdza się

realizm, spójność i kompletność wymagań. W jej trakcie niemal pewne jest wykrycie błędów. Następnie należy zmodyfikować dokumentację wymagań tak, aby usunąć te błędy.

Czynności procesu inżynierii wymagań nie są wykonywane w tak

ścisłej kolejności.

(6)

Projektowanie i implementowanie oprogramowania

• Faza implementowania w tworzeniu oprogramowania to proces przekształcania specyfikacji systemu w działający system.

Obejmuje zawsze projektowanie i programowanie, ale jeśli zastosowano podejście ewolucyjne, to może również zawierać udoskonalanie specyfikacji oprogramowania.

• Projekt oprogramowania to opis struktury oprogramowania, które ma być zaimplementowane, danych, które są częścią systemu,

interfejsów między komponentami systemu i użytych algorytmów.

Projektanci nie tworzą od razu końcowego projektu, ale opracowują go iteracyjnie poprzez wiele różnych wersji.

• Proces projektowania może obejmować opracowanie kilku modeli na różnych poziomach abstrakcji. W miarę dekompozycji projektu odkrywa się błędy i przeoczenia w poprzednich fazach. Powoduje to sprzężenie zwrotne umożliwiające poprawę wcześniej

powstałych błędów.

(7)

Projektowanie i implementowanie oprogramowania

Końcowym wynikiem tego procesu są:

1. Projektowanie architektury - identyfikuje i dokumentuje podsystemy tworzące system i związki między nimi.

2. Specyfikowanie abstrakcyjne - opracowuje się abstrakcyjną specyfikację usług każdego podsystemu oraz ograniczeń, w ramach których musi pracować.

3. Projektowanie interfejsów - projektuje i dokumentuje interfejsy

każdego podsystemu z innymi podsystemami. Specyfikacja

interfejsów musi być jednoznaczna, ponieważ umożliwia

korzystanie z podsystemów bez znajomości ich działania.

(8)

Projektowanie i implementowanie oprogramowania

4. Projektowanie komponentów - przypisuje się usługi do różnych komponentów i projektuje interfejsy tych komponentów.

5. Projektowanie struktur danych - szczegółowo specyfikuje się i projektuje struktury danych użyte w implementacji systemu.

6. Projektowanie algorytmów - szczegółowo specyfikuje się i

projektuje algorytmy służące do realizacji usług.

(9)

Zatwierdzanie oprogramowania

• Zatwierdzanie oprogramowania lub bardziej ogólnie weryfikacja i zatwierdzanie mają wykazać, że system jest zgodny ze swoją specyfikacją i spełnia oczekiwania klienta. Obejmuje proces

sprawdzania, m.in. kontrole i recenzje w każdym kroku procesu tworzenia od definicji wymagań użytkowania do pisania

programów.

• Z wyjątkiem małych programów nie należy testować systemu jako pojedynczej, monolitycznej całości. Wielkie systemy

buduje się z podsystemów, te są z kolei składane z modułów, w skład których wchodzą procedury i funkcje. Proces testowania powinien być zatem wykonywany w wielu krokach, w których testuje się przyrostowo jednocześnie z implementowaniem

systemu.

(10)

Zatwierdzanie oprogramowania

Faza procesu testowania są następujące:

1. Testowanie jednostek - testuje się poszczególne komponenty, aby zapewnić, że działają poprawnie. Każdy komponent jest niezależnie testowany bez udziału innych komponentów.

2. Testowanie modułów - moduł jest kolekcją niezależnych

komponentów takich jak klasy obiektów, abstrakcyjne typy danych, albo bardziej luźną kolekcję procedur i funkcji.

3. Testowanie podsystemów - ta faza obejmuje testowanie kolekcji

modułów, które zintegrowano w podsystemie. W wypadku

wielkich systemów głównymi napotkanymi tu problemami są

niezgodność interfejsów.

(11)

Zatwierdzanie oprogramowania

4. Testowanie systemu - podsystemy zintegrowano w system. Ten proces ma wykryć błędy wynikające z nie przewidzianych

interakcji między podsystemami i problemami z interfejsami podsystemów.

5. Testowanie odbiorcze - jest to końcowa faza procesu testowania

przed przyjęciem systemu przez użytkownika.

(12)

Ewolucja systemu

Elastyczność systemów oprogramowania jest jedną z głównych przyczyn, że coraz więcej i więcej

oprogramowania włącza się do wielkich złożonych

systemów.

(13)

Ewolucja systemu

Istniejące systemy

Zdefiniuj wymagania

Zbadaj istniejące systemy

Zaproponuj zmiany

Wybierz dostawcę

Nowy system

Cytaty

Powiązane dokumenty

► Test Plan – dokument planowania zarządzania projektem, który składa się z informacji o tym, w jaki Test Plan – dokument planowania zarządzania projektem, który składa się

Należy uznać za poprawne wszystkie wyniki, które są konsekwencją przyjętych przez zdającego poprawnych zaokrągleń... czerwona

W równaniach reakcji, w których ustala się stan równowagi, brak „ ⇄” nie powoduje utraty punktów.. Elementy odpowiedzi umieszczone w nawiasach nie

Należy uznać za poprawne wszyst- kie wyniki, które są konsekwencją przyjętych przez zdającego po- prawnych zaokrągleń1. 1

katoda – stal lub gwóźdź stalowy. - Za napisanie wzoru trans-alkenu: Uznaje się każdy poprawny wzór, który przedstawia izomer trans. Jeśli zdający zapisze równanie reakcji

- Klient Sklepu może wykonać Rezerwację dokonując wyboru Typ Samochodu oraz wyboru Producenta Samochodu, podając konkretny okres czasu rezerwacji – utworzona Rezerwacja zawiera

Dodawanie wypożyczenia (na podstawie danych identyfikujących Klienta, danych identyfikujących Typ Produktu lub/ i Producenta poszukiwanych w rezerwacjach wyszukanego Klienta

dza, że posługiw anie się m etodam i m atem atycznym i, pozw oli zarówno na w iększą precyzyjność („ostrość” ) stosowanego przez historyków język a, jak i