Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 40

SOFTVERSKI

INŽENJERING
REALNI
SISTEM

NIVO DET- GRANICE


ALJIZACIJE MODELA
CILJ
Validacija

MODEL

OCENA Verifikacija

PROGRAM
ŠTA JE SOFTVERSKI INŽENJERING?

• Softverski inženjering je naučna disciplina


koja se bavi svim elementima proizvodnje
softvera.

• Najvažnije je da prvo razumemo prirodu


problema (treba paziti da ne namećemo
računare za rešavanje svakog problema)

3
Rešavanje problema - ANALIZA

Analiza problema predstavlja razlaganje problema na delove koje


možemo da razumemo i sa kojima ćemo pokušati da se izborimo
Rešavanje problema - SINTEZA

Sinteza predstavlja formiranje veće strukture na


osnovu manjih gradivnih elemenata
Vinsent Van Gog - Perunike
Odnos
između
računarske
nauke
i
softverskog
inženjerstva
DOVDE
18.4.2019.
RAZVOJ SOFTVERA
Softver =
računarski program + podaci + dokumentacija

računarski program
+
dokumentacija
+
konfiguracioni podaci

(ISO-9127/94)
Softverski proces, metodi i alati

 Softverski proces je skup aktivnosti i


pripadajućih rezultata čiji je cilj razvoj ili
evolucija softvera (osnovne aktivnosti unutar
softverskog procesa su: specifikacija,
dizajniranje, implementacija, verifikacija i
validacija, kao i održavanje odnosno evolucija)
 Metoda razvoja softvera je profinjenje i
konkretizacija odabranog modela za softverski
proces
Metode razvoja softvera

 Planiranje projekta
 Analizu sistemskih i softverskih zahteva
 Dizajn
 Programiranje
 Testiranje
 Održavanje
Modeli softverskog procesa

U svim modelima prisutne su sledeće


aktivnosti:
 Specifikacija
 Dizajniranje
 Implementacija (programiranje)
 Verifikacija i validacija
 Održavanje, odnosno evolucija
RAZVOJ SOFTVERA

ŽIVOTNI CIKLUS SOFTVERA (1/2)


1. donošenje odluke o realizaciji SW projekta
2. analiza specifikacije zahteva
3. specifikacija funkcija
4. strukturiranje delova i njihova selekcija
5. specifikacija strukture
6. specifikacija detalja
7. primena komponenata rešenja
8. otklanjanje grešaka
RAZVOJ SOFTVERA

ŽIVOTNI CIKLUS SOFTVERA (2/2)

9. testiranje
10.integracija
11.dokumentovanje
12.uvođenje u upotrebu
13.obuka
14.održavanje
15.povlačanje softvera iz upotrebe
MODELI SOFTVERSKOG PROCESA
 Model vodopada
 V – model
 Prototipski model
 Iterativni i inkrementalni razvoj
 Model evolutivnog razvoja
 Spiralni razvoj
 Model formalnog razvoja
 Model usmeren na ponovnu upotrebu
 ...
RAZVOJ SOFTVERA
MODELI RAZVOJA SOFTVERA
• Model razvoja softvera je apstraktna prezentacija procesa
• Model treba da opiše proces iz perspektive svakog pojedinačnog
segmenta razvoja

Kategorizacija (prema Sommerville-u)


•model vodopada
•evolutivni razvoj
•model baziran na komponentama
Rečica Švrakava kod Banjaluke
RAZVOJ SOFTVERA
MODEL VODOPADA
1970. Winsent W. Royce
Faza br. 1

Faza br. 2

Faza br. 3

Faza br. 4

Faza br. 5
1. Planiranje razvoja
2. Analiza i specifikacija zahteva
3. Programiranje
4. Implementacija
5. Održavanje
RAZVOJ SOFTVERA
MODEL VODOPADA
Faza br. 1

Faza br. 2

Faza br. 3

Faza br. 4

Faza br. 5
1. Definisanje zahteva
2. Sistemski i softverski dizajn
3. Implementacija i testiranje
4. Integracija i sistemsko testiranje
5. Operativno održavanje
RAZVOJ SOFTVERA

