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.

  

Faze u kreaciji projekta

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:

  1. Pogledajmo imenice u rečenici: firma, zaposleni, sektori, plate, vozila, klijenti, proizvodi. Svaka od ovih imenica biće na kraju jedan entitet našeg sistema.
  2. Pogledajmo sada glagole: radnici rade, radnici posećuju klijente, radnici primaju plate, nude. Ovi glagoli će se definitivno pretvoriti u neke funkcionalnosti.
  3. Konačno, brojevi iz ove rečenice nagoveštavaju veličine koje će nam biti potrebne za podatke.


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:

  • Da deo sistema bude dostupan samo u okviru firme (intranet), a deo i na Internetu (samo za zaposlene).
  • Da firma ima i prezentaciju na Internetu koja će kreirati sadržaj od podataka iz same baze firme (na primer, prodaja proizvoda).


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:

  • Naša baza će biti prilično mala (broj zaposlenih ne raste brzo, broj proizvoda se meri desetinama...).
  • Arhitektura bi trebalo da bude podeljena u nekoliko slojeva jer postoje različiti konteksti sistema (rukovanje sa informacijama, web prezentacija, web aplikacija za zaposlene...), a samim tim i njegove različite celine.
  • Usko grlo sistema će biti izlaz na Internet jer se očekuje pristup radnika putem Interneta, a pored toga i pristup anonimus korisnika web prezentaciji firme.


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:

  •  postavku problematika projekta
  •  resurse projekta
  •  strukturu projektog tima
  •  procene rizika
  •  ...

  

Faza planiranja

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:

  1. Faze u kreaciji projekta su faza sakupljanja informacija, faza predviđanja, faza planiranja, razvojna faza, faza stabilizacije i faza uvođenja.
  2. U fazi sakupljanja informacija, preuzećemo različite informacije sa različitih izvora, bitne za projekat.
  3. Faza predviđanja rezultira: postavkom problematika projekta, resursima projekta, strukturom projektnog tima i procenama rizika.
  4. Kada se u fazi predviđanja konstatuju detalji o projektu (rok i sredstva) teško se posle toga menjaju.
  5. Faza planiranja rezultira funkcionalnom specifikacijom.
  6. Funkcionalna specifikacija se deli na tri dela: konceptualni, logički i fizički dizajn projekta.
  7. Konceptualni dizajn podrazumeva tehničke komponente sistema.
  8. Logički dizajn podrazumeva logičku postavku sistema.
  9. Fizički dizajn čini kompletno tehničko rešenje svih komponenti sistema, sa preciznim opisom svih njegovih elemenata i akcija.

Vežba

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:

  • Server
    • Linux, Slackware
       
  • Baza podataka
    • MySQL server
       
  • Web sever:
    • Apache
       
  • Serverski skript jezik
    • PHP
    • 

Arhitektura sistema:
Sistem će imati arhitekturu sa dva fizički odvojena sloja:

  • Posvećeni server za bazu podataka
    • OS - Linux Slackware
    • MySQL 5.3
       
  • Posvećeni server za web aplikaciju
    • OS - Linux Slackware
    • Apache Web Server 2.x
    • 

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...

Dodaj komentar Sviđa mi se - (0) Ne sviđa mi se - (0)    

  • Kreiranje projekta 1
  • Kreiranje projekta 2
  • Kreiranje projekta 3