NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA SADRAJ 1 Analiza

  • Slides: 106
Download presentation
NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA SADRŽAJ 1. Analiza sistema primenom OO pristupa – Primena

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA SADRŽAJ 1. Analiza sistema primenom OO pristupa – Primena Use Case modelovanja za dokumentovanje; Primena dijagrama kolaboracije i dijagrama sekvenci za analizu zahteva; Dijagrami klasa kao tehnika detaljnijeg iskazivanja modela zahteva sistema. 2. Dizajn sistema primenom OO pristupa –Logički i fizički dizajn; Sistemski dizajn (elementi sistemskog dizajna, softverska arhitektura); Detaljni dizajn (dizajniranje objekata: kriterijumi dobrog dizajna – kohezija i uparivanje). 3. Korišćenje uzoraka (Patterns) u dizajniranju – Definicija i klasifikacija uzoraka; Korišćenje uzoraka. 4. Dizajniranje baze podataka – Sistemi upravljanja relacionim i objektno orijentisanim bazama podataka; Distribuirani sistemi. 5. Dizajniranje interakcije čovek – računar: – Korisnički interfejsi; Granične klase; Arhitektura prezentacionog sloja; Modelovanje interfejsa korišćenjem dijagrama stanja. 6. Implementacija – Dijagrami komponenti; Dijagrami razmeštanja; Generatori programskog koda; Testiranje softvera; Konverzija i migracija podataka; Izrada korisničke dokumentacije; Obuka korisnika. 7. Reinženjering softvera – Značaj i metodologija reinženjeringa; Potrebe, mogućnosti i metodi prelaska sa klasičnog (proceduralno orijentisanog) na OO dizajn informacionih sistema.

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA Kratak repetitorijum PROJEKTOVANJA IS – osnovi SSA metoda 2

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA Kratak repetitorijum PROJEKTOVANJA IS – osnovi SSA metoda 2

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA Određivanje ciljeva Ciljevi poslovanja Organizacija poslovanja Procesi poslovanja

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA Određivanje ciljeva Ciljevi poslovanja Organizacija poslovanja Procesi poslovanja Definisanje procesa u poslovanju Aplikativni programi Definicija (klasa) podataka Top Down pristup Definisanje BP Definicija arhitekture Planiranje izgradnje IS Bottom Up pristup Dizajn (izgradnja) IS Primena Top-Down / Bottom – Up principa 3

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) DTP

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) DTP predstavlja model sistema koji sadrži četiri osnovne komponente – koncepta za prikaz IS: – funkcije, odn. procesi obrade podataka – tokovi podataka, – skladišta podataka i – interfejsi. proces (funkcija) interfejs korišćeni simboli Tok podataka Skladište podataka 4

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRAVILA

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRAVILA ZA IZRADU DIJAGRAMA TOKOVA PODATAKA 1. Tok podataka mora da ima izvor i odredište Izvor ili odredište može biti bilo koja druga komponenta (interfejs, proces, skladište podataka), ali za jedan tok bilo izvor bilo odredište (ili oba) mora biti proces (tokovima se ne mogu neposredno povezati dva interfejsa, dva skladišta ili skladište i interfejs) 5

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRAVILA

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRAVILA ZA IZRADU DIJAGRAMA TOKOVA PODATAKA 2. Svaki tok podataka mora imati ime, izuzev tokova koji idu od odn. ka skladištima podataka (tada se podrazumeva da takav tok nosi kompletan sadržaj skladišta podataka); 3. Tok podataka se može granati ili se daju dva toka sa istim imenom koja imaju isti izvor a različita odredišta; 4. Svaki proces mora imati ime, a poželjna je i referentna oznaka koja iskazuje hijerarhijsku pripadnost procesa pri dekompoziciji 6

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRAVILA

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRAVILA ZA IZRADU DIJAGRAMA TOKOVA PODATAKA 5. Svaki proces treba da ima bar jedan ulazni i bar jedan izlazni tok podataka (proces bez ulaza stvara izlaz niizčega, a proces bez izlaza je nesvrsishodan); 6. Skladište podataka može biti bez ulaznog toka (podrazumeva se da se stvara i ažurira u nekom drugom sistemu) ili bez izlaznog toka (posmatrani sistem ga samo formira a koristi se u nekom drugom sistemu); 7. Svaki interfejs mora imati bar jedan ulazni ili izlazni tok podataka, inače bi bio izolovan od sistema; 8. Dozvoljava se višestruko ponavljanje skladišta i interfejsa, da bi se minimiziralo presecanje tokova podataka. 7

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRIMER

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRIMER DIJAGRAMA TOKOVA PODATAKA Spoljni Tok pod. 1 objekat 1 Tok 2 Tok pod. 6 Tok 3 Proces B 2 Dobavljač Proces A 1 Spoljni objekat 2 Tok 5 Tok 4 Skladište podataka Faktura dobavljača Provera faktura Narudžbenica dobavljaču Proverena faktura Knjigovodstvo 8

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) DIJAGRAM

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) DIJAGRAM DEKOMPOZICIJE SISTEMA 0 - sistem 1 1. 2 1. 3 2 2. 1 2. 2 2. 3 3 3. 1 3. 2 4 4. 1 4. 2 4. 3 4. 4 1. 2. 1 1. 2. 2 9

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRAVILA

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRAVILA DEKOMPOZICIJE SISTEMA • • Na najvišem (nultom) nivou je dijagram konteksta koji sadrži jedan proces koji predstavlja ceo sistem, interfejse (objekte van sistema) i odgovarajuće tokove podataka između sistema i interfejsa (eksterne tokove podataka). Na prvom nivou dekompozicije je Root dijagram - dijagram prvog nivoa (dekompozicija dijagrama konteksta na osnovne procese, numerisane sa "1", “ 2", …). Procesi koji se dalje ne dekomponuju su elementarni odn. primitivni procesi. Za njih se daje opis - specifikacija logike njihovog odvijanja, odnosno minispecifikacija sistema. Pored procesa, mogu se dekomponovati i tokovi i skladišta podataka. Pravilo balansa tokova: ulazni i izlazni tokovi na celokupnom dijagramu toka podataka dobijenom dekompozicijom nekog procesa moraju biti ekvivalentni sa ulaznim i izlaznim tokovima tog procesa prikazanim na dijagramu višeg nivoa. Skladišta podataka od nivoa prvog pojavljivanja moraju se pojavljivati na svim nižim nivoima. Jedan dijagram toka ne bi trebalo da sadrži previše (recimo maksimalno desetak) procesa - ako procesa ima mnogo, verovatno je preskočen neki nivo 10 dekompozicije.

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRIMER

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRIMER DIJAGRAMA KONTEKSTA Dokument za prijemni ispit Spisak za prijemni ispit Izvestaj o prijemnom ispitu Dokument za upis Ispitna prijava Studentski zahtev Student IS Studentske sluzbe Rezultati prijemnog ispita Nastavne grupe Ispitni spisak Rezultati ispita Studentsko uverenje Nastavnik 11

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRIMER

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRIMER ROOT DIJAGRAMA Dokument za prijemni ispit Izvestaj o prijemnom ispitu Spisak za prijemni ispit 1. Upis Nastavne grupe Dokument za upis Kadrovska evidencija Student Ispitna prijava Dosije studenta 2. Obrada ispita Nastavni plan Studentski zahtev Studentsko uverenje Rezultati prijemnog ispita 3. Izdavanje uverenja Ispitni spisak Rezultati ispita Nastavnik Dosije studenta* 12

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRIMER

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRIMER DEKOMPOZICIJE PROCESA 1 (UPIS) – primitivni procesi Student Dokument za prijemni ispit 1. 1. Evidentiranje kandidata 1. 2. Obrada spiskova za ispit Spisak za prijemni ispit Kadidati za upis Izvestaj o prijemnom ispitu Dokument za upis 1. 3. Obrada rezultata prijemnog 1. 4. Izveštavanje kandidata Rezultati prijemnog ispita Nastavnik 1. 5. Upis godine Nastavni plan Dosije studenta 1. 6. Raspoređivanje Kadrovska evidencija 13

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRIMER

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRIMER DEKOMPOZICIJE PROCESA 2 (OBRADA ISPITA) – primitivni procesi Kadrovska evidencija Student Ispitna prijava Nastavni plan 2. 1. Evidentiranje ispitnih prijava Spisak ispitnih prijava Ispitni spisak Nastavnik Dosije studenta 2. 2. Zavođenje rezultata ispita Rezultati ispita 14

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRIMER

PROJEKTOVANJE INFORMACIONIH SISTEMA ANALIZA POSLOVNIH PROCESA IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRIMER DEKOMPOZICIJE PROCESA 3 (IZDAVANJE UVERENJA) – primitivni procesi Zahtev za status Student 3. 1 Izdavanje uverenja o statusu Uverenje o upisu Dosije studenta Zahtev za položene ispite Uverenje o položenim ispitima Nastavni plan 3. 2. Izdavanje uverenja o položenim ispitima 15

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA Kraj repetitorijuma 16

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA Kraj repetitorijuma 16

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (Software Development Life Cycle –

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (Software Development Life Cycle – SDLC) Razvoj softvera treba da se: • oslanja na korisničke funkcije (korisničke funkcije treba upotrebiti kao primarne tvorevine za uspostavljanje željenog ponašanja sistema, za proveru arhitekture sistema i za komunikaciju između učesnika u projektu); • zasniva na arhitekturnom pristupu (arhitekturu sistema treba koristiti kao osnovu za konceptualizaciju, konstrukciju, upravljanje i razvijanje sistema tokom projektovanja); • odvija iterativno i inkrementalno (treba razvijati i upravljati nizom izvršnih verzija softvera, s tim da svaka nova verzija predstavlja inkrementalno poboljšanje prethodne). 17

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA Faze u razvoju softvera 18

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA Faze u razvoju softvera 18

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Početak predstavlja prvu fazu

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Početak predstavlja prvu fazu procesa razvoja, u kojoj je zamišljena ideja projektovanja dovoljno dobro zasnovana da opravdava prelazak na fazu razrade. Razrada je faza u kojoj su definisane vizija proizvoda i njegova arhitektura. Poznati su sistemski zahtevi i određeni prioriteti i smernice. Konstrukcija je faza kada se softver prevodi iz izvršive arhitekturne skice u formu spremnu za prikazivanje korisnicima. U ovoj fazi se sistemski zahtevi preispituju u odnosu na poslovne potrebe projekta a resursi se raspoređuju u skladu sa rešavanjem rizika u projektu. Tranzicija je faza u kojoj se softver predaje korisniku. I u ovoj fazi sistem se usavršava, otklanjaju se greške i dodaju se nove osobine. Iteracija je prisutna u svim fazama - životni ciklus razvoja softvera znači proizvođenje neprekidnog niza izvršivih verzija arhitektura sistema. 19

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Metodologije koje podržavaju automatizovan

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Metodologije koje podržavaju automatizovan razvoj imaju sledeće zajedničke karakteristike: • ne zasnivaju se na tradicionalnom životnom ciklusu već na prototipskom pristupu razvoju informacionih sistema; • naglašava se uloga korisnika koji se preko svojih radnih stanica od početka uključuju u proces razvoja; • primenjuju se i kombinuju mnogi poznati postupci i alati za razvoj; • sve više koriste CASE alate. 20

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Životni ciklus informacionih sistema

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Životni ciklus informacionih sistema U poslednjoj fazi ciklusa, informacioni sistemi retko doživljavaju da su zastareli fizički, već postaju tehnološki i tehnički zastareli. Proširenje, bilo funkcionalno, tehničko i/ili tehnološko se više preferira nego zamena sistema. Sistemska proširenja ili nadgradnja predstavljaju glavne modifikacije kod nekog 21 postojećeg sistema.

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Jedanaest faza životnog ciklusa

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Jedanaest faza životnog ciklusa razvoja informacionih sistema: Analiza (u domenu analize, analitičari utvrđuju da li postojeći sistem dobro funkcioniše i kakve popravke dizajna su najprihvatljivije): 1. Detekcija problema i/ili nedostataka (Svrha: Otkrivanje da li je postojeći sistem u stanju zastarelosti; Rezultat: Preliminarni izveštaj o postojećim i/ili potencijalnim problemima) 2. Inicijalna istraživanja (Svrha: Opisati postojeći sistem, pri čemu treba precizno naznačiti otkrivene probleme i/ili nedostatke; Rezultat: Opis postojećeg sistema) 3. Analiza zahteva (Svrha: Doći do konsenzusa s korisnikom o izvođenju novog informacionog sistema; Rezultat: Opis/dokument analize zahteva) 4. Kreiranje mogućih sistemskih rešenja (Svrha: Istražiti i ispitati različita sistemska rešenja za novi sistem; Rezultat: Dosije sistemskih rešenja) 5. Izbor adekvatnog sistema (Svrha: Uporediti moguća sistemska rešenja primenom strukturisane metodologije i izabrati najprihvatljivije rešenje; Rezultat: Sistemska studija); 22

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Jedanaest faza životnog ciklusa

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Jedanaest faza životnog ciklusa razvoja informacionih sistema: Dizajn (u domenu dizajna se realizuje dizajn izabranog sistemskog rešenja): 6. Dizajn izlaznih formi (Svrha: Opisati izlazne dokumente i izveštaje sistema; Rezultat: Forme izlaznih dokumenata) 7. Dizajn ulaznih formi (Svrha: Opisati dokumenta i ekranske forme koji se unose u informacioni sistem; Rezultat: Forme ulaznih dokumenata) 8. Dizajn baze podataka (Svrha: Opisati datoteke informacionog sistema; Rezultat: Dokumentacijske forme datoteka); 23

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Jedanaest faza životnog ciklusa

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Jedanaest faza životnog ciklusa razvoja informacionih sistema: Implementacija (u okviru implementacije dolazi do prevođenja specifikacija logičkog dizajna u fizičko izvođenje informacionog sistema): 9. Programiranje i testiranje (Svrha: Konvertovati specifikacije logičkog dizajna u izvršni programski kod, i testirati sve programe radi provere korektnosti njihovog rada; Rezultat: Programski kod i programske specifikacije 10. Obuka i ostale pripremne aktivnosti (Svrha: Sprovesti obuku za rad sa informacionim sistemom, pripremiti okruženje za instalaciju i rad sistema, izvršiti i druge pripremne aktivnosti neophodne za ispravan rad sistema; Rezultat: Plan obuke i pratećih aktivnosti 11. Prelazak sa starog na novi sistem (Svrha: Preći sa starog na rad sa novim informacionim sistemom. Prenošenje odgovornosti za rad novog sistema sa dizajnerskog tima na korisnika; Rezultat: primopredajni zapisnik/izveštaj). 24

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Faze životnog ciklusa razvoja

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Faze životnog ciklusa razvoja informacionih sistema 25

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) U suštini, životni ciklus

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) U suštini, životni ciklus razvoja informacionih sistema (SDLC) je proces iterativne prirode. Veoma često analitičari se vraćaju u prethodni korak faze kako bi proverili i/ili otkrili nešto novo ili što im je nedostajalo u koraku koji je nastavak prethodnog. 26

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) MODEL VODOPADA Model vodopada

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) MODEL VODOPADA Model vodopada je popularna verzija SDLC modela razvoja softvera. Često viđen kao klasičan pristup životnom ciklusu razvoja sistema, model vodopada predstavlja linearan i sekvencijalan metod razvoja. Razvoj u modelu vodopada ima jasne ciljeve za svaku fazu razvoja. Kad se završi jedna faza razvoja, razvoj se nastavlja sledećom fazom i nema vraćanja unazad. Prednost modela vodopada je što omogućava podelu posla i upravljanje. Može se napraviti plan sa rokovima završetka svake faze razvoja a projekat se može pratiti kroz proces razvoja kao proizvod kroz montažu i, teorijski, završiti na vreme. Razvoj kreće od koncepta, kroz dizajn, implementaciju, testiranje, instalaciju i završava se funkcionisanjem i održavanjem sistema. Svaka faza razvoja odvija se u fiksnom redosledu, bez preklapanja ili iterativnih koraka. Nedostatak razvoja po modelu vodopada je što ne dozvoljava obimnije preispitivanje i reviziju. Kad aplikacija dođe u fazu testiranja, vrlo je teško vratiti se unazad i promeniti nešto nije dobro zamišljeno u fazi izrade koncepta. 27

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Redosled aktivnosti u modelu

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Redosled aktivnosti u modelu vodopada 28

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) SPIRALNI MODEL Spiralni model

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) SPIRALNI MODEL Spiralni model životnog ciklusa je SDLC model koji predstavlja kombinaciju modela vodopada i prototipskog modela razvoja. Pogodan je za velike, skupe i kompleksne projekte. Obuhvata korake: 1. Što detaljnije definisanje zahteva novog sistema (intervjuisanje velikog broja korisnika); 2. Izrada preliminarnog dizajna novog sistema 3. Konstrukcija prvog prototipa iz preliminarnog dizajna (smanjena verzija sistema - aproksimacija karakteristika finalnog proizvoda razvoja); 4. Razvoj drugog prototipa: (1) evaluacija prvog prototipa u pogledu prednosti, slabih strana i rizika; (2) definicija zahteva za drugi prototip; (3) planiranje i dizajn drugog prototipa; (4) konstruisanje i testiranje drugog prototipa. 5. Na zahtev korisnika, ceo projekat se može prekinuti ako je rizik preveliki (faktori rizika uključuju probijanje troškova razvoja, greške u proračunu troškova funkcionisanja, ili bilo koje faktore koji mogu, po mišljenju korisnika, da rezultuju nezadovoljavajućim finalnim proizvodom); 6. Drugi prototip se evaluira kao i prvi, i, ako je potrebno, iz njega se razvija novi prototip, po proceduri iz 4. koraka. 29

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) SPIRALNI MODEL 7. Prethodni

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) SPIRALNI MODEL 7. Prethodni koraci se izvršavaju iterativno do zadovoljavanja korisnika – tada popravljeni prototip predstavlja željeni finalni proizvod. 8. Dizajn konačnog sistema – finalnog proizvoda, na bazi zadnjeg popravljenog prototipa. 9. Konačni sistem se pažljivo evaluira i testira. Kontinualno se vrši rutinsko održavanje kako bi se sprečile veće greške i minimizirali zastoji. Prednosti: • procene (npr. budžet, odvijanje aktivnosti itd. ) postaju realističnije sa odmicanjem rada, jer se važni uticajni faktori otkrivaju ranije; • povećana sposobnost povezivanja sa (gotovo neizbežnim) promenama koje razvoj softvera uglavnom zahteva; • inženjeri softvera se ranije uključuju u rad na projektu. 30

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Aktivnosti u spiralnom modelu

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Aktivnosti u spiralnom modelu 31

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) "SINHRONIZUJ I STABILIZUJ" (Synch-and-Stabilize)

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) "SINHRONIZUJ I STABILIZUJ" (Synch-and-Stabilize) MODEL "Sinhronizuj i stabilizuj" model je SDLC model u kome timovi paralelno i sa visokom autonomijom rade na individualnim aplikativnim modulima, uz čestu sinhronizaciju rezultata sa rezultatima drugih timova i redovnu kontrolu (stabilizaciju) tokom procesa razvoja. Zbog toga što dozvoljava izmene u bilo kojoj fazi procesa razvoja, "sinhronizuj i stabilizuj" model je fleksibilan i sposobniji da odgovori na promene zahteva. Ovaj model deli proces razvoja u tri faze: • faza planiranja (definisanje vizije proizvoda, specifikacije i plana realizacije); • faza razvoja (razvoj kroz 3 ili 4 sekvencijalna potprojekta koji daju uporedive rezultate za sinhronizaciju i stabilizaciju); • faza stabilizacije (interno i eksterno testiranje, finalna stabilizacija i isporuka proizvoda). 32

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) "IZGRADI I FIKSIRAJ" (Build-and-Fix)

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) "IZGRADI I FIKSIRAJ" (Build-and-Fix) MODEL Ovaj model je najlošiji model razvoja informacionog sistema. Informacioni sistem se izgrađuje bez odgovarajućih specifikacija i koraka u dizajnu. U suštini, proizvod se izgrađuje i modifikuje koliko god puta je potrebno dok korisnik ne bude zadovoljan. Troškovi ovog pristupa su veći nego što bi bili da su urađene specifikacije i pažljivo sproveden dizajn. Zato se ne preporučuje. 33

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) "IZGRADI I FIKSIRAJ" (Build-and-Fix)

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) "IZGRADI I FIKSIRAJ" (Build-and-Fix) MODEL Aktivnosti u "Build-And-Fix" modelu razvoja 34

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) ZAJEDNIČKI RAZVOJ APLIKACIJA (Joint

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) ZAJEDNIČKI RAZVOJ APLIKACIJA (Joint Application Development - JAD) Zajednički razvoj aplikacija je proces koji se koristi u životnom ciklusu razvoja sistema za prikupljanje zahteva poslovnog sistema radi razvoja novog informacionog sistema preduzeća. Odvija se u vidu praktikuma na kome se sreću korisnici i IT specijalisti sa ciljem da definišu i prečiste poslovne zahteve, što pomaže IT funkciji da za kraće vreme efektivnije radi sa korisnicima. Kroz JAD praktikume korisnici i IT specijalisti imaju priliku da razreše bilo kakve nesuglasice u pogledu novog IS. Praktikum sledi detaljnu agendu, pravljenu sa ciljem da se sve neizvesnosti u vezi sa IS eliminišu u ranoj fazi njegove izgradnje. Konačno, rezultat ovog procesa će biti IS koji je prihvatljiv i odgovara i dizajnerima i krajnjim korisnicima. 35

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) ZAJEDNIČKI RAZVOJ APLIKACIJA (Joint

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) ZAJEDNIČKI RAZVOJ APLIKACIJA (Joint Application Development - JAD) Ključni koraci: • Identifikacija ciljeva projekta i ograničenja (važno je imati jasne ciljeve praktikuma i projekta u celini); • Identifikacija kritičnih faktora uspeha (treba ih utvrditi kako za projekat tako i za proučavanu poslovnu funkciju); • Definisanje izlaza projekta (izlazi sa praktikuma su dokumentacija i dizajn); • Izrada plana aktivnosti na praktikumu; • Selekcija učesnika (korisnici u poslovnom sistemu, IS profesionalci i spoljni eksperti potrebni za uspeh praktikuma); • Priprema materijala za praktikum (materijal se sastoji od dokumentacije, obrazaca, dijagrama i drugih informacija); • Organizovanje aktivnosti praktikuma (moraju se osmisliti aktivnosti kojima se na praktikumu dolazi do izlaznih rezultata); • Priprema, informisanje i edukacija učesnika (svi učesnici treba da budu svesni cilja projekta i ograničenja). 36

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) RAPIDNI RAZVOJ APLIKACIJA (Rapid

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) RAPIDNI RAZVOJ APLIKACIJA (Rapid Application Development - RAD) Rapidni razvoj aplikacija odnosi se na životni ciklus razvoja sistema dizajniran tako da se postigne znatno brži razvoj i veći kvalitet nego u tradicionalnom modelu vodopada. Pogodan je za upotrebu naprednih razvojnih softvera kao što su CASE alati, alati za izradu prototipova i generatori koda. Ključni ciljevi RAD koncepta su povećana brzina razvoja, visok kvalitet i sniženi troškovi. U centru pažnje je korisnik i inkrementni pristup razvoju. Imperativ je aktivno uključenje korisnika, kao i saradnja između svih stejkholdera. Testiranje je integrisano u sve faze životnog ciklusa razvoja, tako da sistem inkrementno testiraju i kontrolišu, kako IT specijalisti koji ga razvijaju tako i korisnici. 37

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) RAPIDNI RAZVOJ APLIKACIJA (Rapid

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) RAPIDNI RAZVOJ APLIKACIJA (Rapid Application Development - RAD) Faze u RAD životnom ciklusu 38

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) RAPIDNI RAZVOJ APLIKACIJA (Rapid

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) RAPIDNI RAZVOJ APLIKACIJA (Rapid Application Development - RAD) Odnosi ključnih faza u RAD i SDLC modelu razvoja IS 39

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) RAPIDNI RAZVOJ APLIKACIJA (Rapid

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) RAPIDNI RAZVOJ APLIKACIJA (Rapid Application Development - RAD) RAD vrši komprimovanje faza analize, dizajna, izgradnje i testiranja u klasičnom SDLC modelu u jedan iterativni proces. RAD pristup uključuje paralelno definisanje i optimizaciju modela podataka i modela procesa u izradu prototipa. Snimaju se zahtevi korisnika, dizajnira se rešenje u vidu prototipa, prototip ide na reviziju i proces ponovo počinje. 40

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) RAPIDNI RAZVOJ APLIKACIJA (Rapid

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) RAPIDNI RAZVOJ APLIKACIJA (Rapid Application Development - RAD) RAD ima četiri suštinske komponente: • alati (upotreba snažnih CASE alata obezbeđuje podršku automatizacije razvoju sistema kroz generisanje koda i automatsku proveru konzistentnosti; CASE alati koji generišu prototipove mogu se koristiti da podrže iterativni razvojni pristup kao što je RAD, omogućavajući krajnjim korisnicima da vide aplikacije dok se one još izgrađuju); • metodologija (za razvoj sistema se koriste najsnažnije tehnike koje se formalizuju; čitav niz poslova služi za osiguravanje da se ne propusti nijedna suštinska aktivnost; tehnike su potpuno dokumentovane sa ciljem da se poslovi izvode na ispravan način); • ljudi (moraju biti dobro obučeni, kako za metodologiju tako i za alate; mali timovi koji dobro rade mogu se po potrebi grupisati u veće celine); • upravljanje (projektom se mora upravljati u cilju brzog razvoja, korišćenjem tehnika kao što su Joint Requirements Planning – JRP i Joint Application Development – JAD, u formi praktikuma koji služe za brzo definisanje korisničkih zahteva; u fazi rapidnog razvoja koristi se vremensko upravljanje – tehnika Timebox Management-a za iterativnu isporuku sistema korisnicima). 41

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) RAPIDNI RAZVOJ APLIKACIJA (Rapid

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) RAPIDNI RAZVOJ APLIKACIJA (Rapid Application Development - RAD) Struktura razvojnog ciklusa u RAD konceptu: 1. Planiranje zahteva (istraživanje tekuće situacije; definisanje zahteva; finiširanje zahteva) 2. Korisnički dizajn (izrada detaljnog modela sistema; razvoj okvirnog dizajna sistema; poboljšanje dizajna sistema; priprema strategije implementacije; finiširanje dizajna sistema; dobijanje saglasnosti za rapidni razvoj) 3. Rapidni razvoj (priprema za rapidni razvoj: konstrukcija sistema, generisanje test podataka i sistemske dokumentacije, priprema za tranziciju; verifikacija konstrukcije sistema) 4. Tranzicija (sprovođenje obuke korisnika; konverzija podataka; instalacija produkcionog sistema; prihvatanje instalacije sistema). 42

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Razvojni alati i životni

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) Razvojni alati i životni ciklus razvoja sistema 43

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) STRUKTURISANA METODOLOGIJA U top-down

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) STRUKTURISANA METODOLOGIJA U top-down pristupu, sistem se prvo definiše na jednom globalnom i sumarnom nivou, a zatim se podvrgava daljem sukcesivnom analitičkom raščlanjavanju sve do najnižeg - primitive nivoa, na kome su jasno definisane sve sistemske funkcije. Primitive nivo predstavlja mesto gde se sistemske specifikacije mogu prevesti, na bazi jedan-prema-jedan, u korespondentne linije koda. Na ovaj način, vrši se dekompozicija sistema u male, kohezivne, labavo međusobno vezane programske module koji izvode jednostavne i precizne zadatke. Ovi moduli treba da budu nezavisni jedan od drugog koliko je to moguće, tako da se u procesu održavanja mogu lako i efektno vršiti intervencije i promene na nekom od modula, a da to ima minimalni ili nikakav efekat na druge module. Radikalni top-down pristup dopušta isporuku parcijalnog, nepotpuno dovršenog sistema korisnicima. U tom slučaju, manje važni moduli se isporučuju i dodaju postojećem sistemu tokom vremena, u skladu s utvrđenim zahtevima i potrebama. Moto je na vreme isporučiti parcijalni, dobro testirani sistem korisniku. 44

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) STRUKTURISANA METODOLOGIJA Sekvencijalni i

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC) STRUKTURISANA METODOLOGIJA Sekvencijalni i iterativni životni ciklus razvoja sistema 45

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA PROTOTIPSKI RAZVOJ SOFTVERA (PROTOTYPING) Prototajping je proces brzog dizajna

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA PROTOTIPSKI RAZVOJ SOFTVERA (PROTOTYPING) Prototajping je proces brzog dizajna radnog modela (prototipa) namenjenog za testiranje različitih aspekata dizajna, ilustraciju ideja ili osobina proizvoda i dobijanje povratnih informacija od korisnika u ranoj fazi razvoja. U procesu iterativnog i inkrementalnog razvoja razvija se jedan ili više prototipova, pri čemu svaki sledeći nosi poboljšane osobine u odnosu na prethodni. Onda kada je prototip dovoljno usavršen i zadovoljava razvojne ciljeve, proizvod (IS) je spreman za upotrebu. Ideje koje su dovele do prototipskog razvoja softvera su: • Kod prototipskog razvoja softverskih sistema ne vrši se modelovanje celog sistema, već samo nekih njegovih delova. • Neposredno uključenje krajnjeg korisnika u proces razvoja softvera. • Brže izvođenje prototipa nego primenom konvencionalnog životnog ciklusa razvoja sistema (SDLC). 46

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA PROTOTIPSKI RAZVOJ SOFTVERA (PROTOTYPING) Dva metoda prototipskog razvoja: •

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA PROTOTIPSKI RAZVOJ SOFTVERA (PROTOTYPING) Dva metoda prototipskog razvoja: • Tip I prototip, zasnovan na iterativnom modelu, ("iterative model"); • Tip II prototip, koncipiran na prolaznom modelu, ("throwaway"). Tip I prevodi prototip u finalni sistem tokom čitavog niza evolucijskih modifikacija i promena koje su nastale povratnom spregom s krajnjim korisnikom. Prolazni metod koristi 4 GL prototip kao model koji predstavlja bazu za izvođenje finalnog sistema. I u Tip II metodu prototipskog razvoja dešavaju se iteracije – proceduralni koraci koji se odnose na analizu, dizajn, kodiranje, testiranje i nastale modifikacije moraju se ponavljati u dovoljnom broju, sve dok se u potpunosti ne odrede i ne ispune informacioni zahtevi korisnika. Tek po završetku svih ovih aktivnosti, dobijeni prototip može poslužiti kao model/osnova za finalno izvođenje sistema. Posle toga, prototip se odbacuje, jer više nije potreban pošto je poslužio svojoj svrsi. Kod Tip I metoda, životni ciklus sadrži faze: obuka, projektno planiranje, rapidna odnosno kratka analiza, dizajn baze podataka, prototipske iteracije (dizajn, kreiranje i testiranje), implementacija i održavanje. Ono u čemu se Tip I prototajping razlikuje u odnosu na konvencionalni SDLC je uključivanje obuke i projektnog planiranja. Pored ovoga, ponekad je neophodno zameniti programske jezike treće generacije sa jezicima četvrte generacije – 4 GL. 47

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA PROTOTIPSKI RAZVOJ SOFTVERA (PROTOTYPING) Konvencionalni SDLC sa Tip II

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA PROTOTIPSKI RAZVOJ SOFTVERA (PROTOTYPING) Konvencionalni SDLC sa Tip II prototipom 48

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA Konvencionalni SDLC sa Tip I prototipom 49

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA Konvencionalni SDLC sa Tip I prototipom 49

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA PROTOTIPSKI RAZVOJ SOFTVERA (PROTOTYPING) Prednosti prototajpinga: • Sistemi se

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA PROTOTIPSKI RAZVOJ SOFTVERA (PROTOTYPING) Prednosti prototajpinga: • Sistemi se razvijaju mnogo brže; • Krajnji korisnici se lakše upoznaju i uče korišćenje sistema; • Potreban je manji obim analize i programiranja u slučajevima kada se zahteva manji broj promena, nego što je to slučaj s konvencionalnim SDLC-om pod istim okolnostima; • Zaostajanja i kašnjenja u razvoju su smanjena, jer je potrebno vreme za životni ciklus razvoja sistema smanjeno za trećinu; • Stimuliše se uključenje krajnjeg korisnika u proces razvoja IS; • Neposredna implementacija sistema je olakšana, jer korisnik pod ovakvim okolnostima zna šta ga očekuje; • Proširena je i poboljšana komunikacija između analitičara i korisnika; • Informacioni zahtevi korisnika se lakše utvrđuju; • Niža ukupna cena razvoja sistema. 50

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA PROTOTIPSKI RAZVOJ SOFTVERA (PROTOTYPING) Nedostaci prototajpinga: • Mogućnost tima

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA PROTOTIPSKI RAZVOJ SOFTVERA (PROTOTYPING) Nedostaci prototajpinga: • Mogućnost tima za dizajn sistema da razvije prototip na brz i efektan način • • utiče na povećanje nerealnih očekivanja korisnika. Ako se primenjuje prolazni model prototajpinga, tada konačno izvođenje sistema ne odgovara u potpunosti prototipu. Mogućnost prototajpinga softvera može animirati krajnjeg korisnika da započne razvoj svog vlastitog sistema kada nije zadovoljan s postojećim ili želi da izvrši određene funkcionalne dopune. Veliki i kompleksni sistemi nisu pogodni za iterativnu tehniku prototajpinga. Generatori aplikacija koji se svrstavaju u alate za prototajping se relativno lako koriste, pri čemu se brzo i efektno dolazi do rezultata. Analitičari su, time, podvrgnuti iskušenju da odmah pristupe prototajpingu, mnogo pre nego što bi to uradio iskusan analitičar. 51

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA PROTOTIPSKI RAZVOJ SOFTVERA (PROTOTYPING) Metodologija prototajpinga Ključ za uspeh

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA PROTOTIPSKI RAZVOJ SOFTVERA (PROTOTYPING) Metodologija prototajpinga Ključ za uspeh prototajpinga leži u pažljivom ispitivanju i utvrđivanju koji nivo prototajpinga koristiti. Sugerišu se četiri faze razvoja i izvođenja prototipa: Prva faza - utvrđivanje ključnih aspekata prototipnog sistema (korisnički interfejs, definisane i specificirane sistemske funkcije, neophodni računarski resursi i vreme potrebno za generisanje prototipa); Druga faza - izvođenje prototipa svim raspoloživim alatima (doći do brzog izvođenja prototipa koristeći se najpogodnijim alatima); Treća faza - testiranje prototipa (prototip se podvrgava određenim testovima i tokom procedure testiranja izvršava se fino podešavanje koje ima za osnovu povratnu spregu od korisnika i samog rada prototipa); . Četvrta faza - korišćenje prototipa kao modela za izvođenje finalnog sistema (Tip I) ili kao osnove za izvođenje finalnog sistema (Tip II). 52

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA AUTOMATIZACIJA RAZVOJA SOFTVEROM 4. GENERACIJE Softver 4. generacije obuhvata:

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA AUTOMATIZACIJA RAZVOJA SOFTVEROM 4. GENERACIJE Softver 4. generacije obuhvata: • • rečnike podataka, sisteme za upravljanje bazom podataka, generatore ekrana, generatore izveštaja, generatore programa, jezike upita (Query Languages) i jezike 4. generacije. Softver 4. generacije je integrisan oko baze podataka sa rečnikom podataka i sistema za upravljanje bazom podataka. Omogućuje da sami korisnici razvijaju aplikacije AOP-a i da ih povezuju u jedinstven informacioni sistem. 53

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA AUTOMATIZACIJA RAZVOJA SOFTVEROM 4. GENERACIJE Softver 4. generacije rešava

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA AUTOMATIZACIJA RAZVOJA SOFTVEROM 4. GENERACIJE Softver 4. generacije rešava sledeće zadatke: • potpuni razvoj aplikacije od analize, projektovanja, preko izrade i testiranja, do uvođenja i dokumetacije; • integrisanje aplikacije u informacioni sistem; • smanjenje obima programiranja i angažovanja aplikativnih programera na izradi programa. Jezici 4. generacije (4 GL), za razliku od viših programskih jezika, nisu isključivo proceduralno orijentisani i ne služe za manuelno programiranje već, koristeći i neproceduralna sredstva, generišu skup izvršnih programa kojima se opisuje aplikacija i time smanjuju obim programiranja. Daju osnovu za projektovanje informacionih sistema pomoću prototipa. Za njihovo korišćenje nije neophodno posebno projektantsko i programersko znanje, već prevashodno dobro poznavanje problema koji se rešavaju. 54

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA AUTOMATIZACIJA RAZVOJA SOFTVEROM 4. GENERACIJE Jezici upita olakšavaju nalaženje

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA AUTOMATIZACIJA RAZVOJA SOFTVEROM 4. GENERACIJE Jezici upita olakšavaju nalaženje i dobijanje podataka iz baze, bez potrebe da se pišu proceduralne instrukcije i specificiraju formati. Omogućavaju korisnicima da prave upite koristeći jezik sličan engleskom. Najpoznatiji jezici upita su SQL i Query -By-Example. Generatori izveštaja su, kao i jezici upita, neproceduralni jezici koji daju formatizovane izveštaje na ekranu, štampaču ili u vidu datoteke. Najpoznatiji generatoti izveštaja su MARK IV, Easytrive Plus, NOMAD itd. Generatori aplikacija su softverski paketi koji omogućavaju da se specificiraju kompletne aplikacije: prihvatanje ulaznih podataka, obavljanje proračuna po proceduralnoj logici, komunikaciju sa datotekama ili bazom podataka i izradu izveštaja ili drugih izlaza. 55

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA AUTOMATIZACIJA RAZVOJA SOFTVEROM 4. GENERACIJE Svaki generator aplikacija sadrži

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA AUTOMATIZACIJA RAZVOJA SOFTVEROM 4. GENERACIJE Svaki generator aplikacija sadrži rečnik podataka i generator programa. Rečnik podataka može se odnositi na podatke u okviru jedne aplikacije, podsistema ili celog informacionog sistema. Izrada rečnika podataka predstavlja početnu fazu izrade aplikacije. Rečnik podataka sadrži module: • za naziv aplikacije i zaštitu podataka u rečniku podataka; • za definiciju aplikacije; • za definisanje datoteka (naziv, vrsta datoteka, formati slogova) i ključeva za vezu među datotekama; • za opis polja u slogu (naziv, vrsta, dužina, opis, event. početna vrednost itd. ); • za izradu i ažuriranju tabela kojima se kontrolišu pojedina polja pri izvršavanju programa. 56

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA AUTOMATIZACIJA RAZVOJA SOFTVEROM 4. GENERACIJE Generatori programa (generatori koda)

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA AUTOMATIZACIJA RAZVOJA SOFTVEROM 4. GENERACIJE Generatori programa (generatori koda) na osnovu rečnika podataka kreiraju programe (interaktivne ili batch) i menije koji definišu izglede ekrana i programe povezuju u aplikacije. Metodima za prevođenje sistemskih specifikacija u radni kod automatizuju izradu softvera – direktno se generiše izvršni programski kod bez dodatnog prevođenja i editovanja. Neki generatori programa sadrže i module za uređivanje teksta, crtanje slika na ekranu i rad sa prozorima. Time se, prema nekim izvorima, produktivnost programiranja desetostruko uvećava u odnosu na najbolje programske jezike. Najpoznatiji generatori aplikacija su FOCUS, NATURAL, MANTIS, Aplication Factory itd. 57

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Konvencionalni (klasični) pristup razvoju

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Konvencionalni (klasični) pristup razvoju je orijentisan na algoritme i podrazumeva izradu blokova softvera u obliku procedura ili funkcija. Time se projektanti koncentrišu na kontrolu i dekompoziciju većih algoritama na manje, a podaci su razdvojeni od programskog koda. Takav pristup stvara nestabilne sisteme, koji sa izmenom zahteva i vlastitim rastom postaju sve teži za održavanje. Nedostaci konvencionalnog (algoritamskog odn. proceduralnog) pristupa: • mala modularnost sistema (jedinstvena baza podataka i skup međusobno nezavisnih aplikacija su vezani za korisnički interfejs); • statički koncept modela podataka; • nesaglasnost jezika baze podataka i programskih jezika; • razvoj sistema u jednom prolazu. 58

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Objektno orijentisani pristup projektovanju

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Objektno orijentisani pristup projektovanju informacionih sistema, za razliku od konvencionalnog, nema procedure u središtu posmatranja, već kao glavne gradivne blokove softverskih sistema tretira objekte ili klase. Objekat je apstrakcija prostora problema ili rešenja, a klasa predstavlja opis skupa sličnih objekata. Svaki objekat ima identitet (može se imenovati), stanje (mogu mu se pridružiti odgovarajući podaci) i ponašanje (nad njim se mogu izvršavati neke operacije). Takođe, objekat je entitet koji je sposoban da čuva svoja stanja i koji okolini stavlja na raspolaganje skup operacija kojima se ta stanja prikazuju ili menjaju. Sistem se posmatra kao skup povezanih objekata. 59

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Objektno orijentisani pristup povezuje

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Objektno orijentisani pristup povezuje podatke i procese u obliku klasa objekata, što omogućava apstrakciju procesa i podataka. Objekti su pojedinačna pojavljivanja (instance) klasa. Klasa sadrži procedure (metode) koje opisuju kako se klasa ponaša i šta radi sa podacima, kao i podatke (svojstva – properties, odn. atribute – attributes). Osobine klasa: • nasleđivanje (inheritance – opisuje način na koji klasa može da nasledi karakteristike svoje roditeljske klase – parent class; izvedene klase nasleđuju metode i obeležja roditeljske klase, a imaju i sopstvene metode i obeležja); • učaurivanje (encapsulation – opisuje kako su metode i podaci ugrađeni u objekat; podrazumeva visok stepen zaštite podataka unutar objekta – npr. , izmena vrednosti se može vršiti samo iz samog objekta); • polimorfizam (polymorphism – ista poruka se može poslati različitim klasama sa istim predvidljivim rezultatom). 60

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Prednosti objektno orijentisanog pristupa

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Prednosti objektno orijentisanog pristupa rastu sa porastom kompleksnosti sistema, jer se na ovaj način ubrzava i pojednostavljuje razvoj složenih aplikacija. Prednosti su: • objekti se mogu koristiti više puta; • objekti se mogu testirati nezavisno; • olakšan je timski rad; • razvijaju se objekti nezavisni od hardvera na kome će funkcionisati; • povećana fleksibilnost i lake izmene. 61

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Objektno orijentisani razvoj informacionih

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Objektno orijentisani razvoj informacionih sistema je iterativni proces parcijalno urađenih koraka koji vode ka cilju. Njegovi proizvodi su modeli, kao različiti pogledi na softver koji se razvija. Implementacijom dodatnih funkcionalnosti se arhitektura i model softvera dopunjuju, a ne značajno menjaju. Ovakav razvoj softvera je: • vođen slučajevima upotrebe (iteracije se sprovode tako da svaka ima za cilj analizu, implementaciju, i testiranje jedne grupe slučajeva); • orijentisan ka arhitekturi (arhitektura sistema je primarna za konceptualizaciju, konstrukciju, upravljanje i razvoj sistema); • iterativan i inkrementalan (softver se ne razvija frontalno u celini kroz sve faze životnog ciklusa – zahtevi, analiza, dizajn, implementacija kao u klasičnom "vodopad" konceptu, već u malim koracima, iterativno, tako da svaka iteracija prolazi kroz sve faze životnog ciklusa; inkrementalnost je u činjenici da se svaka iteracija oslanja na proizvode prethodne i na njih dodaje nove funkcionalnosti implementirajući nove slučajeve upotrebe); • usmeren na postizanje kvaliteta i što raniju i efikasniju eliminaciju rizika. 62

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Struktura izvođenja iterativnog životnog

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Struktura izvođenja iterativnog životnog ciklusa 63

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Objektno orijentisan razvoj informacionog

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Objektno orijentisan razvoj informacionog sistema izvodi se kroz četiri osnovna procesa: • • definisanje zahteva; objektno orijentisana analiza; objektno orijentisan dizajn; implementacija. 64

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Stablo aktivnosti procesa objektno

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Stablo aktivnosti procesa objektno orijentisanog razvoja informacionih sistema 65

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Proces Definisanje zahteva najčešće

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Proces Definisanje zahteva najčešće treba da omogući povezivanje neke klasične metodologije (na primer IDEF 0) sa elementima UML metodologije, i sastoji se iz: - izrade logičkog modela funkcija (daje se funkcionalna specifikacija informacionog sistema; logički model funkcija definiše se nezavisno od organizacionog ili tehnološkog okruženja u kome će projekat biti implementiran; identifikuju se granice posmatranog sistema, vertikalno i horizontalno povezivanje funkcija). Potprocesi i aktivnosti su: - definisanje fundamentalnih funkcija (analiza zahteva korisnika; definisanje dijagrama konteksta; definisanje stabla logičkih funkcija; definisanje dijagrama dekompozicije) - definisanje logike primitivnih funkcija (definisanje primitivnih funkcija; definisanje tokova podataka; definisanje skladišta podataka; definisanje spoljnih objekata). 66

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA - izrade fizičkog modela

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA - izrade fizičkog modela poslovnih procesa (detaljno opisivanje poslovnih procesa, korišćenjem UML dijagrama aktivnosti, kao sekvence aktivnosti u konkretnom okruženju – organizaciona struktura, sistematizacija radnih mesta, tehnologija rada; razmatraju se poslovni procesi koji moraju da se urade po redu izvršavanja; poslovni procesi se opisuju slučajevima upotrebe i dekomponuju se do nivoa primitivnih procesa; slučajevi upotrebe opisuju funkcionisanje sistema iz perspektive korisnika u raznim karakterističnim situacijama, koristeći za to sistemski dijagram sekvenci koji definiše redosled poruka ili dijagram aktivnosti, onda kada se opisuje paralelizam u procesima; implementacija slučajeva upotrebe vrši se preko saradnje odn. kolaboracije). Potprocesi i aktivnosti su: - definisanje organizaciono tehnološkog okruženja (analiza organizacione strukture; analiza sistematizacije radnih mesta; tehnologija obavljanja poslova) - razvoj dijagrama slučajeva upotrebe (definisanje učesnika; definisanje slučajeva upotrebe; definisanje tipova veza između učesnika slučajeva upotrebe; izrada dijagrama slučajeva upotrebe) - razvoj dijagrama aktivnosti (definisanje plivačkih staza; definisanje stanja dijagrama aktivnosti; definisanje tranzicija). 67

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Proces Objektno orijentisana analiza

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA Proces Objektno orijentisana analiza razmatra objekte sadržane u realnom sistemu, kao i načine njihove međusobne saradnje. Nalazi i opisuje objekte ili koncepte u domenu problema, zatim specificira najvažnije atribute unutar objekata i interakcije među objektima. Definiše se kao: - izrada konceptualnog modela (definisanje dijagrama klasa bez operacija za ciljne koncepte u domenu posmatranja; definišu se koncepti, odgovarajući atributi i potrebne asocijacije među konceptima; konceptualni model odgovara klasičnom modelu objekti – veze); obuhvata aktivnosti: definisanje koncepata; definisanje veza između koncepata; definisanje atributa, operacija i odgovornosti - izrada dijagrama sekvenci (za svaki slučaj upotrebe pokazuje događaje koje generiše spoljni učesnik i njihov redosled, odn. dinamičku saradnju objekata u vremenu); obuhvata aktivnosti: definisanje aktivnosti i objekata; definisanje poruka; definisanje indikatora sinhronizacije - definisanje ugovora o izvršenju operacija (opis logike operacija – odziva sistema na specificiranje događaja); sadrži aktivnosti: identifikacija operacija u dijagramu sekvenci; izrada mehanizma za operacije; definisanje svrhe operacija; definisanje pre i post uslova. 68

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA - definisanje ugovora o

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA - definisanje ugovora o izvršenju operacija (opis logike operacija – odziva sistema na specificiranje događaja); sadrži aktivnosti: identifikacija operacija u dijagramu sekvenci; izrada mehanizma za operacije; definisanje svrhe operacija; definisanje pre i post uslova. Proces Objektno orijentisani dizajn omogućava definisanje logike softverskih objekata (koji imaju atribute i operacije). Dodaju se relacije između klasa, potrebne za implementaciju. Definiše se preko sledećih aktivnosti: - izrada dijagrama saradnje (detaljna specifikacija svake operacije sistema, radi lociranja odgovornosti na objekte i određivanja kako oni deluju preko poruka, uz prikaz u grafičkom ili mrežnom formatu); aktivnosti su: kompletiranje objekata saradnje; definisanje relacija saradnje; definisanje indikatora sinhronizacije saradnje; definisanje indikatora vidljivosti 69

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA - kreiranje potpunih dijagrama

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA - kreiranje potpunih dijagrama klasa (definiše se potpun dijagram klasa sa detaljno specificiranim atributima, asocijama i dodatim operacijama i njihovim opisom; to je najvažniji i najviše korišćen UML dijagram, koji predstavlja statičku strukturu sistema; odgovara na pitanje kako su objekti povezani i šta su to operacije klase; odgovor na ovo pitanje daje dijagram saradnje, koji sugeriše neophodne veze između objekata i operacija koje svaka klasa mora da ima; nasuprot konceptualnom modelu, dijagram klasa ne ilustruje koncept realnog sveta, već opisuje buduće softverske komponente); aktivnosti su: definisanje klasa; definisanje atributa; definisanje operacija; definisanje veza i kardinalnosti; definisanje interfejsa; definisanje dijagrama klasa - izrada dijagrama stanja (vezuje se samo za jedan objekat i određenu operaciju unutar njega za određenu klasu, čime se opisuju složene operacije klase; prikazuje se sekvenca stanja kroz koje objekat prolazi tokom vremena, a kao reakcija na spoljne ili unutrašnje pobude; dijagrami stanja se koriste i za opis logike jednog slučaja upotrebe); aktivnosti su: definisanje stanja sistema; definisanje prelaza stanja; definisanje složenih stanja 70

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA - definisanje paketa, saradnje,

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA - definisanje paketa, saradnje, uzoraka i aplikativnih kostura (definisanje paketa za organizovanje elemenata za modeliranje u veće celine kojima će se manipulisati kao sa grupom; saradnja predstavlja konceptualni skup elemenata i njihove interakcije; uzorak predstavlja neko opšte rešenje za opšti problem, dok aplikativni kostur prikazuje celokupnu arhitekturu zasnovanu na složenim mustrama kojima se definiše neka opšta aplikacija u posmatranoj oblasti); aktivnosti su: definisanje paketa; definisanje saradnje; definisanje uzoraka; definisanje aplikativnih kostura 71

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA U procesu Implementacija vrši

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA U procesu Implementacija vrši se objektno orijentisano programiranje (odgovara fazi internog dizajna u klasičnim metodologijama). Zahteva se izabrani SUBP i odgovarajući programski jezik u kome će biti realizovana aplikacija. Obuhvata sledeće aktivnosti: - Izrada aplikacije: - dizajn baze podataka (prevođenje logičkog modela podataka u fizički dizajn za implementaciju, uzimajući u obzir veličine podataka, bezbednost, zahteve za arhiviranje i backup/recovery); - kreiranje fizičkog modela baze podataka (analiza fizičke baze podataka – prevodi logički objektni model u fizički relacioni model koji se koristi za kreiranje šeme baze podataka); - generisanje baze podataka (za generisanje izvršivih baza podataka koristi se DDL – Data Definition Language jezik za relacione baze podataka odn. PSB – Program Specification Block i DBD – Database Definition za IMS baze podataka); - izrada korisničkog interfejsa (obezbeđuje konzistentan i fleksibilan interfejs koji ispunjava zahteve korisnika i standarde organizacije); - mapiranje, programiranje i prevođenje (kreiranje programa spremnih za kompajliranje, generatorom ili ručno; kod se koristi za izradu aplikacija, 72 konverziju podataka, izradu programskih interfejsa i sl. ).

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA - Definisanje tehnologije, aplikativne

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISAN RAZVOJ INFORMACIONOG SISTEMA - Definisanje tehnologije, aplikativne i mrežne arhitekture (primena, s jedne strane, kompozitnih i generativnih tehnologija a s druge strane, primena višeslojne arhitekture, odn. implementacionih dijagrama razvoja i dijagrama razmeštaja); - Testiranje (izolovano i integralno testiranje realizovanih aplikacija i/ili njihovih delova; testiraju se ispravnost i performanse programa i sprovode ispravke i poboljšanja); - Uvođenje (instalisanje i vrednovanje sofvera, izrada korisničkih uputstava i plana obuke korisnika); - Održavanje (pravljenje i realizacija zahteva za promene na implementiranim aplikacijama; obuhvata i praćenje rada softvera, ispravku grešaka, poboljšanje funkcija informacionog sistema, dodavanje novih funkcija i izmene hardvera i softvera). 73

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISANO MODELOVANJE SISTEMA Modelovanje je osnovni deo svih

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISANO MODELOVANJE SISTEMA Modelovanje je osnovni deo svih aktivnosti koje vode ka razvoju dobrog softvera. Modeli se stvaraju radi razmatranja željene strukture i ponašanja realnog sistema, radi vizuelizovanja i kontrolisanja arhitekture sistema, radi boljeg razumevanja sistema koji se izgrađuje i radi smanjenja rizika u izgradnji. Četiri osnovna principa modelovanja su: Opredeljenje za određene modele znatno utiče na pristup problemu i oblik rešenja (svaki pogled na informacioni sistem stvara različitu vrstu modela, sa različitim nedostacima i prednostima). Svaki model se može izraziti sa različitim nivoima detaljnosti (nekad nam treba jednostavan izvršivi model korisničkog interfejsa, nekad se mora ići do nivoa bitova (međusistemski interfejsi, otklanjanje uskih grla u mreži). Najbolji modeli su u vezi sa realnošću (npr. matematički model aviona izgrađen za idealne uslove i proizvodnju bez greške može sakriti fatalne karakteristike stvarnog aviona). Jedan model za netrivijalne sisteme nije dovoljan; treba napraviti mali skup skoro nezavisnih modela (kod informacionih sistema zahteva se: prikaz korisničkih funkcija (projektnih zahteva), prikaz sa aspekta projektovanja (rečnik problema i rešenja), prikaz procesa (model zavisnosti procesa), prikaz implementacije (fizičke realizacije sistema) i prikaz raspoređenosti (aspekti sistemskog inženjeringa)). 74

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISANO MODELOVANJE SISTEMA Arhitektura sistema koji se modeluje

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISANO MODELOVANJE SISTEMA Arhitektura sistema koji se modeluje Arhitektura sistema podrazumeva skup važnih odluka o: • organizaciji softverskog sistema; • izboru strukturnih elemenata i njihovim interfejsima od kojih je sistem sastavljen; • ponašanju strukturnih elemenata u okviru sistema; • grupisanju elemenata u podsisteme; • stilu arhitekture u organizaciji. Softverska arhitektura se odnosi na strukturu, ponašanje, korišćenje, funkcionalnost, performanse, elastičnost, pnovno korišćenje, razumljivost, ekonomska i tehnička ograničenja, kompromise i estetiku. 75

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISANO MODELOVANJE SISTEMA Arhitektura sistema koji se modeluje

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA OBJEKTNO ORIJENTISANO MODELOVANJE SISTEMA Arhitektura sistema koji se modeluje - Modelovanje arhitekture sistema Prikaz korisničkih funkcija obuhvata funkcije koje opisuju ponašanje sistema sa aspekta krajnjeg korisnika odn. analitičara sistema. Prikaz sa aspekta projektovanja sistema obuhvata klase, interfejse i grupe koji definišu rečnik problema i njegovog rešenja Prikaz procesa obuhvata procese koji obezbeđuju mehanizme za postizanje istovremenosti i sinhronizacije (performanse, skalabilnost i propusna moć). Prikaz implementacije sistema obuhvata komponente i datoteke za sastavljanje i stavljanje u pogon fizičkog sistema. Prikaz raspoređenosti sistema obuhvata čvorove koji čine hardversku topologiju sistema 76

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE UML (Unified Modeling

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE UML (Unified Modeling Language) je standardni jezik za pisanje šematskih prikaza softvera. Može se koristiti za specificiranje bitnih analitičkih, projektnih i implementacionih odluka, vizuelizovanje (grafičko modelovanje), konstruisanje (generisanje koda u jeziku Java, C++ ili Visual. Basic na osnovu UML modela, kao i reverzni inženjering - rekonstrukcija UML modela na osnovu softverske implementacije) i dokumentovanje (dokumentacija arhitekture sistema i svih njenih detalja, jezik za izražavanje zahteva i testiranje, jezik za modelovanje aktivnosti pri planiranju projekata i upravljanju verzijama) tvorevina u sistemima sa intenzivnom primenom softvera. Pogodan je za modelovanje sistema od kompanijskih informacionih sistema do distribuiranih Web aplikacija i real time sistema. UML je samo jezik i čini samo deo metoda za razvoj softvera. Ne zavisi od vrste procesa iako se optimalno primenjuje u procesima u kojima su izražene korisničke funkcije, arhitektonski pristup, iterativnost i inkrementalnost. Razvijen je za objektno orijentisani razvoj informacionih sistema. UML se koristi za poslovno modelovanje, softversko modelovanje u svim fazama razvoja i za sve tipove sistema, kao i za generalno modelovanje kojim se definišu statičke strukture i dinamičko ponašanje. Predstavlja jezik za specifikaciju, konstrukciju, vizuelizaciju i dokumentovanje softverskih proizvoda. 77

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Modelovanje u UML-u

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Modelovanje u UML-u obuhvata sledeće apekte: Aspekt slučajeva korišćenja (ponašanje sistema prvenstveno sa tačke gledišta korisnika, a koristi se u analizi i testiranju). Predstavlja funkcionalnu specifikaciju sistema. Statički opis ovog aspekta daje se preko dijagrama slučajeva korišćenja, a dinamički opis se daje tekstualno ili preko dijagrama interakcije, dijagrama promene stanja ili dijagrama aktivnosti. Aspekt projektovanja (realizacija sistema). Statički opis ovog aspekta daje se preko dijagrama klasa i dijagrama objekata, dok se dinamički opis daje preko dijagrama interakcija, dijagrama promene stanja i dijagrama aktivnosti. Aspekt implementacije (hardver i datoteke preko kojih se sistem fizički realizuje). Statički opis ovog aspekta daje se preko dijagrama komponenti, a dinamički preko dijagrama interakcija, dijagrama promene stanja i dijagrama aktivnosti. Aspekt procesa (način odvijanja procesa u sistemu, "niti" procesa, konkurentnost i sinhronizacija). I za statitički i za dinamički opis koriste se isti dijagrami kao i u aspektu projektovanja, a najviše dijagrami aktivnosti. Aspekt razmeštanja (topologija sistema, računarsko-komunikaciona mreža, tj. kako su u mreži razmeštene komponente koje predstavljaju fizičku realizaciju sistema). Za statički opis se koriste dijagrami razmeštaja, dinamički opis se daje 78 preko dijagrama interakcija, dijagrama promene stanja i dijagrama aktivnosti.

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram slučajeva upotrebe

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram slučajeva upotrebe (Use-Case Diagram) Grafička ilustracija funkcionisanja sistema (statički pristup) koja prikazuje učesnike (Actors) i njihove veze sa slučajevima upotrebe (use-cases); predstavlja pogled korisnika na funkcionisanje sistema i prikazuje šta sistem radi a ne kako funkcioniše. Primer dijagrama slučajeva upotrebe 79

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram klasa (Class

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram klasa (Class Diagram) Prikazuje skup klasa, interfejsa i kolaboracija i njihovih relacija. Predstavlja statičku strukturu klasa u sistemu, klasa koje između sebe uspostavljaju relacije. Dijagram klasa se koristi da predstavi: • osnovni "rečnik sistema" (definiše pojmove koji se u tom sistemu koriste); • strukturu neke kolaboracije; • logičku šemu baze podataka. Primer dijagrama klasa 80

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram objekata (Object

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram objekata (Object Diagram) Prikazuje skup objekata i njihovih relacija u jednom trenutku vremena. Definiše tekuće stanje dijagrama klasa u nekom trenutku rada sistema (tojest stanje sistema u nekom trenutku vremena). Dijagrami objekata daju statičku strukturu za opis dinamičkog ponašanja sistema preko dijagrama interakcije. Primer dijagrama objekata 81

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram sekvenci (Sequence

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram sekvenci (Sequence Diagram) Prikazuje vremenski redosled poruka. Opisuje vreme trajanja poruke i načine na koje objekti u sistemu međusobno komuniciraju ostvarujući očekivano ponašanje – prikazuje vremensku komponentu poruka koje se prosleđuju između objekata radi izvršenja date operacije. Dijagram sekvenci predstavlja grafičku iliustraciju dinamičke interakcije u kojoj objekti komuniciraju preko sekvenci poruka. Može se prevesti u dijagram kolaboracije i obratno. sistemski dijagram sekvenci Primer dijagrama sekvenci 82

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram kolaboracije (Collaboration

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram kolaboracije (Collaboration Diagram) Prikazuje interakciju u kontekstu neke organizacije (strukture) objekata. Definiše komunikaciju i veze između objekata, neophodne za ostvarivanje komunikacije. Osim objekata i veza, prikazuje i poruke koje objekti razmenjuju u okviru očekivanog ponašanja. Opisuje strukturnu organizaciju objekata koji šalju i primaju poruke. Primer dijagrama kolaboracije 83

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram promene stanja

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram promene stanja (State Diagram) Sadrži stanje, prelaze, događaje i aktivnosti. Dijagram promene stanja je dinamički dijagram koji prikazuje sekvencu stanja kroz koje objekat prolazi tokom životnog veka reagujući na spoljne ili unutrašnje pobude. Na ovaj način, dijagrami promene stanja prikazuju reakcije sistema izazvane događajima. Dijagram promene stanja može da se prevede u dijagram aktivnosti i obrnuto. Primer dijagrama stanja 84

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram aktivnosti (Activity

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram aktivnosti (Activity Diagram) Prikazuje sekvencijalni tok aktivnosti. Sastoji se od stanja, akcija i prelaza. Služi za dinamički prikaz odvijanja poslovnih procesa. Opisuje aktivnosti koje se izvršavaju u okviru jedne operacije, tj. predstavljaju sam algoritam operacija. Dijagram aktivnosti je u stvari specijalna vrsta dijagrama promene stanja kojim se prikazuje tok od aktivnosti do aktivnosti kroz sistem. Primer dijagrama aktivnosti 85

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram komponenti (Component

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram komponenti (Component Diagram) Prikazuje fizičku strukturu korisničkog softvera (izvorni kod, binarni i exe kod). Prikazuje organizaciju i zavisnosti između komponenti. Povezan je sa dijagramom klasa, jer svaka komponenta pokazuje na jednu ili više klasa, interfejsa ili saradnji. Primer dijagrama komponenti 86

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram rasporeda (Deployment

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA UML - OBJEDINJENI JEZIK ZA MODELOVANJE Dijagram rasporeda (Deployment Diagram) Prikazuje konfiguraciju vremena procesiranja i komponente u njemu. Čvor dijagrama rasporeda obuhvata jednu ili više komponenti. Koristi se za prikaz statičkog pogleda na arhitekturu, tj. fizičku strukturu hardvera i softvera. Primer dijagrama rasporeda 87

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI CASE - Computer Aided Software Engineering Prve

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI CASE - Computer Aided Software Engineering Prve definicije CASE alata su podrazumevale sisteme izgrađene sa ciljem da definišu, integrišu i automatizuju što veći broj faza u razvoju softvera, kako bi se povećala produktivnost projektanata i skratilo vreme razvoja softvera, olakšao rad korisnicima i omogućilo lakše dokumentovanje i održavanje informacionih sistema. CASE alati 1. generacije imali su za cilj automatizaciju početnih faza (planiranja i sistemske analize) u razvoju informacionih sistema, dok noviji CASE alati (2. generacije) obuhvataju sve faze razvoja informacionog sistema, uključujući generisanje izvršnog koda (COBOL programa) i testiranje sistema. Danas se pod CASE alatima podrazumevaju softverski proizvodi koji olakšavaju planiranje, analizu, projektovanje i implementaciju informacionih sistema korišćenjem ugrađenih postupaka i sredstava. Zavisno od faza projektovanja i implementacije koje pokrivaju, CASE alati se dele na CASE alate na višem nivou (analiza sistema i projektovanje – izrada grafičkih modela kao što su dijagrami tokova podataka i dijagrami objekti-veze) i CASE alate na nižem nivou (pomoć u fazi programiranja, u formulaciji programske logike, definisanju algoritma i izradi softvera). 88

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI Uspešnim korišćenjem CASE alata se: • minimizira

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI Uspešnim korišćenjem CASE alata se: • minimizira vreme i trud (a time i troškovi) razvoja softvera; • višestruko podiže produktivnost u izradi softvera; • podiže kvalitet IS; • povećava pouzdanost softvera; • standardizuje proizvedeni softver. Prema fazi razvoja ili funkciji koju automatizuju, CASE alati se mogu podeliti na: • alate za analizu i projektovanje (koriste se za kreiranje sistemskih specifikacija, a podrazumevaju generisanje ekrana i izveštaja, kao i simulaciju i projektovanje pomoću prototipa); • alate za projektovanje baze podataka (automatizuju pojedine aktivnosti u izradi baze podataka, npr. izradu logičkog modela, generisanje šeme i sl. ); • alate za programiranje (automatizuju pojedine korake izrade i testiranja programa, dok neki omogućavaju i generisanje koda izvornog programa sa kompletnom dokumentacijom na osnovu parametara iz programskih specifikacija i rečnika podataka); • alate za održavanje softvera (namenjene za analizu, prestruktuiranje i dokumentovanje programa); • alate za upravljanje projektima (podrška funkcijama planiranja, kontrole, 89 odlučivanja i izveštavanja).

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI Razvoj CASE alata obeležen je rastom nivoa

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI Razvoj CASE alata obeležen je rastom nivoa integrisanosti, tako da se može govoriti o stvaranju CASE sistema različitih nivoa. U tom pogledu se razlikuju: • CASE Tools (alati) – softverski proizvodi koji delimično ili potpuno automatizuju pojedine zadatke životnog ciklusa razvoja informacionog sistema • CASE Toolsets (kompleti) – softverski proizvodi koji omogućavaju povezivanje rezultata pojedinih razvojnih faza • CASE Toolkits (garniture) - integrisani skupovi alata koji automatizuju pojedine faze razvoja sistema ili više faza u okviru jedne funkcije; pomoću zajedničkih interfejsa i rečnika podataka omogućavaju razmenu informacija između pojedinih funkcija • CASE Workbench (radni sto, tezga) – skup softverskih proizvoda koji podržavaju više faza životnog ciklusa softvera; koriste ih projektanti da obezbede konzistentne parametre sistema koji se pamte automatski kao deo informacionog sistema lakog za razvoj i održavanje • CASE Workstation (radna stanica) obuhvata skup alata i odgovarajućeg hardvera (najčešće personalnih računara) – sotverski proizvod sa nekoliko obejedinjenih softverskih komponenti i centralnu bazu podataka (enciklopediju) koja podržava informacioni inženjering • CASE Environment (okolina) – obezbeđuje alate za komunikaciju i izvršavanje 90 svih aktivnosti razvoja sistema, uključujući implementaciju i održavanje.

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI Funkcije CASE alata Generalno posmatrano, CASE alati

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI Funkcije CASE alata Generalno posmatrano, CASE alati pomažu u realizaciji sledećih poslova: • stvaranje okruženja za • upravljanje procesima; programiranje; • reinženjering poslovnog procesa; • upravljanje konfiguracijom; • poslovno modelovanje; • modelovanje podataka; • kartografija; • generisanje dokumenata; • dekompozicija sistema; • reverzno inženjerstvo / održavanje; • analiza, testiranje, inženjering i praćenje • testiranje; zahteva; • strukturna analiza; • specificiranje zahteva • objektno orijentisana analiza; • rapidni razvoj aplikacija (RAD); • simulacija i verifikacija analize • objektno orijentisani razvoj; • strukturni dizajn; • upravljanje projektima (Auto. PLAN); • simulacija; • dizajn softvera sa podrškom • kontrola performansi IS; • proceduralnim jezicima (Axiom. Dsn); • razvojni informacioni sistem; • strukturna analiza sa modelovanjem • administracija baze podataka; arhitekture (Axiom. Sys); • modelovanje funkcija; • generisanje programskog koda 91 • klijent / server aplikacije; (Bridge. Point Generator).

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI Klasifikacija CASE alata Pored navedene osnovne podele

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI Klasifikacija CASE alata Pored navedene osnovne podele na više i niže alate, vrše se i sledeće klasifikacije CASE alata: Horizontalna (po vremenu – fazi životnog ciklusa IS): • viši alati (namenjeni višim fazama životnog ciklusa IS: korisnički zahtevi i dizajn), • srednji alati (za srednje faze životnog ciklusa: implementacija – izrada), • niži alati (za niže faze životnog ciklusa: podrška eksploataciji); Vertikalna (po funkciji): • alati za upravljanje, planiranje i procene, • tehnički alati (realizacija), • alati za podršku projektu (skladišta, rečnici). Prema tehnici modelovanja poslovnog sistema koju podržavaju: • ER metodologija (ili proširena ER metodologija), • SSA metodologija (strukturna sistemska analiza za modelovanje funkcionalnog aspekta posmatranog sistema) – dijagrami toka podataka i funkcionalna hijerarhija odn. dekompozicija poslovnih funkcija, • objektno orijentisane metodologije, • dijagrami tranzicije stanja; 92

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI Klasifikacija CASE alata Prema filozofiji rada sa

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI Klasifikacija CASE alata Prema filozofiji rada sa alatima: • alati sa restriktivnom (ograničavajućom) filozofijom (pomažu novim korisnicima, jer ih ograničavaju na korake koje prvo moraju da izvedu, npr. najpre da nacrtaju dijagram konteksta u SSA metodologiji), • alati sa vođenom filozofijom (za korisnike višeg nivoa znanja – vode korisnika i asistiraju mu u biranju operacija), • alati sa fleksibilnom filozofijom (napredni i iskusni korisnik ima potpunu slobodu; vrše sintaksne provere interno i odmah po unosua provera konzistentnosti dizajna i sl. vrši se isključivo na zahtev korisnika); Prema broju korisnika kojima su na raspolaganju: • jednokorisnički (projekti se vode na jednom mestu; samo jedan korisnik koristi alat u jednom momentu), • višekorisnički (obezbeđuju komunikaciju i koordinaciju velikih projektnih timova – svima su dostupni planovi, specifikacije, izvorni kod i testni podaci). • Integrisani CASE alati (I-CASE, Integrated CASE) pokrivaju više vremenskih faza i više funkcija, kao i različite tehnike modelovanja poslovnih sistema. Tipičan njihov predstavnik je Oracle Designer 2000. 93

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI Struktura CASE alata Standardni CASE alat sadrži

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI Struktura CASE alata Standardni CASE alat sadrži repozitorijum (meta bazu podataka ili enciklopediju), alate za grafički prikaz, softver za obradu teksta, softverski interfejs prema repozitorijumu, softver za procenu i interfejs prema korisniku. Tipična arhitektura CASE alata 94

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI Repozitorijum je aktivan rečnik podataka koji podržava

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI Repozitorijum je aktivan rečnik podataka koji podržava definisanje različitih tipova objekata i njihovih veza. Predstavlja centralni deo CASE alata – sadrži informacije o projektu u toku, o korišćenim metodima i softverskim proizvodima, kao i o načinu njihovog korišćenja. Omogućava memorisanje modela, njihovu konkurentsku upotrebu i transformaciju modela u aplikacije. Čuva definicije modela a ne njihove grafičke prezentacije – na osnovu definicija odgovarajući alati proizvode dijagrame, uz visok nivo konzistentnosti, jer se rade na osnovu jedinstvenih definicija: npr. pri prelasku sa analize na dizajn proverava se kompletnost modela podataka i konzistentnost sa definisanim funkcijama, korišćenjem podataka iz repozitorijuma i dijagrama tokova podataka. Modul za grafičku obradu (ulaznu specifikaciju) čini skup jezika za specifikaciju, grafičkih alata i menija. Omogućava izradu različitih tipova dijagrama (najčešće modela podataka objekti – veze i modela procesa preko dijagrama tokova podataka), kao i ocenu kompletnosti dijagrama na osnovu unapred definisanih pravila. Alat za obradu teksta omogućava definisanje naziva, sadržaja i detalja stavki u repozitorijumu. 95

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI Modul za transformaciju u radni softver sadrži

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA CASE ALATI Modul za transformaciju u radni softver sadrži algoritme za projektovanje baze podataka i generisanje koda; algoritmi za logičko projektovanje baze podataka vrše transformaciju modela objekti – veze u relacioni model; algoritmi za fizičko projektovanje definišu strukturu slogova i njihovo povezivanje, kao i pristupne metode, indeksiranje i sl. ; kvalitetniji CASE alati podržavaju i automatsko generisanje COBOL koda iz detaljnih specifikacija sistema, a neki iz definisanog modela objekti – veze automatski generišu SQL kod; kod mnogih CASE alata omogućena je i inverzna transformacija - dobijanje modela objekti – veze i dijagrama tokova podataka iz izvornog COBOL koda; prateća funkcija je i korisnički interfejs – interpreter koji određuje formu podataka koji se unose (grafika ili tekst). Omogućava interaktivnu ili off-line obradu posredstvom ekrana i izveštaja. Analizator je ekspertni deo CASE alata. On vrši verifikaciju sistema (projektanti mogu da ocene valjanost specifikacije sistema, analizirajući ulaze u dijagram i u repozitorijum, utvrđujući njihovu leksičku kompletnost i proveravajući kompatibilnost sa ostalim objektima u aplikaciji). 96

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA DIZAJN APLIKACIJA VOĐENIH DOGAĐAJIMA U aplikacijama sa grafičkim korisničkim

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA DIZAJN APLIKACIJA VOĐENIH DOGAĐAJIMA U aplikacijama sa grafičkim korisničkim interfejsom (GUI), ne može se predvideti sve što korisnik može da uradi (malo je verovatno da će korisnik raditi kao sa hijerarhijskim menijem, već će pre otvoriti više prozora sa različitim programima i prelaziti sa jednog u drugi prema trenutnim potrebama). Više programa je u isto vreme aktivno i sistem ne može da predvidi koja će funkcija biti aktivirana u sledećem trenutku. Jedini način da se omogući takav nasumični rad jeste programiranje aplikacija vođenih događajima, u jeziku koji to podržava. Ipak mora postojati izvestan stepen hijerarhije, negde mora biti početak aplikacije, ali je to potrebno samo pri pokretanju aplikacije. Iza toga aplikacija otvara svoj prozor – ekran sa menijima i dugmadima i čeka da korisnik nešto uradi. Od tada dalji događaji postaju nepredvidljivi, ali program mora da obradi sve što se bude dogodilo. To se postiže izgradnjom određenog broja međusobno nezavisnih blokova programskog koda, tesno povezanih sa kontrolnim objektima na ekranu (npr. dugmadima) i događajima koje uzrokuje korisnik. Svakom događaju za koji programer želi da definiše odgovarajuću obradu pridružen je blok programskog koda (script) koji čeka poziv za izvršavanje. 97

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA KLIJENT / SERVER ARHITEKTURA U tradicionalnim sistemima programeri su

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA KLIJENT / SERVER ARHITEKTURA U tradicionalnim sistemima programeri su morali da detaljno poznaju fizičku prirodu datoteka koje su obrađivali. S pojavom baza podataka veliki deo upravljanja podacima na niskom nivou (pre svega brigu o tome gde i kako se na disku upisuju podaci) preuzeo je SUBP. Razvojem SQL-a (Structured Query Language) došlo se do standardnog jezika koji je trebalo da razumeju svi SUBP i koji bi se koristio u svim programskim jezicima. Bez obzira na česta odstupanja raznih proizvođača od standardnog SQL-a, ipak se može reći da je danas SQL "lepak" koji u klijent / server okruženju spaja aplikacije sa bazama podataka. Osnovna ideja koncepta klijent / server arhitekture je da svaka komponenta sistema obavlja onaj deo posla za koji je najpodesnija (npr. PC-i rade grafiku a centralni računar održava i pretražuje veliku zajedničku bazu podataka). Aplikacija se može podeliti na segmente koji se istovremeno izvršavaju na različitim hardverskim platformama. Taj koncept je poznat kao kooperativna obrada (cooperative processing). Razdvajanje funkcija u aplikaciji je podela aplikacije (application partitioning). Model klijent / server arhitekture razvijen u firmi "Gartner Group" deli aplikaciju na tri osnovna dela: komponentu za prikaz podataka, funkcionalnu komponentu i 98 komponentu za upravljanje podacima.

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA KLIJENT / SERVER ARHITEKTURA Struktura tipične aplikacije prema modelu

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA KLIJENT / SERVER ARHITEKTURA Struktura tipične aplikacije prema modelu "Gartner Group" 99

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA KLIJENT / SERVER ARHITEKTURA Dvoslojna klijent / server arhitektura

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA KLIJENT / SERVER ARHITEKTURA Dvoslojna klijent / server arhitektura 100

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA KLIJENT / SERVER ARHITEKTURA U modelu sa distribuiranom prikazivačkom

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA KLIJENT / SERVER ARHITEKTURA U modelu sa distribuiranom prikazivačkom komponentom ("lak klijent, težak server") i klijent i server vrše prikaz podataka, sve ostalo radi server; računari klijenata su jeftini. Model sa udaljenim upravljanjem podacima ("težak klijent, lak server") daje serveru samo pretraživanje podataka i upravljanje bazom podataka, dok klijent vrši manipulisanje i formatiranje podataka za prikaz na ekranu; jezik za sporazumevanje je najčešće SQL. Da bi se u praksi povezale raznorodne komponente, koristi se poseban posrednički (middleware) softver, uz standarde koji olakšavaju povezivanje. 101

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA KLIJENT / SERVER ARHITEKTURA Posrednik, slojevi softvera između okruženja

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA KLIJENT / SERVER ARHITEKTURA Posrednik, slojevi softvera između okruženja klijenata i okruženja servera 102

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA KLIJENT / SERVER ARHITEKTURA Model firme "Gartner Group" opisuje

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA KLIJENT / SERVER ARHITEKTURA Model firme "Gartner Group" opisuje dvoslojnu klijent / server arhitekturu. Troslojne i n-slojne arhitekture dele aplikacije na više delova a ne samo na stranu klijenta i stranu servera. Deo obrade koji obavlja aplikacija može biti dodeljen jednom ili većem broju dodatnih servera – raspoređivanje aplikacije na više platformi predstavlja distribuiranu obradu. U troslojnoj klijent / server arhitekturi se između aplikacije klijenta i servera baze podataka umeće jedan dodatni server. Cilj je zaštita servera od opterećenja velikim brojem zahteva klijenata, posebno kad su u pitanju složeni upiti u bazu podataka, obimna izračunavanja ili sumiranje iz velikih baza podataka. Primer dodatnog servera je skladište podataka (data warehouse). Skladište podataka često raspolaže sopstvenim sažetkom detaljnih podataka koji se nalaze na glavnom serveru, pa upiti radi donošenja poslovnih odluka, izveštaji i sl. ne tangiraju glavni server. To daje bolje performanse aplikacija i brži rad, kompenzujući dupliranje podataka. Server aplikacija (application server) preuzima delove aplikacije koji se ne bi mogli izvršavati na prosečnom računaru klijentu ili bi nepotrebno opteretili glavni server. Preuzima od klijenta zahteve za složenijim obradama i kad ih završi vraća klijentu rezultate. 103

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA KLIJENT / SERVER ARHITEKTURA Troslojna arhitektura 104

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA KLIJENT / SERVER ARHITEKTURA Troslojna arhitektura 104

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA KLIJENT / SERVER ARHITEKTURA U klijent / server okruženju

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA KLIJENT / SERVER ARHITEKTURA U klijent / server okruženju serverom se može nazvati sve što na nezavisan i dosledan način može da odgovori na zahtev koji stiže sa udaljenog izvora. Pored servera baze podataka, serveri mogu biti: • komunikacioni serveri (obrađuju podatke za faks i elektronsku poštu u mreži); • serveri štampača (upravljaju štampačima i zahtevima za štampu koji stižu iz aplikacija); • serveri aplikacija (brzi i jaki računari, specijalizovani za numeričku obradu). U PC okruženju (posebno sa OLE – Object Linking and Embedding standardom) server označava i specijalizovanu za neke obrade (npr. grafiku, multimediju, unakrsna tabeliranja i sl. ) koja se može pozvati iz aplikacije koju programiramo, što je bolje nego da programiramo funkcije za koje već postoje specijalizovani softveri. Troslojna arhitektura (Three-Tier-Architecture) podržava objektno orijentisani razvoj velikih klijent/server sistema. Microsoftov troslojni model razvoja aplikacija podržava kreiranje velikih i kompleksnih klijent/server aplikacija. Namera troslojnog modelovanja je da podrži snažniji vid objektno orijentisanog modelovanja, dizajna i programiranja nego ranije. Taj pristup je poznat kao arhitekturom-pokretani, iterativni proces razvoja. Osnova je pristup sa troslojnom arhitekturom, koji podrazumeva kreiranje višeslojne arhitekture softvera. 105

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA THE END 106

NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA THE END 106