T-2.1 Zivotni Ciklus Softvera

36
dr Zoran Jeremić Softverski proces i životni ciklus softvera [email protected] 1

Transcript of T-2.1 Zivotni Ciklus Softvera

Page 1: T-2.1 Zivotni Ciklus Softvera

dr Zoran Jeremić

Softverski proces i životni ciklus softvera

[email protected]

1

Page 2: T-2.1 Zivotni Ciklus Softvera

Sadržaj

1. Uvod

2. Životni ciklus razvoja softvera

2

Page 3: T-2.1 Zivotni Ciklus Softvera

Uvod

• Softversko inženjerstvo možemo definisati kao sistemski pristup razvoju, korišćenju, održavanju i odumiranju softvera.

• Pored isporuke softvera, visok kvalitet, mali troškovi i kratak vremenski rok su dodatni ciljevi koje softverski inženjer mora da dostigne.

• Na kvalitet i produktivnost utiču 3 faktora: ljudi, procesi i tehnologija.

3

Page 4: T-2.1 Zivotni Ciklus Softvera

Uvod

• Kvalitet i produktivnost konačnog proizvoda zavise od veštine ljudi uključenih u projekat, procesa koji koriste za različite zadatke u projektu i alata koje koriste.

• U softverskom inženjerstvu glavni fokus je dat na procesima. Osnovni zadatak procesa je da pomogne ljudima da

postignu veći kvalitet i produktivnost kroz specifikaciju zadataka koje treba uraditi i definisanjem načina na koji ih treba uraditi.

4

Page 5: T-2.1 Zivotni Ciklus Softvera

Softverski proces

• Softverski proces definiše način izrade softvera. On obuhvata: Model životnog ciklusa softvera Alate koji se koriste Pojedince koji učestvuju u izradi softvera

• Model životnog ciklusa softvera definiše način na koji se upravlja različitim fazama životnog ciklusa softvera.

5

Page 6: T-2.1 Zivotni Ciklus Softvera

Životni ciklus razvoja softvera

Šta je informacioni sistem (IS)?

Hardver, softver, podaci, ljudi i procedure koji funkcionišu

zajedno da bi proizveli kvalitetne informacije.

Sistem—Skup komponenti koje međusobno sarađuju

kako bi postigli zajednički cilj.

U poslovanju se koriste različiti tipovi sistema

6

Page 7: T-2.1 Zivotni Ciklus Softvera

Šta je životni ciklus razvoja softvera?• (engl. System Development Life Cycle – SDLC) • Proces kroz koji stručnjaci različitih profila

(analitičari, projektanti, inženjeri, programeri, ...) i korisnici informacionog sistema prave informacioni sistem.

7

Životni ciklus razvoja softvera

Page 8: T-2.1 Zivotni Ciklus Softvera

Životni ciklus razvoja softvera

Koje su faze životnog ciklusa razvoja softvera?

Faza 1. Planiranje

Faza 2. Analiza

Faza 3. Dizajn

Faza 4. ImplementacijaFaza 5. Podrška

Pregled projektnih zahteva

Analiza prioriteta projektnih zahteva

Dodeljivanje resursa Identifikovanje proj.

razvojnog tima

Izvođenje preliminarne analize Izvršenje detaljne analize:

Proučavanje trenutnog sistemaUtvrđivanje korisničkih zahtevaPredlog rešenja

Nabavka hardvera i softvera, ukoliko je potrebno

Razvoj detalja sistema

Razvoj programa, Instaliranje i testiranje novog

sistema Obuka korisnika Korišćenje novog sistema

Revizije sistema Identifikovanje grešaka i

unapređenja Praćenje performansi sistema

8

Page 9: T-2.1 Zivotni Ciklus Softvera

Životni ciklus razvoja softvera

Koje su preporuke za razvoj sistema?

Uključivanje korisnika (bilo koje lice za koje se sistem implementira)

Grupisanje zadataka pofazama (grupama aktivnosti)

Razvoj jasno definisanih standarda (procedure za koje kompanija očekuje da zaposleni treba da ih primenjuju)

9

Page 10: T-2.1 Zivotni Ciklus Softvera

Životni ciklus razvoja softvera

Ko su učesnici u životnom ciklusu razvoja softvera?

10

Page 11: T-2.1 Zivotni Ciklus Softvera

Životni ciklus razvoja softvera

Šta je analitičar sistema?

Osoba odgovorna za dizajn i razvoj

