U ovom trenutku umemo da razumemo suštinu baze podataka u jednom informacionom sistemu. Bez nje, sistem ne bi imao mogućnost da čuva informacije. Pored toga, baza nije jedino što čini jedan sistem - ona je samo njegov izvor podataka. Međutim, tu postoje i druge komponente: aplikacije, poslovna logika, vizualizacija i sl. Ove komponente (pomenuli smo to u prvoj lekciji) se obično nalaze na zasebnim logičkim nivoima, što omogućava laku manipulaciju i portabilnost. U ovoj lekciji, skrenućemo malo sa kursa samog MySQL servera i stati jednom nogom na teritoriju projektnog menadžmenta.
Da bi jedan ozbiljan projekat zaživeo, neophodno je da prođe kroz nekoliko faza: fazu sakupljanja informacija, fazu predviđanja, fazu planiranja, razvojnu fazu, fazu stabilizacije i fazu uvođenja. Ovo je klasičan redosled faza menadžmenta u projektovanju poslovnog rešenja, ali mi, naravno, nećemo pokušati da u nekoliko strana, sažmemo celokupan menadžment, već ćemo preuzeti komponente koje su nam neophodne da bi naš sistem zaživeo. Zapravo, obradićemo samo tri dela kreacije projekta: sakupljanje informacija, predviđanje i planiranje.
Faza sakupljanja informacija
Ovo je početak našeg rada na projektu. Pre nego što sagledamo kako ćemo nešto uraditi, potrebno je prvo da vidimo šta uopšte treba da uradimo. To ćemo najbolje učiniti sakupljanjem što više neophodnih informacija.
Postoje okvirno dve situacije u kojima možemo da se zateknemo kada pristupimo nekom projektu. Jedna je ona u kojoj treba da napravimo potpuno nov projekat, a druga ona u kojoj treba da napravimo nadogradnju ili rekonstrukciju nekog već postojećeg projekta. U oba slučaja ćemo imati neku strategiju za dobavljanje informacija.
Recimo da je sistem koji treba da napravimo informacioni sistem neke firme, sasvim nov, od početka do kraja. Već iz razgovora sa osobom koja će nam prezentovati ideju projekta, moći ćemo da izvučemo veliki postotak informacija. Na primer:
„Naša firma postoji od 2000. godine i ima 500 zaposlenih, koji rade u pet različitih sektora. Plate su između 20 i 100 hiljada. Posedujemo 50 vozila, kojima radnici posećuju dnevno preko 150 klijenata kojima nude naše proizvode. Mi imamo desetine različitih vrsta proizvoda u hiljadama primeraka”.
Ove rečenice, sadrže mnoštvo korisnih informacija za naš budući sistem:
Iz ovih informacija, već možemo izvući i osnovni nacrt baze podataka sistema:
Recimo sada da je naš klijent zatražio i sledeće:
Iz ova dva zahteva, vidimo da će aplikacije biti web aplikacija ili mešano, web i desktop, ali da, svakako, ne može biti samo desktop aplikacija, kao i to da će sistem morati da sadrži dobru bezbednost jer će radnici pristupati poverljivim sadržajima putem Interneta. Takođe, potrebno je da aplikacija ima i sajt, pa se pored pomenutog dovodi u „igru” i vizualizacija.
Recimo da nam je ovo dovoljno informacija za početak druge faze kreiranja projekta (iako će, u stvarnosti, projekti biti mnogo veći, a zahtevi klijenta biće sadržani na desetinama strana, a ne u nekoliko redova).
Faza predviđanja
Pošto sakupimo sve informacije, ostaje da „sklopimo kockice” i vidimo „na čemu smo”.
Znamo sledeće:
Ovakvih konstatacija će takođe biti mnogo u nekoj ranoj fazi projekta. To je trenutak kada bi trebalo da što više elemenata uzmete u obzir, jer, kada jednom napravite predviđanje i prezentujete ga klijentu, a on ga prihvati, teško ćete posle objasniti izmene u rokovima ili zahtevanim resursima (ceni).
Na osnovu tih informacija i realnih mogućnosti svog tima (ili sopstvenih), predviđamo, i kao što smo pomenuli, prezentujemo predviđanje. U idealnim uslovima, u međuvremenu, faza planiranja može već da traje.
Kao krajnji rezultat, faza predviđanja nosi:
Ova faza je logički naslednik faze predviđanja. Ali najčešće ne postoji jasna granica između njih. Ono što se u fazi planiranja događa, jeste planiranje razvoja komponenti definisanih u fazi predviđanja, ali, ovog puta, mnogo detaljnije.
Ova faza će, kao rezultat, ostaviti dijagrame, specifikacije projekta, planove projekta.
U planiranju, razlikujemo tri projektne celine: konceptualno, logičko i fizičko projektovanje. Pri tom, ove celine su interaktivne, odnosno, konceptualni projekat utiče na logički itd. Sve tri celine se odvijaju paralelno sa najčešće zajedničkom početnom i krajnjom tačkom.
U finalnoj tački ove faze, očekuju se funkcionalna specifikacija, glavni plan i glavni raspored projekta, kao i dokument za procenu rizika.
Funkcionalna specifikacija treba da sadrži sve ono na osnovu čega ćemo kreirati određeni projekat. Možemo je shvatiti kao veoma detaljnu skicu projekta, sa razdvojenim konceptualnim, logičkim i fizičkim dizajnom i standardima koji će biti poštovani u okviru projekta.
Konceptualni dizajn podrazumeva tehničke detalje o svim komponentama sistema: koja će se arhitektura koristiti, koja će biti primarna tehnologija za rad, na kojoj platformi će se sistem izvršavati, koji će jezici biti korišćeni u izgradnji projekta, koji će biti skript jezici za manipulaciju finalnim proizvodom...
Logički dizajn čine sve komponente sistema, logički rešene i uzajamno funkcionalne. Na primer, ako sistem podrazumeva web aplikaciju, moramo imati rešenje za server, strukturu aplikacije, koordinaciju aplikacije sa drugim aplikacijama, koordinaciju aplikacije sa bazom, koordinaciju aplikacije sa krajnjim korisnikom, administratorom...
Proces logičkog dizajniranja će rezultirati mnoštvom šema i dijagrama: logičkih nacrta baze, dijagrama slučajeva korišćenja, sekvencijalnih dijagrama...
Fizički dizajn je veoma sličan logičkom, osim što se u ovom slučaju problem sagledava kroz aspekt razvoja, a ne projektovanja. Rezultat ove komponente funkcionalne specifikacije su detaljne informacije. Šeme baze su detaljno opisane, sa tipovima i relacijama, dijagrami su precizni i eksplicitni...
Proces planiranja sa funkcionalnom specifikacijom kao rezultatom, poslednja je faza u kojoj se još uvek ne radi „konkretno“ i zato ćemo se ovde zaustaviti.
Hipotetički, projekat je moguće stvoriti i bez jednog jedinog napisanog slova pre ulaska u njegovu razvojnu fazu. Ali, osim ukoliko je u pitanju projekat na nivou porodične baze kućnih ljubimaca ili kulinarskih recepata, ne očekujte da ćete ga uraditi „napamet“.
Osim toga, kvalitetna priprema projekta, karakteristika je profesionalizma u softverskom inženjerstvu, a projekat koji sa sobom nosi i adekvatan menadžment, ima uvećane šanse za uspeh.
Pošto se ovaj kurs tiče administracije i programiranja MySQL server-a, koje ne mora podrazumevati i projektni menadžment, nećemo vas opterećivati pitanjima iz ove lekcije u testovima po modulu. Ipak, preporučujemo njeno poznavanje, kao i poznavanje sličnih sadržaja iz drugih izvora, jer je projektni menadžment zasigurno stepenica na koju ćete pre ili kasnije naići baveći se ovim poslom.
Najvažnije iz lekcije:
Problem:
Potrebno je napraviti specifikaciju projekta veb aplikacija za distribuciju kancelarijskog materijala.
Rešenje:
Osnovna specifikacija:
Naziv sistema:
Veb aplikacija za distribuciju kancelarijskog materijala
Tehnologije sistema:
Arhitektura sistema:
Sistem će imati arhitekturu sa dva fizički odvojena sloja:
Opis sistema:
Sistem treba da sadrži veb aplikaciju koja će prezentovati korisnicima raspoloživi kancelarijski materijal koji firma ima u ponudi. Svi podaci o artiklima smeštaju se u bazu podataka. Svaki artikal mora sadržati maloprodajnu i veleprodajnu cenu, boju, podatke o količini itd.
Da bi korisnik mogao da pregleda artikle, mora biti registrovan i ulogovan na sistem. O svakom registrovanom korisniku pamte se podaci: korisničko ime, šifra, datum registracije, itd...