Slide 1
Proces tworzenia
oprogramowania
Slide 2
Plan wykładu
Przyczyny niepowodzeń
Specyfikowanie oprogramowania
Projektowanie i implementowanie
oprogramowania
Zatwierdzanie oprogramowania
Ewolucja oprogramowania
Podsumowanie
Slide 3
Przyczyny
niepowodzeń
Slide 4
Nieudany projekt
informatyczny
Miarą niepowodzenia projektu jest
niedotrzymania
jednego lub więcej z
następujących parametrów:
•budżet,
•czas realizacji,
•funkcjonalność.
Slide 5
Mimo wielu lat rozwoju
ryzyko
ryzyko
prowadzenia
projektów informatycznych nadal jest duże.
W USA rozwój oprogramowania pochłania rocznie
250 mld
dolarów rocznie, w postaci około
175
tys
. projektów informatycznych.
Badania Standish Group dla rynku
Amerykańskiego dowodzą, że:
31%
z tych projektów jest przerywanych na
jednym z etapów pośrednich,
zaś
52%
projektów przekracza planowany budżet.
Typowy system informatyczny jest droższy niż
planowano o średnio
89%
.
Slide 6
Znaczenie problemu
Standish Group International (Raport o projektach w USA lata 90-te)
Slide 7
Dlatego niezbędna jest właściwa
metodologia projektowania
i
wdrażania systemów informatycznych.
Stosowną metodologię dostarcza
głównie inżynieria oprogramowania
Slide 8
Inżynieria oprogramowania
Inżynieria oprogramowania
jest
praktycznym zastosowaniem wiedzy
naukowej do projektowania i
tworzenia systemów informacyjnych i
informatycznych oraz dokumentacji
wymaganej do ich opracowania,
uruchomienia oraz pielęgnacji.
Slide 9
Specyfikowanie
oprogramowania
Slide 10
Fazy projektowania zgodnie z
metodologią
inżynierii
oprogramowania
Slide 11
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.
Slide 12
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.
Slide 13
Specyfikowanie
oprogramowania
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ń
Slide 14
Projektowanie i
implementowanie
oprogramowania
Slide 15
Projektowanie jako proces
Wymagania
stawiane
systemowi
informatyczne
mu lub
procesowi jego
produkcji
Projektowanie
Opis
systemu
Wytworzenie:
•Systemu
•Biblioteki
•Procesu
produkcji
•Narzędzi
Produkt:
•System
•Biblioteka
•Proces
produkcji
•Narzędzie
Slide 16
Miejsce projektu w
otoczeniu
Środowisko
- system
otaczający
Organizacja, w której
system ma pracować
Planowanie, organizacja,
zarządzanie kontrola
Zarządzanie
projektem -
system
zarządzania
Produkt końcowy
Rezultat
projektu -
budowany
sytemu
Slide 17
Charakterystyczne
czynności procesu
projektowania
•
Projektowanie architektury
•
Specyfikowanie abstrakcyjne
•
Projektowanie interfejsów
•
Projektowanie komponentów
•
Projektowanie struktur danych
•
Projektowanie algorytmów
Slide 18
Ogólny model procesu
projektowania
Proje
ktowa
nie
archit
ektur
y
Projektowanie
architektury
Specyfikowanie
abstrakcyjne
Projektowanie
interfejsów
Projektowanie
komponentów
Architektura
systemu
Specyfikacja
programowania
Specyfikacja
interffejsów
Specyfikacja
komponentów
Projektowanie
struktury
danych
Specyfikacja
struktury
danych
Specyfikacja
algorytmów
Projektowanie
algorytmów
Czynności projektowe
Specyfikacja
wymagań
Slide 19
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
Slide 20
Zatwierdzanie
oprogramowania
Slide 21
Zatwierdzanie
oprogramowania
Weryfikacja i zatwierdzenie (W&Z) mają
wykazać, że system jest zgodny ze swoją
specyfikacją i spełnia oczekiwania
klienta, który go kupuje.
Obejmuje proces sprawdzania
, m.in.
kontrole i recenzje w każdym kroku procesu
tworzenia
od definicji
wymagań
użytkownika
do pisania programów
.
Slide 22
Ewolucja
oprogramowania
Slide 23
Ewolucja oprogramowania
•
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.
•
Zmiany mogą być wprowadzone w
każdej chwili tworzenia lub nawet po jego
zakończeniu.
•
Koszt tych zmian może być bardzo wysoki,
ale wciąż będzie niższy niż odpowiednie
zmiany w sprzęcie systemu.
Slide 24
Ewolucja systemu
Zidentyfikuj
wymagania
stawiane systemowi
Zbadaj istniejące
systemy
Zaproponuj zmiany
systemów
Zmodyfikuj
system
Nowy system
Istniejące
systemy
Slide 25
Uwagi do ewolucji
systemów
Nie dokonuj przedwczesnych
optymalizacji.
Pierwszym celem jest udowodnienie
prawidłowości systemu..
Slide 26
Podsumowan
ie
Slide 27
Podsumowanie
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.
Slide 28
Podsumowanie
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.
Slide 29
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