informacionog sistema

Veza između korisnika i IT profesionalaca

11

Page 12: T-2.1 Zivotni Ciklus Softvera

Životni ciklus razvoja softvera

Šta je projektni tim?

Sastoji se od korisnika, analitičara sistema i drugih IT profesionalaca

Grupa ljudi koji rade na projektu od početka do kraja

Vođa projekta—jedan od članova tima koji upravlja i kontroliše budžetom projekta i vremenskim planom

12

Page 13: T-2.1 Zivotni Ciklus Softvera

Životni ciklus razvoja softvera

Šta je izvodljivost?

Procena koliko će koristi

kompanija imati od

razvoja sistema

Operaciona izvodljivost

Izvodljivost vremenskog

roka

Četiri testa izvodljivosti:

Tehnička izvodljivost

Ekonomska izvodljivost

(poznata i kao cost/benefit

analiza)

13

Page 14: T-2.1 Zivotni Ciklus Softvera

Životni ciklus razvoja softvera

Šta je dokumentacija?

Obuhvata izveštaje, dijagrame, programe i druge izveštaje

Kolekcija i rezime podataka i informacija

14

Page 15: T-2.1 Zivotni Ciklus Softvera

Životni ciklus razvoja softvera

Šest tehnika za prikupljanje podataka i informacija? Analiza dokumentacije Posmatranje Upitnici Intervjui Joint-application

design (JAD) sesija Istraživanje

15

Page 16: T-2.1 Zivotni Ciklus Softvera

Planiranje

Koji su razlozi za kreiranje ili modifikovanje informacionog sistema?

Konkurentnost može voditi do promene

Unapređenje postojećeg sistema

Spoljašnji uslovi zahtevaju promenu

Rešavanje problema u postojećem sistemu

16

Page 17: T-2.1 Zivotni Ciklus Softvera

Planiranje

Šta je zahtev za održavanjem sistema? Formalni zahtev za

novim ili modifikovanim informacionim sistemom Takođe zvan

projektni zahtev

17

Page 18: T-2.1 Zivotni Ciklus Softvera

Planiranje

Šta je faza planiranja?

Počinje kada upravni odbor primi projektni zahtev

Upravni odbor—

rukovodeće telo kompanije

Funkcije odbora:

Recenzija i odobravanja projektnih

zahteva

Dodeljivanje resursa

Formiranje razvojnog tima

projekta za svaki odobreni

projekat

Određivanje prioriteta

projektnim zahtevima

18

Page 19: T-2.1 Zivotni Ciklus Softvera

Analiza

Šta je faza analize?

Izvršenje preliminarnog istraživanja, poznato i kao

studija izvodljivosti

Izvršenje detaljne analize

19

Page 20: T-2.1 Zivotni Ciklus Softvera

Analiza

Šta je preliminarno istraživanje? Utvrđivanje tačne prirode problema ili unapređenja i

utvrđivanje da li je vredno truda Zaključci se prezentuju u izveštaju o izvodljivosti, poznatom kao studija

izvodljivosti

20

Page 21: T-2.1 Zivotni Ciklus Softvera

Analiza

Šta je detaljna analiza?

Ponekad se zove logički dizajn

2. Utvrđivanje šta korisnik želi, šta mu je potrebno i definisanje

zahteva

3. Predlaganje rešenja

1. Proučavanje kako trenutni sistem funkcioniše

21

Page 22: T-2.1 Zivotni Ciklus Softvera

Predstavlja se upravnom

odboru, koji donosi odluku o tome kako će se sistem razvijati

Analiza

Šta je predlog projekta? Procenjuje

izvodljivost svakog

alternativnog rešenja

Predlaže najizvodljivije

rešenje za projekat

22

Page 23: T-2.1 Zivotni Ciklus Softvera

Analiza

Šta su moguća rešenja?

Kupovina paketskog softvera —softver dostupan na tržištu

Outsource—spolja razvijen softver

Izrada sopstvenog korisničkog softvera—softver razvijen prema

korisničkim zahtevima

Softver za vertikalno tržište—dizajniran za

određenu industriju

Softver za horizontalno

tržište—rađen za potrebe mnogih

kompanija

23

Page 24: T-2.1 Zivotni Ciklus Softvera

Dizajn

Šta je faza dizajna?

Izlaz:• dokument koji opisuje arhitekturu• plan implementacije• analiza osnovnih prioriteta• Plan testiranja

