Transcript PROJEKTOVANJE INFORMACIONIH SISTEMA
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
PROJEKTOVANJE INFORMACIONIH SISTEMA
ANALIZA POSLOVNIH PROCESA
Odre đivanje ciljeva Ciljevi poslovanja Organizacija poslovanja Procesi poslovanja Definisanje procesa u Aplikativni programi poslovanju Definicija (klasa) podataka Top Down pristup Definisanje BP Definicija Bottom Up arhitekture pristup Planiranje izgradnje IS Dizajn (izgradnja) IS
Primena Top-Down / Bottom – Up principa
3
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 Tok podataka Skladište podataka korišćeni simboli 4
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) Interfejs1 TokPodataka1 Skladi šte2 Skladi šte1 Interfejs2 TokPodataka2 Interfejs1 TokPodataka1 Proces1 Skladi šte2 Skladi šte1 TokPodataka2 Proces2 Interfejs2 5
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 TokPodataka1 Interfejs1 TokPodataka1 Proces1 Proces2 Interfejs1 TokPodataka1 Proces1 Proces2 6
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 DIJAGRAMA TOKOVA PODATAKA
Spoljni Tok pod. 1 Proces A1 Tok pod. 6 Spoljni objekat 1 objekat 2 Tok 2 Tok 3 Tok 5 Proces B2 Tok 4 Skladi šte podataka Dobavlja č Faktura dobavlja ča Provera faktura Proverena faktura Knjigovodstvo Narud žbenica dobavlja ču 8
PROJEKTOVANJE INFORMACIONIH SISTEMA
ANALIZA POSLOVNIH PROCESA
IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) DIJAGRAM DEKOMPOZICIJE SISTEMA
0 - sistem 1 2 3 4 1.1 1.2 1.3 2.1 2.2 2.3 3.1 3.2 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 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 mini specifikacija 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
ni žim nivoima.
od nivoa prvog pojavljivanja moraju se pojavljivati na svim 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 DIJAGRAMA KONTEKSTA
Dokument z a prijemni ispit Izvestaj o p rijemnom i spitu Dokument z a u pis Ispitna p rijava
IS Studentske sluzbe
Spisak z a p rijemni i spit Rezultati p rijemnog i spita Nastavne g rupe
Student
Studentski z ahtev Studentsko u verenje Ispitni s pisak Rezultati i spita
Nastavnik
11
PROJEKTOVANJE INFORMACIONIH SISTEMA
ANALIZA POSLOVNIH PROCESA
IZRADA DIJAGRAMA TOKA PODATAKA (po SSA metodu) PRIMER ROOT DIJAGRAMA
Dokument za prijemni ispit Izvestaj o prijemnom ispitu
1. Upis
Spisak za prijemni ispit Rezultati prijemnog ispita Nastavne grupe Dokument za upis Kadrovska evidencija Dosije studenta
Student
Ispitna prijava Studentski zahtev Studentsko uverenje
2.
Obrada ispita
Ispitni spisak Rezultati ispita Nastavni plan Dosije studenta*
3.
Izdavanje uverenja Nastavnik
12
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
1.4.
Izve štavanje kandidata
Dokument za upis
1.5.
Upis godine 1.3.
Obrada rezultata prijemnog
Rezultati prijemnog ispita
Nastavnik
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 DEKOMPOZICIJE PROCESA 2 (OBRADA ISPITA) – primitivni procesi
Kadrovska evidencija Nastavni plan
Student
Ispitna prijava
2.1.
Evidentiranje ispitnih prijava
Ispitni spisak
Nastavnik
Spisak ispitnih prijava 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 DEKOMPOZICIJE PROCESA 3 (IZDAVANJE UVERENJA) – primitivni procesi Student
Zahtev za status Uverenje o upisu
3.1
Izdavanje uverenja o statusu
Dosije studenta Nastavni plan Zahtev za polo žene ispite Uverenje o polo ženim ispitima
3.2.
Izdavanje uverenja o polo ženim ispitima
15
NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA
Kraj repetitorijuma 16
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
Ž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 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
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 postojećeg sistema.
21
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
postojećeg sistema) (Svrha: Opisati postojeći sistem, pri čemu treba precizno naznačiti otkrivene probleme i/ili nedostatke; Rezultat: Opis
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 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 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 informacionih sistema
25
NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA
ŽIVOTNI CIKLUS RAZVOJA SOFTVERA (SDLC)
U suštini, životni ciklus razvoja informacionih sistema (SDLC) je proces iterativne prirode. V eoma č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 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 što nije dobro zamišljeno u fazi izrade koncepta. 27
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 ž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,
5.
slabih strana i rizika; (2) definicija zahteva za drugi prototip; (3) planiranje i dizajn drugog prototipa; (4) konstruisanje i testiranje drugog prototipa.
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 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
31
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) 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) MODEL
Aktivnosti u "Build-And-Fix" modelu razvoja
34
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 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 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 Application Development - RAD)
Faze u RAD životnom ciklusu
38
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 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 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 Application Development - RAD) Struktura razvojnog ciklusa u RAD konceptu: 1. Planiranje zahteva
finiširanje zahteva)
2.
(istraživanje tekuće situacije; definisanje zahteva;
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 ciklus razvoja sistema
43
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 iterativni životni ciklus razvoja sistema
45
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
:
Tip I Tip II
prototip, zasnovan na
iterativnom modelu
prototip, koncipiran na
prolaznom modelu
, ("iterative model"); , ("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 4GL 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 – 4GL.
47
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
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 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 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
: • 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 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 (4GL), 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 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 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) 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
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) • 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.
pristupa:
58
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 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
sa podacima, kao i (metode) koje opisuju kako se klasa ponaša i šta radi
podatke
(svojstva –
properties
, odn. atribute –
attributes
).
• • •
Osobine klasa: nasleđivanje
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
(inheritance – opisuje način na koji klasa može da nasledi (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 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 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 ciklusa
63
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 orijentisanog razvoja informacionih sistema
65
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 IDEF0) 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 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 (
izrada dijagrama slučajeva upotrebe) definisanje učesnika; definisanje slučajeva upotrebe; definisanje tipova veza između učesnika 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
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 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 klasa
(definiše se potpun dijagram klasa sa detaljno specificiranim atributima, asocijacijama 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, uzoraka i aplikativnih kostura
paketa
(definisanje za organizovanje elemenata za modeliranje u veće celine kojima će se manipulisati kao sa grupom;
saradnja
njihove interakcije;
uzorak
predstavlja konceptualni skup elemenata i 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 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
kreiranje šeme baze podataka); (analiza fizičke baze podataka – prevodi logički objektni model u fizički relacioni model koji se koristi za
- 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, konverziju podataka, izradu programskih interfejsa i sl.).
72
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 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 (n
(međusistemski interfejsi, otklanjanje uskih grla u mreži). ekad nam treba jednostavan izvršivi model korisničkog interfejsa, nekad se mora ići do nivoa bitova
Najbolji modeli su u vezi sa realnošću (n
pr. 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
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
- 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
sastavljanje i stavljanje u pogon fizičkog sistema.
Prikaz raspoređenosti sistema
obuhvata komponente i datoteke za obuhvata čvorove koji čine hardversku topologiju sistema 76
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 VisualBasic 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
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
preko
dijagrama klasa
(realizacija sistema). Statički opis ovog aspekta daje se 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
(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 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 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 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 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
(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 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 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 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 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 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, odlučivanja i izveštavanja).
89
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 svih aktivnosti razvoja sistema, uključujući implementaciju i održavanje. 90
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 programiranje; • upravljanje konfiguracijom; • modelovanje podataka; • generisanje dokumenata; • reverzno inženjerstvo / održavanje; • testiranje; • strukturna analiza; • objektno orijentisana analiza; • simulacija i verifikacija analize • strukturni dizajn; • simulacija; • kontrola performansi IS; • razvojni informacioni sistem; • administracija baze podataka; • modelovanje funkcija; • klijent / server aplikacije; • upravljanje procesima; • reinženjering poslovnog procesa; • poslovno modelovanje; • kartografija; • dekompozicija sistema; • analiza, testiranje, inženjering i praćenje zahteva; • specificiranje zahteva • rapidni razvoj aplikacija (RAD); • objektno orijentisani razvoj; • upravljanje projektima (AutoPLAN); • dizajn softvera sa podrškom • proceduralnim jezicima (AxiomDsn); • strukturna analiza sa modelovanjem arhitekture (AxiomSys); • generisanje programskog koda (BridgePoint Generator).
91
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 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 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
CASE ALATI
NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA
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
repozitorijumu.
omogućava definisanje naziva, sadržaja i detalja stavki u 95
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 izveštaja.
inverzna transformacija korisnički interfejs
- dobijanje modela objekti – veze i dijagrama tokova podataka iz izvornog COBOL koda; prateća funkcija je i – interpreter koji određuje formu podataka koji se unose (grafika ili tekst). Omogućava interaktivnu ili off-line obradu posredstvom ekrana i
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 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 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 komponentu za upravljanje podacima.
98
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
100
NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA
KLIJENT / SERVER ARHITEKTURA
U
modelu sa distribuiranom prikazivačkom komponentom
težak server") i klijent i server vrše prikaz podataka, sve ostalo radi server; računari klijenata su jeftini.
("lak klijent,
Model sa udaljenim upravljanjem podacima
sporazumevanje je najčešće SQL.
("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 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 klijenata i okruženja servera
102
NAPREDNI METODI PROJEKTOVANJA INFORMACIONIH SISTEMA
KLIJENT / SERVER ARHITEKTURA
Model firme "Gartner Group" opisuje
dvoslojnu klijent / server arhitekturu
.
Troslojne i n-slojne arhitekture
više platformi predstavlja 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
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
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