MODEL VODOPADA
Faza br. 1

Faza br. 2

Faza br. 3

Faza br. 4

1. Analiza i definicije Faza br. 5

2. Dizajn
3. Implementacija
4. Testiranje
5. Održavanje
RAZVOJ SOFTVERA
MODEL VODOPADA
sa iteracijom unazad
Faza br. 1

Faza br. 2

Faza br. 3

Faza br. 4

Faza br. 5
RAZVOJ SOFTVERA
MODEL VODOPADA 2
PROCES RAZVOJA SOFTVERA U STVARNOSTI
Model vodopada sa prototipom
V model RAZVOJA SOFTVERA
Prototipski model RAZVOJA SOFTVERA
RAZVOJNI I PRODUKCIONI SISTEM
INKREMENTALNI I ITERATIVNI RAZVOJ
RAZVOJ SOFTVERA
MODEL EVOLUTIVNOG RAZVOJA
Početna verzija
Specifikacija

Međuverzije
Početni zahtevi Razvoj

Konačna verzija
Testiranja
RAZVOJ SOFTVERA
INKREMENTALNA ISPORUKA
Specifikacija Dodela zahteva Dizajn
okvirnih tekućem sistemske
zahteva inkrementu arhitekture

Razvoj Provjera i Integracija


sistemskog testiranje inkrementa
inkrementa inkrementa

Testiranje
sistema

Finalni
sistem
RAZVOJ SOFTVERA
SPIRALNI MODEL

1988. godina – Barry Boehm


• veoma fleksibilan za upravljanje

• najrealniji pristup za razvoj velikih sistema

• značajna smanjenja rizika i troškova

• svaka iteracija donosi vidljive i merljive rezultate


SPIRALNI MODEL RAZVOJ SOFTVERA
RAZVOJ SOFTVERA
SPIRALNI MODEL
Procjena alternativa,
Postavljanje ciljeva i
rješavanje rizika
ograničenja

Analiza rizika

Analiza rizika

Analiza rizika
Konačni
Prototip 3 prototip
Analiza Prototip 2
PREGLED rizika
Prototip 1

Simulacije, modeli, testiranja (benchmarks)


Plan zahtjeva, Koncept
Plan životnog izvršenja
SW
ciklusa Dizajn
zahtjevi
proizvoda Detaljni
Provjera dizajn
Plan razvoja zahtjeva
Kodiranje

Plan integracije i Provjera


testiranja dizajna Testiranje jedinica
Testiranje
Planiranje sljedeće integracije
Održavanje Razvoj, testiranje
faze
RAZVOJ SOFTVERA
SPIRALNI MODEL
Sektor 1 – Ciljevi
U ovom sektoru prate se ciljevi koji su postavljeni za određenu fazu.
Određuju se alternative, postavljaju ograničenja i najavljuju mogući
rizici
Sektor 2 – Upravljanje faktorima rizika
Analiziraju se faktori rizika, a prema utvrđenim rezultatima vrši se
upravljanje rizicima
Sektor 3 – Razvoj i testiranje
Prati se napredak razvoja, nalažu se testiranja prema stepenu
završenosti pojedinih aktivnosti
Sektor 4 – Planiranje
Povremeno se vrše revizije projekta, redefinišu se planovi za sledeće
faze, utvrđuju neophodne aktivnosti u tekućoj i narednim fazama
RAZVOJ SOFTVERA
Model formalnog razvoja
RAZVOJ SOFTVERA
Model usmeren na ponovnu upotrebu
O čemu smo danas govorili?

Rezime predavanja – PORUKA predavanja

Sistematsko programiranje se ne može naučiti


proučavajući samo teoriju programskih jezika i
slušajući predavanja.

Da bismo naučili da kvalitetno programiramo,


korisno je naoružati se znanjima
softverskog inženjeringa
!
Naporno je bilo !
Molim, izvolite
pitajte

Prof. dr Zoran Ž. Avramović, dipl.inž.elek.

You might also like