background image

 Slide  1

Proces tworzenia 

oprogramowania

background image

 Slide  2

Plan wykładu

Przyczyny niepowodzeń 

Specyfikowanie oprogramowania 

Projektowanie i implementowanie 
oprogramowania 

Zatwierdzanie oprogramowania

Ewolucja oprogramowania 

Podsumowanie

background image

 Slide  3

Przyczyny 
niepowodzeń

background image

 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ść.

background image

 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%

background image

 Slide  6

Znaczenie problemu

Standish Group International (Raport o projektach w USA lata 90-te)

background image

 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

background image

 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. 

background image

 Slide  9

Specyfikowanie 
oprogramowania

background image

 Slide  10

Fazy projektowania zgodnie z 

metodologią 

inżynierii 

oprogramowania

background image

 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.

background image

 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.

background image

 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ń

background image

 Slide  14

Projektowanie i 
implementowanie 
oprogramowania

background image

 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

background image

 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

background image

 Slide  17

Charakterystyczne 
czynności procesu 
projektowania

Projektowanie architektury

Specyfikowanie abstrakcyjne

Projektowanie interfejsów

Projektowanie komponentów

Projektowanie struktur danych

Projektowanie algorytmów

background image

 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ń

background image

 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

background image

 Slide  20

Zatwierdzanie 
oprogramowania

background image

 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

.

background image

 Slide  22

Ewolucja 
oprogramowania

background image

 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.

background image

 Slide  24

Ewolucja systemu

 

 

 

Zidentyfikuj 
wymagania
stawiane systemowi

Zbadaj istniejące
    systemy

Zaproponuj zmiany
      systemów

     Zmodyfikuj
        system

Nowy system

Istniejące 
     systemy

background image

 Slide  25

Uwagi do ewolucji 
systemów

Nie dokonuj przedwczesnych 
optymalizacji.

Pierwszym celem jest udowodnienie 
prawidłowości systemu..

background image

 Slide  26

Podsumowan
ie

background image

 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.

background image

 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.

background image

 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 


Document Outline