Na analýze systému náš tím pracoval počas doby dvoch mesiacov. Analýza bola zameraná na štruktúru systému, ktorú sme považovali za zdroj problémov.
V štruktúre systému sme zistili nedostatky:
Tieto nedostatky mali negatívny vplyv na realizovaný proces v organizácií. Vytvorenie nového grantového programu bolo spojené s troma zbytočnými procesmi:
Variabilita dát
Pre relačné databázy je povinná pevná a nemenná štruktúra dát a preto nie je jednoduché navrhnúť systém v ktorom by existovalo viacero variácií jednej tabuľky bez zbytočnej duplicity dát.
Nedostatok: Pôvodná aplikácia obsahovala len jednu tabuľku na ukladanie dát a dáta boli ukladané vo formáte XML v jednom stĺpci. Podľa zaužívaných štandardov takéto riešenie nie je vhodné. Formát XML nie je určený na uchovávanie dát.
Riešenie: Naším riešením je tvorba tabuliek, ktoré obsahujú metadáta, t.j. dáta o dátach. Pomocou metadát je možné meniť, vytvárať a upravovať štruktúru jednotlivých tabuliek a tým aj programov. Prínosom riešenia je:
Spracovanie XML
XML súbory, ktoré sa nachádzajú v databáze je potrebné spracovať. Spracovanie prebieha nasledovne – prijímanie dát z databázy, analýza štruktúry XML a uloženie dát z XML do štruktúr v zdrojovom kóde.
Nedostatok: Spracovanie XML prebiehalo prostredníctvom nástroja „serializéru“. Nevýhodu predstavovala pevná previazanosť medzi štruktúrou XML v databáze a štruktúrou zdrojového kódu. To znamená, že pre každú zmenu štruktúry dát v dabáze bolo potrebné upraviť zdrojové kódy a zákazník musel kontaktovať support.
Riešenie: Naším riešením bolo zaviesť automatické spracovanie dát z databázy a dynamické ukladanie dát do štruktúr v zdrojovom kóde. Vďaka riešeniu vznikla voľná zviazanosť medzi zdrojovým kódom a štruktúrou databázy. Dôsledkom voľnej štruktúry je možné vytvoriť nástroj na upravovanie štruktúry žiadostí bez zásahu supportu.
Dáta mimo databázy
Dáta (napr pri registrácií žiadateľa o grant) sa ukladali do XML súboru a nebolo možné s nimi efektívne pracovať. Preto sme navrhli ukladanie dát do databázy.
Žiadatelia v databáze
Nedostatok: V databáze chýbala tabuľka, ktorá by ukladala informácie o žiadateľovi. Následkom bola absencia prepojenia medzi žiadosťami a žiadateľmi, duplicitné informácie o jednom žiadateľovi pre viacero žiadostí, absencia kontroly toho či žiadateľ nepodal viac ako 1 žiadosť.
Riešenie: Navrhli sme vytvoriť tabuľku v databáze čo malo prínos automatizácie procesu kontroly duplicitných žiadostí a automatického vypĺňania údajov o žiadateľovi.
Zálohovanie
Nedostatok: V rámci aplikácie neexistovala aplikačná podpora zálohovania dát, pričom odstránenie alebo poškodenie dát mohlo mať katastrofálne následky na fungovanie celého systému a organizácie.
Riešenie: Naším riešením bolo vytvorenie nástroja, ktorý umožňuje automatické zálohovanie databázy a obnovovanie databázy zo zálohy.
Každá aplikácia má niekoľko používateľov, v našom prípade ich môžme rozdeliť do rolí ako napríklad: programová manažérka, žiadateľ grantu, hodnotiteľ žiadosti atď.
Jednou z foriem bezpečnosti v databáze je pre každú rolu definovať typ prístupu k jednotlivým tabuľkám databázy a prideliť práva pre vykonávanie jednotlivých operácií v aplikácií.
Nedostatok: Neexistovalo vymedzenie rolí a právomocí. Existovala jedna rola pre všetky operácie, čo znamená, že v prípade útoku na databázu má útočník plne právo vykonávať rôzne operácie.
Riešenie: Vytvorili sme jednotlivé role pre každý modul a pridelili právomoci k vytváraniu operácií čím sa zvýšila bezpečnosť a odolnosť systému pred neoprávneným prístupom do databázy.
Nedostatok: Pri vytváraní nového programu bola nevyhnutná práca externého dodávateľa vyplývajúca zo štruktúry databázy (XML súbory) a použitých technológií (serializér).
Riešenie: Tým, že sme vytvorili metadátové tabuľky a komponent na ukladanie dát z databázy do dynamických štruktúr zdrojových kódov sme umožnili zákazníkovi nezávislosť od externého dodávateľa v procese tvorby programu.
Prínos:
Nedostatok: Aplikácia neobsahovala prehľadne spracované reporty a chýbali obsahovo i dôležité informácie.
Riešenie: Naším riešením je sprehľadnenie reportov obohatených o dôležité informácie (napr. objem vyčerpaných peňazí pre konkrétny program, ad-hoc reporty – kto na čom pracuje, koľko finančných prostriedkov je aktuálne vyčerpaných na program atď.)
Nedostatok: V aplikácií existuje niekoľko subprocesov a operácií, ktoré nemali úplnu aplikačnú podporu. Na ich vykonávanie boli potrebné iné aplikácie (napr. Microsoft Office) a tým sa predlžoval čas vykonávania subprocesov a komplikovalo to ďalšie procesy. Týkalo sa to najmä tabuliek s platbami a reportov.
Riešenie: Naším riešením je zavedenie formulárov, ktoré majú viacero prínosov ako :
Vzhľadom na závažnosť zistení analýzy a následnú pracnosť pri systémovom odstraňovaní týchto nedostatkov bolo ekonomicky výhodnejšie nepokračovať vo vývoji starej aplikácie. Navrhli sme preto novú databázovú aplikáciu pre evidenciu a riadenie žiadostí o čerpanie grantov.
Naše riešenie zabezpečuje prípravu žiadateľských formulárov pre jednotlivé typy programov, správu jednotlivých prihlášok (vrátane automatizovaného riadenia vyplnenosti a kontroly). Podporuje vyhodnocovanie prihlášok žiadateľov a zabezpečuje dohľad nad realizáciou schválených žiadostí, ako aj priebežnú komunikáciu medzi zúčastnenými stranami.
Hlavným prínosom riešenia je nezávislosť zákazníka od externého dodávateľa v procese tvorby grantových programov, zvýšený komfort a efektivita práce so systémom, odstránenie nákladov spojených s prácou externého dodávateľa.
Technické detaily riešenia
Technológia: .NET, c#, JavaScript
Architektúra: trojvrstvová
Databáza: postgreSQL
Multilingual WordPress with WPML