Razvoj svih detalja novog ili modifikovanog informacionog

sistema

Definiše se arhitektura sistema (komponente, njihov interfejs i ponašanje).

24

Page 25: T-2.1 Zivotni Ciklus Softvera

Razgovor sa kompanijama za izradu softvera

Dizajn

Šta je potrebno za nabavku novog softvera? Identifikovanje svih hardverskih i softverskih zahteva

novog ili modifikovanog sistema

Pretraživanje Weba

Čitanje štampanih i online trgovačkih časopisa, novina,

oglasa…

Razgovor sa drugim analitičarima sistema

25

Page 26: T-2.1 Zivotni Ciklus Softvera

Dizajn

Koja su tri osnovna dokumenta koja se koriste za pregled tehničkih specifikacija?

Manje formalni metod koji koristi

standardnu formu za dobijanje informacije o proizvodu ili usluzi

Prodavac daje cene za

navedene proizvode

Prodavac bira proizvod(e) koji

ispunjavanju definisane zahteve i

predlaže cene

Kupac definiše

proizvode koje želi

Zahtev za informacijom

Zahtev za predlog

Zahtev za izjašnjavanjem

26

Page 27: T-2.1 Zivotni Ciklus Softvera

Dizajn

Kako analitičari sistema testiraju softverski proizvod? Proučavanje referenci prodavca Razgovor sa trenutnim korisnicima proizvoda Demonstracije proizvoda Korišćenje trial verzija softvera Merenje performansi korišćenjem benchmark testova

27

Page 28: T-2.1 Zivotni Ciklus Softvera

Dizajn

Šta je detaljni dizajn?

Obuhvata nekoliko aktivnosti

Dizajn baze podataka Dizajn ulaza i izlaza Dizajn programa

Detaljna specifikacija dizajna za komponente u predloženom rešenju

28

Page 29: T-2.1 Zivotni Ciklus Softvera

Dizajn

Šta je mockup? Funkcionalnosti sistema se predstavljaju crtanjem

elemenata korisničkog interfejsa.

http://www.balsamiq.com/

Primer izgleda ekrana predstavljen korišćenjem alata za kreiranje mockup-a

29

Page 30: T-2.1 Zivotni Ciklus Softvera

Implementacija

Šta je prototip?

Radni model za predloženi sistem

Izrada prototipa previše rano može dovesti do

problema

Nekompletna verzija softvera koji se razvija. Obično simulira samo nekoliko aspekata funkcionalnosti

eventualnog softvera i može biti potpuno drugačiji od kranjeg proizvoda.

Omogućava korisnicima softvera da evaluiraju ono što su developeri predložili kao rešenje.

30

Page 31: T-2.1 Zivotni Ciklus Softvera

Implementacija

Šta je computer-aided software engineering (CASE)? Softverski alati dizajnirani da podrže aktivnosti

životnog ciklusa razvoja softvera

31

Page 32: T-2.1 Zivotni Ciklus Softvera

Prelazak na novi sistem

Implementacija

Šta je faza implementacije? Cilj je da se konstruiše ili izgradi novi ili modifikovani

sistem a zatim isporuči korisnicima

Obuka korisnika

Instalacija i testiranje novog sistema

Razvoj programa

32

Page 33: T-2.1 Zivotni Ciklus Softvera

Implementacija

Koja su tri tipa testova koje izvršava projektni tim?

Provera da li aplikacija radi sa

drugim aplikacijama

Testiranje sistema

Testiranje integracije

Testiranje jedinice

Provera da li svaka pojedinačna komponenta funkcioniše

Provera da li svi programi u aplikaciji

rade zajedno

33

Page 34: T-2.1 Zivotni Ciklus Softvera

Podrška

Šta je obuka? Pokazivanje

korisnicima kako će koristiti hardver i softver u sistemu

34

Page 35: T-2.1 Zivotni Ciklus Softvera

Podrška

Šta je faza podrške?

Upravljanje analizom sistema nakon implementacije—vođenje sastanaka da bi se utvrdilo da li se informacioni sistem ponaša prema

očekivanjima

Identifikovanje grešaka

Identifikovanje potencijalnih unapređenja

Praćenje performansi sistema

Obezbeđuje tekuću pomoć nakon implementacije sistema

35

Page 36: T-2.1 Zivotni Ciklus Softvera

dr Zoran Jeremić

Softverski proces i životni ciklus softvera

[email protected]

36