Analiza projektne naloge in koncepta izvedbe je potekala v naslednjih korakih:
1. V začetni fazi projekta smo izvedli podrobno analizo projektne naloge znotraj širše projektne ekipe. Določili smo interni plan razvoja po časovni in funkcionalni osi. 2. S pomočjo zunanjih svetovalcev smo analizirali problematiko jalove energije v velikih elektroenergetskih omrežjih. 3. Izvedli smo podrobno analizo nabora signalov nadzornega sistema, ki pridejo v poštev kot vhodni podatki za optimizacijo v realnem času.
Priprava zahtev za programsko opremo
1. Projektna naloga projekta obsega tako področje raziskav v energetiki, uporabo naprednih matematičnih algoritmov kot tudi možnost komercializacije sistema in produktni razvoj programske opreme. Pri pripravi podrobnih zahtev smo skušali poskrbeti za vsa navedena področja. Določili smo okvire, ki jih moramo upoštevati skozi celotno fazo razvoja. - Sistem je namenjen delovanju v območju kontrolne sobe / nadzornega centra.
- Izvedba mora biti modularna in primerna za integracijo v obstoječa okolja.
- odprt vmesnik za povezavo z predvidenimi viri podatkov - možnost delovanja v ozadju brez grafične prezentacije – integracija razultatov izračunov v obstoječe uporabniške vmesnike - Določitev programske platforme in razvojnih orodij.
- Glede na predviden modularen in k integraciji usmerjen produkt je potrebno izvajalsko platformo zasnovati tako, da bo omogočala integracijo z čim širšim naborom obstoječih okolij, hkrati pa mora v kritičnih segmentih podpirati izbiro najučinkovitejše tehnologije, neodvisno od okolja. Te zahteve v zadostni meri izpolnjuje heterogen sistem, ki v večini sloni na uveljavljeni platformi Java, za kritične funkcije pa dovoli vključitev modulov, ki so neposredno optimirani za izbrano strojno okolje oz. operacijski sistem. - V skladu z izbiro izvajalne platforme smo določili tudi dovoljen nabor programskih jezikov: Java v 1.5+, C++/STL, Scala v2.8, XML - V skladu z zgornjimi navedbami smo določili tudi ustrezen nabor razvojnih okolij: Eclipse Java/C++, Microsoft VisualC++ 2008, GNU GCC v.4.5.0 - Produkt moramo tehnično in marketinško klasificirati in s primerjalno analizo nazorno demonstrirati njegov doprinos k funkcionalnosti glede na znane obstoječe sisteme.
2. Postavitev internega centra za obdelavo podatkov - Osrednji modul predvidenega programskega paketa bo v funkciji ekspertnega sistema uporabljen za podporo odločanju v realnem času. Zato je med celotnim razvojem programske opreme potrebno preverjati časovno komponento obdelav podatkov. V ta namen smo se po analizi možnosti na osnovi tehničnih in ekonomskih kriterijev odločili za postavitev t.i. privatnega računalniškega oblaka. Tak sistem bo omogočil poljubno natančno nastavljanje procesorske moči testnega sistema.
- Izvedli smo analizo ponudbe na področju programske opreme za virtualizacijsko platformo oblaka. Glede na izkušnje članov razvojne ekipe in ocene v internetni javnosti smo v prvi fazi izbrali platformo Eucalyptus 2.0 v različici EUC (Ubuntu Enterprise Cloud).
- Strojna oprema oblaka v prvi fazi obsega tri računalniške sistema – strežnike:
- 1 Frontend/Storage: AMD x4 CPU/4GB RAM/2x 1TB disk/GB eth - 2 Cloud Node: AMD x6 CPU/8GB RAM/350GB disk/GB eth Trenutna konfiguracija torej omogoča dinamično prilagajanje sistema v območju 1 do 16 procesorskih jeder in od 1 – 16 GB RAM. - Računalniški oblak omogoča instantno skaliranje računske moči testnega sistema in prestavlja prihodnost visoko zmogljive obdelave podatkov v civilni sferi. V tem kontekstu postane zanimiv tudi kot potencialna izvajalska platforma za predvideni produkt.
3. Priprava spletnega okolja za kolaboracijo raziskovalcev Razvoj programske opreme z geografsko porazdeljeno ekipo zahteve uporabo specialnih orodij, ki z uporabo sodobnih komunikacijskih pristopov omogočajo transparentno povezavo cele ekipe ne glede na trenutno fizično lokacijo članov. V tem okviru smo postavili privatno, zaščiteno in globalno dostopno projektno razvojno okolje, ki ga sestavljajo integrirani namenski sistemi: - Sistem za on-line projektno sodelovanje:
- za sprotno sledenje izvajalnemu ciklu projekta smo postavili sistem za projektno podporo, ki omogoča planiranje, spremljanje izvajanja in poročanje o dogodkih. Glede na pretekle izkušnje smo v ta namen izbrali spletno programsko orodje Redmine, ki poleg številnih vgrajenih funkcij omogoča tudi prosto prilagajanje funkcij: - online dokumentacija. - razdeljevanje nalog, - časovno in vsebinsko spremljanje izvajanja nalog. - forumi in - sistemsko urejeno obveščanje o dogodkih na projektu. - Sistem za vodenje različic izvorne kode
Kljub širokemu izboru sistemov in hitremu razvoju na tem področju smo se odločili za postavitev strežnika Subversion, s katerim imajo člani ekipe že dolgoletne izkušnje. - Sistem za sprotno prevajanje in testiranje kode
Uporaba ločenega neodvisnega sistema za prevejanje in testiranje programske kode je nujna za zagotavljanje kvalitete dela pri projektih, ki jih izvajajo geografsko in časovno porazdeljene ekipe. < nazaj |