02.02.2013 Views

VISOKOŠOLSKI STROKOVNI ŠTUDIJ

VISOKOŠOLSKI STROKOVNI ŠTUDIJ

VISOKOŠOLSKI STROKOVNI ŠTUDIJ

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>VISOKOŠOLSKI</strong> <strong>STROKOVNI</strong> <strong>ŠTUDIJ</strong><br />

Računalništvo in Informatika – Informatika<br />

POROČILO PRAKTIČNEGA IZOBRAŽEVANJA<br />

v<br />

Modan Informatika d.o.o.<br />

Čas opravljanja: Od 01.12.2008 do 31.5.2009<br />

Mentor v GD Mag. Daniel Blejc, univ.dipl.ing.<br />

Študent: Darko Jerinić<br />

Vpisna številka: 93573363<br />

E – pošta: darko.jerinic@gmail.com<br />

Telefon: 031 – 493 – 064


Kazalo vsebine<br />

1. UVOD..........................................................................................................................................<br />

7<br />

2. PREDSTAVITEV PODJETJA MODAN INFORMATIKA.......................................................<br />

8<br />

2.1. Kratek opis podjetja............................................................................................................................................<br />

8<br />

3. OPIS PRAKTIČNEGA IZOBRAŽEVANJA............................................................................<br />

10<br />

3.1. Uvajanje v delo..................................................................................................................................................<br />

10<br />

3.2. Pristop k projektu in potek izvedbe projekta v podjetju....................................................................................<br />

11<br />

3.3. Izvedba projekta poteka po naslednjih izvedbenih korakih: ............................................................................. 11<br />

3.3.1. Definicija zahtev........................................................................................................................................................<br />

11<br />

3.3.2. Definicija projekta.....................................................................................................................................................<br />

12<br />

3.3.3. Specifikacija produkta................................................................................................................................................<br />

13<br />

3.3.4. Implementacija...........................................................................................................................................................<br />

14<br />

3.3.5. Tehnični prevzem.......................................................................................................................................................<br />

15<br />

3.4. VCL Loaderji....................................................................................................................................................<br />

16<br />

3.4.1. Uvod..........................................................................................................................................................................<br />

16<br />

3.4.2. Zahteve......................................................................................................................................................................<br />

17<br />

3.4.3. Opis VCL komponent ............................................................................................................................................... 17<br />

3.4.4. Struktura razredov......................................................................................................................................................<br />

20<br />

3.4.5. XML Datoteka...........................................................................................................................................................<br />

20<br />

3.4.6. Funkcionalnost in delovanje modula..........................................................................................................................<br />

24<br />

3.4.7. Zaključek...................................................................................................................................................................<br />

26<br />

3.5. Razred za prevod programa...............................................................................................................................<br />

27<br />

3.5.1. Uvod ......................................................................................................................................................................... 27<br />

3.5.2. Zahteve......................................................................................................................................................................<br />

27<br />

3.5.3. Opis datotek...............................................................................................................................................................<br />

28<br />

3.5.4. Delovanje razreda......................................................................................................................................................<br />

28<br />

3.5.5. Zaključek...................................................................................................................................................................<br />

30<br />

4. Pridobljeno znanje in izkušnje...................................................................................................<br />

31<br />

5. Mnenje o praksi..........................................................................................................................<br />

32


Kazalo slik<br />

Slika 3-1: cxTreeView komponenta..............................................................................................18<br />

Slika 3-2: cxTreeList komponenta.................................................................................................18<br />

Slika 3-3: cxGrid komponenta.......................................................................................................19<br />

Slika 3-4: Struktura razredov modula............................................................................................20<br />

Slika 3-5: View node.....................................................................................................................21<br />

Slika 3-6: DataController node......................................................................................................22<br />

Slika 3-7: DataBase node...............................................................................................................23<br />

Slika 3-8: Program pred inicializacijo...........................................................................................24<br />

Slika 3-9: Meni - zagon modula.....................................................................................................24<br />

Slika 3-10: Inicializirani gradniki..................................................................................................25<br />

Slika 3-11: Primerjava Xml in gradnika........................................................................................26<br />

Slika 3-12: Vnos v .ini datoteki.....................................................................................................29<br />

Slika 3-13: Nastavitve....................................................................................................................29


Kazalo tabel<br />

Tabela 3-1 Projketne listine...........................................................................................................11<br />

Tabela 3-2: Datoteka s prevodi......................................................................................................28<br />

Tabela 3-3: Referenčna datoteka...................................................................................................28


1. UVOD<br />

Poročilo o praktičnem izobraževanju je sestavljeno iz dveh delov. Jedro poročila je opis<br />

dela, ki sem ga opravljal v času praktičnega izobraževanja. V uvodnem delu poročila je na<br />

kratko predstavljeno podjetje. Sledi natančen opis del, ki sem jih opravljal v času mojega<br />

praktičnega izobraževanja v podjetju Modan Informatika d.o.o. V zaključku še izrazim svoje<br />

mnenje o praksi, o mojih izkušnjah ki sem jih pridobil.


2. PREDSTAVITEV PODJETJA MODAN INFORMATIKA<br />

2.1. Kratek opis podjetja<br />

Poslovna pot podjetja Modan Informatika d.o.o. se je začela leta 1995 v okviru podjetja<br />

MCI Modan. Podjetje se je nato razvijalo v dve smeri:<br />

• razvijanje industrijske elektronike in<br />

• razvijanje programske opreme za računalnike.<br />

Leta 1997 je prišlo do delitve in nastalo je novo podjetje Modan informatika d.o.o., ki je<br />

nadaljevalo z razvojem programske opreme. V tem razvoju so se usmerili predvsem na tista<br />

področja, ki v Sloveniji takrat še niso bila pokrita. Za Slovenski trg so priredili program za<br />

upravljanje portfeljev vrednostnih papirjev in program za vodenje prodaje v sistemu mrežnega<br />

marketinga. Že od vsega začetka se je dejavnost podjetja konstantno širila. Odlikujejo pa se<br />

predvsem po prilagodljivosti specifičnim potrebam njihovih kupcev.<br />

Njihova temeljna dejavnost je razvoj programske opreme za znanega kupca, ki dopušča<br />

možnost razširitve funkcij in prilagoditve potrebam neznanega kupca. Z njo tesno povezane<br />

so ostale dejavnosti:<br />

• prodaja in servisiranje programskih paketov;<br />

• izobraževanje o uporabi programske opreme;<br />

• svetovanje in uvajanje naprednih rešitev (tehnologij);<br />

• vodenje in vzdrževanje podatkovnih skladišč;<br />

• inženiring računalniških sistemov;<br />

• oblikovanje in izdelava spletnih strani na Internetu.<br />

V času delovanja od začetka do zdaj so razvili štiri zaključene programske sklope in<br />

enega, ki je v zadnji fazi izdelave. Skupna lastnost vseh je, da poenostavljajo poslovanje,<br />

omogočajo izvajanje zapletenih ali obsežnejših procesov na enostaven in uporabniku<br />

sprejemljiv način. Zapletene formule in postopki so predvideni in vključeni v program.<br />

Izvršijo se na poziv uporabnika.<br />

Rezultati njihovega dela so naslednji programski paketi:


• ARCHIVpro98<br />

, program za arhiviranje in delo z dokumenti;<br />

• proTRADE, program za nadzor prodaje v sistemih direktnega in mrežnega<br />

marketinga s tremi različicami;<br />

• WINDEX, program za upravljanje portfeljev in analiza vrednostnih papirjev;<br />

• BAS, programski paket, ki združuje vse tri zgoraj naštete programe, ki so seveda<br />

nadgrajeni, ter orodja za administracijo sistema.<br />

Iz teh osnovnih produktov so izpeljane prilagojene različice za končnega kupca s<br />

specifičnimi potrebami. Tako so nastali produkti za:<br />

• Stanovanjski sklad občine Maribor, za vodenje stanovanj, pogodb in najemnikov;<br />

• Probanko d.z.u., za vodenje investitorjev, investicij, transakcij,…;<br />

• Elito, za mrežni marketing oz. trženje življenjskih zavarovanj;<br />

• Fitness Megafit, za vodenje članstva in pregled poslovanja;<br />

• Individa, za trženje zavarovanj, ki temelji na mrežnem marketingu;<br />

• Itd…


3. OPIS PRAKTIČNEGA IZOBRAŽEVANJA<br />

3.1. Uvajanje v delo<br />

Uvajanje v delo podjetja je potekalo na naslednji način:<br />

• Predstavitev podjetja<br />

• Predstavitev zaposlenih v podjetju<br />

• Predstavitev načina dela v podjetju<br />

• Predstavitev virov informacij v podjetju ( knjige, dodatni program, projektne<br />

dokumentacije, spletni viri, itd.. )<br />

• Predstavitev osnovnih paketov, na katerih se izvajajo nadgradnje za končne stranke<br />

Po predstavitvi podjetja in načina dela mi je mentor zadal naloge, ki sem jih moral<br />

opraviti. Seznanil me je s sodelavci, katere sem lahko prosil za pomoč, pri reševanju<br />

zastavljenih nalog, v vsakem trenutku pa sem lahko dobil pomoč tudi od mentorja.<br />

V podjetje sem prišel z osnovnim znanjem programskega jezika C#, Delphi,<br />

DreamWeaver ter poznavanjem teorije relacijskih podatkovnih baz in povpraševalnega<br />

jezika SQL. Po uvodnem spoznavanju dela v podjetju sem se lotil programiranja zadane naloge.<br />

Moja začetna naloga v podjetju je bila programiranje XML loaderja v programskem jeziku C#, s<br />

katero bom pokazal koliko znanja imam.<br />

V času opravljanja dela sem si veliko pomagal predvsem s projektno dokumentacijo in<br />

literaturo, internetom in pa seveda z znanjem sodelavcev in mentorja. Naučiti sem se moral<br />

osnov jezika XML, in dela z njim. Prav tako sem moral preučiti obstoječe programske produkte,<br />

in loaderje narejene v drugih programskih jezikih ( Delphi )


3.2. Pristop k projektu in potek izvedbe projekta v podjetju<br />

K vsakem projektu je potrebno izdelati ustrezno dokumentacijo. Vsak izdela dokumentacijo<br />

za del, ki ga je implementiral. Za splošno dokumentacijo o projektu je zadolžen vodja projekta.<br />

Dokumentacija mora zajemati:<br />

Projektna dokumentacija<br />

Tehnična dokumentacija<br />

Vse listine, ki so predmet podjetja in predstavljajo<br />

komunikacijo med izvajalci projekta in naročnikom<br />

Je del projektne dokumentacije in vsebuje strokovno<br />

dokumentacijo ki spremlja znanstveno-tehnično izvajanje<br />

projekta<br />

Dokument Je listina z uradno veljavnostjo<br />

Vsebuje opis nekega dogodka, seznanja z določenim<br />

Poročilo<br />

dogajanjem, stanjem, brez osebnih pojasnil in pripomb<br />

Tabela 3-1 Projketne listine<br />

3.3. Izvedba projekta poteka po naslednjih izvedbenih korakih:<br />

3.3.1. Definicija zahtev<br />

Definicija zahtev je del projekta, ki traja od trenutka, ko predstavnik podjetja kontaktira<br />

naročnika, do trenutka, ko so naročnikove želje definirane in potrjene z obeh strani. Hkrati je<br />

opredeljena tehnologija, ki se uporablja za razvoj.<br />

• Aktivnosti:<br />

• Rezultati:<br />

o Posnetek naročnikovih zahtev<br />

o Analiza naročnikovih zahtev<br />

o Globalni cilji<br />

o Opis naročnikovih zahtev in preliminarna ocena obsega del za izvedbo projekta<br />

o Groba ocena stroškov in časovnih okvirjev projekta<br />

o Seznam pričakovanih dogodkov, predvidevanja, opažanja


• Spremljajoča dokumentacija<br />

• Aktivnosti:<br />

• Rezultati:<br />

o Pismo o nameri ( gentlemans agreement )<br />

o Dokument “Definicija zahtev” vsebuje:<br />

� Poročilo “Posnetek naročnikovih zahtev” – kratek opis problema, ki ga<br />

rešujemo. Opis je zastavljen idejno in služi globalni razsvetlitvi tematike<br />

� Dokument “Analiza naročnikovih zahtev” – globalna analiza s tehničnega<br />

vidika, uporaba diagramskih tehnik za predstavitev problema ( Use Case,<br />

Activity diagram ... )<br />

� Dokument “Uporabljene tehnologije” – prva ocena zahtev po razvojnih<br />

orodjih<br />

� Dokument “Splošno” – groba ocena stroškov, časovnih okvirjev projekta,<br />

dogodki, ...<br />

� Dokument “Uporabljene tehnologije” – prva ocena zahtev po razvojnih<br />

orodjih<br />

� Dokument “Splošno” – groba ocena stroškov, časovnih okvirjev projekta,<br />

dogodki, ...<br />

3.3.2. Definicija projekta<br />

o Definicija osnovnih pravil, iz katerih izhajajo vsi udeleženci projekta<br />

o Definicija aktivnosti posameznih udeležencev projekta<br />

o Definicija projektne dokumentacije<br />

o Definicija potrebnih resursov<br />

o Projektni načrt [ milestones, resursi/aktivnosti, stroški ]<br />

• Spremljajoča dokumentacija<br />

o Dokument “splošne definicije” – opis novih spoznanj iz podrobnejše analize<br />

projekta in korespondence z ostalimi udeleženci na projektu, ter naročnikom


o Dokument “Projektni načrt” ( dopolnitev )<br />

• Aktivnosti<br />

• Rezultati<br />

� Dokument “Rokovnik tehnične izvedbe”<br />

� Dokument “Organizacijska struktura projekta”<br />

� Poročilo “Ocena stroškov”<br />

3.3.3. Specifikacija produkta<br />

o Ponovna ocena obsega projekta, funkcionalnosti, potrebnih resursov in<br />

pričakovanega vloženega napora<br />

o Sprejetje dokumentacije, ki bo spremljala projekt<br />

o Pridobiti morebitne dodatne resurse<br />

o Pridobiti morebitna nova razvojna orodja<br />

o Sprejetje pogodbe o implementaciji<br />

o Definirana ali izpolnjena projektna dokumentacija<br />

o Cilji projekta [ cilji projekta so posnetki naročnikovih želja po funkcionalnosti<br />

produkta. Cilji so splošni in so glavna smernica vsem udeležencem projekta ]<br />

o Primarni scenariji [ na podlagi ciljev projekta, se s pomočjo Use Case diagramov<br />

predstavi problematika, ki jo produkt rešuje. V ospredju so zmeraj globalni cilji<br />

projekta. V opisu primarnih scenarijev se opiše in določi primarna ( vrhnja,<br />

osnovna ) funkcionalnost produkta ]<br />

o Sekundarni scenariji [ na podlagi ciljev projekta se s pomočjo Use Case<br />

diagramov predstavi problematika, ki jo zajemajo posamezni primarni scenariji. V<br />

ospredju so zmeraj globalni cilji projekta. V opisu sekundarnih scenarijev se opiše<br />

in določi podrobna funkcionalnost primarnih scenarijev ( zahtev ) ]<br />

o Arhitektura produkta [ na podlagi primarnih in sekundarnih scenarijev se sestavi<br />

arhitektura produkta ]<br />

o Uporabljeni tehnološki postopki in metodologija izvedbe [ določi se uporabljena<br />

tehnologija, razvojna platforma, razvojna orodja in način izvedbe. Kot način


izvedbe gre za določitev ( ločitev ) slojev produkta na podlagi izsledkov sprejetih<br />

scenarijev ( tri-slojno načrtovanje ) ]<br />

o GUI – opcija<br />

o Način testiranja in določitev publikacij k produktu [ opiše se način testiranja<br />

aplikacije. Določi se publikacija, ki mora biti sestavni del produkta ( Help,<br />

definicija API, ... ) ]<br />

o Doplonjen projektni načrt<br />

• Na podlagi izdelane projektne dokumentacije se sestavi projektni načrt, ki vsebuje:<br />

o Določitev spremljajoče dokumentacije k projektu in način komuniciranja<br />

[ določi se dokumentacija in način komuniciranja med udeleženci projekta ter<br />

odgovorne osebe ]<br />

o Milestones - časovni okvirji izvedbe projekta<br />

o Resursi/aktivnosti - kadrovske potrebe za uspešno izvedbo projekta in<br />

razdelitev delovnih področij<br />

o Stroškovna opredelitev<br />

• Spremljajoča dokumentacija:<br />

• Aktivnosti<br />

o Dokument "Specifikacija produkta" – vsebuje dokument "Primeri uporabe"–<br />

use case s primarnimi in sekundarnimi scenariji<br />

o Dokument "Arhitektura produkta" – razredni diagrami, dataflow, modeli stanj<br />

in ostali prijemi definiranja arhitekture<br />

o Dokument "GUI" – diagram grafičnega vmesnika<br />

3.3.4. Implementacija<br />

o Vsi udeleženci na projektu imajo dodeljen svoj del projekta in prestopijo v fazo<br />

implementacije razdelane problematike<br />

o Nadziranje korakov izvajanja in merjenje napredka razvoja<br />

o Sestankovanje ekipe na dnevni bazi za ugotavljanje težav, preden eskalirajo v<br />

nedosegljive okvirje


• Rezultati<br />

o Poročanje o napredku projekta;<br />

o Dodajanje projektne dokumentacije, korespodenca z naročnikom glede<br />

odstopanj v sprejetih projektnih listinah;<br />

• Spremljajoča dokumentacija<br />

• Aktivnosti<br />

• Rezultati<br />

o Dokument "Dnevnik tehnične izvedbe" je dejanski potek dokumenta<br />

"Rokovnik tehnične izvedbe"<br />

o Dokument "Produkt" - vsebuje kopije dokumentov iz prejšnjih faz, ki jih<br />

zdaj obdelamo podrobneje in za namene implementacije – to so zdaj novi<br />

dokumenti, ki izhajajo iz definicij faz 1 – 3<br />

o Dokument "Source – oblika" definicije oblike programskega koda<br />

o Programski kod – ostane izključno v elektronski obliki<br />

o Poročilo "Testiranje" – zapis o testiranju produkta, inštalaciji beta verzije<br />

o Dokument "Publikacije" – vsebuje API, help, priročnike, ...<br />

o Dokument "Organizacija projekta" je kopija Dokumenta "Organizacijska<br />

struktura projekta", ki je podrobneje razčlenjen na diagrame nosilec/naloga,<br />

tehnične opise nalog, ... za potrebe koordinacije implementacije<br />

o Dokument "Računovodske listine" – vsebuje kopije računovodskih listin<br />

(avansnih računov, računov, plačil ...), ki so vezane na projekt<br />

3.3.5. Tehnični prevzem<br />

o Predstavitev izdelka in funkcionalnosti<br />

o Testiranje ustreznosti izdelka<br />

o Ocena ustreznosti na podlagi testiranja ustreznosti


• Spremljajoča dokumentacija<br />

o Dokument “Tehnični prevzem” – s tem dokumentom se potrdi, da produkt<br />

zadovoljuje zahtevam, definiranim v pogodbi<br />

o Dokument “Zaključek” – z izdajo tega dokumenta je projekt zaključen. Vsebuje<br />

potrditve, da so obveznosti vseh strani poravnane<br />

3.4. VCL Loaderji<br />

3.4.1. Uvod<br />

Prva naloga katero sem dobil pri opravljanju prakse je bilo programiranje VCL<br />

Loaderjev. VCL Loaderji omogočajo prikazovanje različnih vrst podatkov na različne načine.<br />

Osnova za VCL Loaderje je XML dokument, v katerem se nahajajo vsi podatki ki so potrebni za<br />

pravilno nalaganje in prikazovanje željenih podatkov.<br />

Podatke lahko prikazujemo v različnih komponentah, in na različne načine. Prav tako<br />

mora biti loader neodvisen od podatkovnega vira. Mora omogočati nalaganje iz čim več različnih<br />

virov ( XML, SQL, podatkovna baza, URL …. ).<br />

Predstavitev projekta je potekala na naslednji način:<br />

• Seznanitev s projektom<br />

• Predstavitev modula, ki ga je bilo potrebno implementirati;<br />

• Predstavitev dokumentacije;<br />

• Predstavitev ključnih faz projekta;<br />

• Predstavitev ciljev v posameznih fazah;<br />

• Predstavitev podatkovnega modela aplikacije;<br />

• Predstavitev sprecifikacije projekta


3.4.2. Zahteve<br />

Glavna naloga je bila implementirati modul, ki bo znal črpati podatke iz različnih virov,<br />

ter prikazovati dobljene podatke v različnih vizualnih komponentah.<br />

Modul mora znati črpati podatke iz različnih virov ( DB, SQL, XML, URL .. ). Vsakega<br />

izmed teh virov mora znati obravnavati, in posredovati podatke naprej v isti obliki.<br />

Za razvojno okolje je bil določen prvo .NET ( C# ), in kasneje še Borland Delphi 7, z<br />

dodatno nameščenimi “Developer Express” komponentami.<br />

Modul mora znati polniti različne vrste vizualnih komponent, tudi če si te med seboj niso<br />

podobne. To je pomenilo implementacijo modula ki se bo znal čim bolj popolno prilagoditi<br />

različnim vizualnim komponentam, in omogočati prikazovanje podatkov v pravilni obliki.<br />

Potrebno je bilo definirati standardni XML dokument, kateri bo uporabljen pri izvajanju<br />

modula. V XML datoteki je bilo potrebno definirati “poglavja” ki vsebujejo podatke o grafičnem<br />

izgledu komponente, o podatkovnem viru iz katerega mora modul črpati podatke, in o načinu<br />

dostopa do podatkovne zaloge, v primeru da je le-ta podatkovna baza.<br />

3.4.3. Opis VCL komponent<br />

• cxTreeView in cxDBTreeView<br />

TreeView komponenta omogoča prikaz podatkov v drevesni strukturi z<br />

nastavitvijo “Parent – Child” relacije. Podobno kot uporablja “Raziskovalec” za prikaz<br />

structure map v računalniku. Komponenta prikazuje samo en »stolpec« podatkov<br />

naenkrat. Tabela ki je povezana na komponento lahko ima več stolpcev, prikazan je pa<br />

tisti ki je definiran kot DisplayField, torej “Prikaznio polje” v komponenti.<br />

Obstajata dve TreeView komponenti, čeprav sta po delovanju popolnoma enaki.<br />

Edina razlika je oblika podatkovne zaloge s katero zna komponenta delati. TreeView<br />

uporablja DATASET podatkovno zalogo, kar pomeni da so podatki prečrpani iz<br />

podatkovnega vira v podatkovno zalogo znotraj delovanja programa. Takšna podatkovna<br />

zaloga se v C# in Borland Delphi okolju imenuje “DataSet”. DBTreeView pa uporablja<br />

podatkovno zalogo DATASOURCE, ki predstavlja povezavo do podatkovne baze.


Slika 3-1: cxTreeView komponenta<br />

• TreeList in DBTreeList<br />

Slika 3-2: cxTreeList komponenta<br />

TreeList komponenta omogoča prikazovanje podatkov podobno kot zgoraj<br />

opisana TreeView komponenta, le da TreeList omogoča prikazovanje vseh stolpcev v<br />

podatkovni zalogi naenkrat.<br />

Tako kot zgoraj opisani TreeView in DBTreeView, obstajata tudi dve TreeListi:<br />

TreeList in DBTreeList, ki se razlikujeta samo po tipu podatkovne zaloge.


• cxGrid<br />

Komponenta je podobna navadni tabeli, le da lahko vsebuje še dodatne<br />

komponente, kot so npr. navaden gumb, “Checkbox”, “Drop-down” meni in podobno.<br />

Komponenta omogoča tudi avtomatsko gnezdenje podatkov z nastavljenimi<br />

relacijami “Parent – Child”, omogoča lahko tudi grupiranje podatkov ter urejanju<br />

stolpcev in skupin.<br />

Slika 3-3: cxGrid komponenta


3.4.4. Struktura razredov<br />

Slika 3-4: Struktura razredov modula<br />

Vsaka komponenta ima loader v svojem razredu, vsi razredi pa imajo skupni nadrazred<br />

imenovan TmiXMLVCLoader.<br />

3.4.5. XML Datoteka<br />

Za brezhibno delovanje VCL Loaderjev potrebujemo natančno definiran XML dokument,<br />

ki je osnova za nalaganje component, črpanje podatkov iz podatkovnih zalog, in prikazovanje na<br />

komponentah.<br />

XML datoteka je sestavljena iz naslednjih “Node-ov”:<br />

• Views<br />

• DataBases<br />

• DataSets<br />

TmiXMLVCLoader<br />

TmiXMLDBTreeList TmiXMLTreeList TmiXMLDBTreeView TmiXMLTreeView<br />

View node vsebuje vse podatke o vizualnem izgledu komponente ( barve, stolpci, skupine ),<br />

obnašanju komponente in načinu prikazovanja podatkov v komponenti.


Slika 3-5: View node<br />

View del vsebuje tudi podatke o povezavi s podatkovnim delom ( xml tabela, SQL<br />

stavkek .. ). Povezava s podatkovnim delom se nahaja v nodu DataController.<br />

DataController skrbi za to da se komponenta katero nalagamo pravilno poveže z<br />

ustreznimi podatki.


Slika 3-6: DataController node<br />

Database node vsebuje podatke o podatkovni bazi, in povezavi na njo. Database je najbolj<br />

pogosto Access podatkovna baza. Za dostop do te podatkovne baze program potrebuje pot do<br />

fizične lokacije na trdem disku, tip podatkovne baze, ime baze, alias, uporabniško ime in geslo<br />

ter ostale podatke potrebne za povezavo.


Slika 3-7: DataBase node<br />

Dataset node pa lahko vsebuje tabelo s podatki in njeno schemo. V primeru da nimamo<br />

na voljo podatkovne baze, lahko podatke prenesemo kar v XML dokumentu, v Dataset nodu.<br />

Loader med delovanjem prebere da se podatki nahajajo v tabeli, in te podatke prečrpa v<br />

podatkovno zalogo ( DataSource ). Shema, ki se nahaja zraven podatkov predstavlja definicijo<br />

vseh polj v XML podatkovni zalogi.


3.4.6. Funkcionalnost in delovanje modula<br />

Slika 3-8: Program pred inicializacijo<br />

Prikazan je testni program, ki je bil uporabljen za programiranje modula, in za testiranje<br />

obnašanja in delovanja modula. Prikaz je zgolj zaradi namenov demonstracije, dokončani moduli<br />

se lahko uporabljajo tudi v drugih aplikacijah. Ob zagonu programa so vse komponente v<br />

neinicializiranem stanju, kot je vidno na sliki zgoraj. Za začetek izvajanja v meniju ( številka 1 )<br />

izberemo kateri razred želimo uporabiti, v drugem meniju ( številka 2 ) pa izberemo katero<br />

funkcijo želimo zagnati.<br />

Slika 3-9: Meni - zagon modula<br />

Po izbiri opcij prvo odpremo privzeti xml, in zaženemo izvajanje modula. Modul s pomočjo<br />

privzete XML datoteke začne z izvajanjem. Od tu naprej poteka vse samostojno, brez<br />

uporabnikove pomoči. Prebere se View odsek v XML datoteki, iz katerega se naložijo vizualne<br />

opcije gradnikov v programu, za tem se preveri katera podatkovna zaloga pripada katerem<br />

gradniku, in s pomočjo Databases in Datasets node-ov v XML-ju prebere podatke iz podatkovnih


virov in jih pretvori v ustrezne podatkovne zaloge, katere so pripravljene za prikaz v<br />

komponentah.<br />

Končni rezultat izvajanja programa so inicializirani gradniki v aplikaciji, ki že vsebujejo<br />

vse podatke kateri so bili za njih predvideni v XML datoteki.<br />

Slika 3-10: Inicializirani gradniki


Slika 3-11: Primerjava Xml in gradnika<br />

3.4.7. Zaključek<br />

Modul “VCL Loader” nam omogoča dinamično in hitro nalaganje različnih vrst<br />

podatkov, brez spreminjanja programske kode. Aplikacijo s takšnim modulom lahko<br />

uporabljamo v najrazličnejše namene. Z dobro definiranim XML dokumentom lahko poljubno<br />

oblikujemo aplikacijo, saj lahko samo z XML dokumentom določamo kakšne podatke želimo, od<br />

kod jih želimo črpati, kako jih želimo prikazati. S pomočjo XML dokumenta lahko<br />

manipuliramo tudi z gradniki na aplikaciji, lahko določamo katere komponente bodo vidne in<br />

katere ne in kako se bodo obnašale.


3.5. Razred za prevod programa<br />

3.5.1. Uvod<br />

Naloga, katero sem dobil, je zahtevala izdelavo razreda in pripadajočih funkcij, ki<br />

omogočajo izbiro jezika v nastavitvah programa. Program je bil napisan za slovenski trg, in so<br />

tako vsa besedila znotraj vseh oken programa bila v slovenskem jeziku. Bilo je potrebno<br />

spremeniti program tako, da je v oknu “Nastavitve” omogočal izbiro različnih jezikov. Prav tako<br />

je bilo potrebno spremeniti pripadajočo .INI datoteko, v kateri so se nahajale vse nastavitve<br />

programa. Program je ob potrditvi nastavitev iz inicializacijske datoteke prebral potrebne<br />

podatke, in glede na izbran jezik nadaljeval delovanje.<br />

3.5.2. Zahteve<br />

Naloga je zahtevala implementacijo razreda, ki bi iz vnaprej določenih tekstovnih datotek<br />

prebirala prevedene beside, in jih vstavljala na pravilna mesta v programskih formah. Pred samo<br />

implementacijo razreda je bilo treba določiti format tekstovne datoteke. Tekstovna datoteka je<br />

vsebovala podatke o objektu, katerega je potrebno prevesti, kateremu razredu ta objekt pripada, v<br />

kateri formi se nahaja in prevedeno besedo, katero je treba vnesti.<br />

Razred je bilo potrebno implementirati v razvojnem okolju Borland Delphi 7, moja<br />

naloga je bila načrtovati, implementirati in dokumentirati omenjeni modul.<br />

Zahtevano je bilo da program uproablja dve tekstovni datoteki. Prva vsebuje vse podatke<br />

o objektih katere prevajamo, in prevedene besede, oz. reference do prevedenih besed. Druga<br />

datoteka je vsebovala prevode, do katerih je mogoče dostopati preko referenc iz prve datoteke.<br />

Program mora prevajati vsako formo posebej, v trenutku ko se prvič naloži z namenom<br />

skrajševanja časa začetnega nalaganja programa.


3.5.3. Opis datotek<br />

Za pravilno delovanje funkcij potrebujemo dve različni datoteki, in sicer, datoteko s<br />

podatki o komponentah katere je treba prevesti, in referenčno datoteko, ki vsebuje prevode ki se<br />

večkrat pojavljajo.<br />

Ime<br />

Ime<br />

Tip<br />

Tag Tip tekst namig tekst namig<br />

Agent Btn1 TButton 0 VCL Text Gumb1 N1 Button1 #2<br />

Agent Btn2 TButton 0 VCL Text Gumb2 N2 Button2 #3<br />

Tabela 3-2: Datoteka s prevodi<br />

Datoteka vsebuje vse podatke ki jih potrebuje, da lahko poišče in zamenja pravilni tekst v<br />

pravilnem gradniku. V primeru da je namesto prevoda navedena referenca ( # ), program preveri<br />

referenčno datoteko za pravilen prevod.<br />

Privzeti tekst Prevedeni tekst<br />

N1 Hint1<br />

N2 Hint2<br />

Tabela 3-3: Referenčna datoteka<br />

Na referenčno datoteko se sklicujemo z znakom “#” in številko – indeks na katerem se<br />

nahaja ustrezni prevod. Za izvoz vseh originalnih tekstov je bilo potrebno izvoziti v tekstovno<br />

datoteko s pomočjo že napisane funkcije, katera ustrezno formatira tekstovno datoteko. Datoteko<br />

je potrebno dati v prevod, po katerem je datoteka pripravljena da služi kot slovar katerega<br />

funkcija uporablja za prevajanje.<br />

Funkcije za delovanje potrebujejo še inicializacijsko datoteko programa, v kateri so<br />

zapisani vsi jeziki ki so na voljo, ter absolutne poti do slovarjev, oz. do datotek s prevodi in<br />

referenčnih datotek.<br />

3.5.4. Delovanje razreda<br />

V oknu za nastavitve aplikacije na začetku nastavimo jezik katerega želimo uporabljati.<br />

Ko nastavimo jezik in kliknemo Shrani, se izbrane nastavitve shranijo v inicializacijsko datoteko


“.ini”, kjer se shrani izbrani jezik. Izbrane nastavitve ostanejo privzete, in se bodo ob vsakem<br />

zagonu programa znova upoštevale, dokler jih spet ne spremenimo v nastavitvah. Za uporabo<br />

nastavitev je potrebno program ponovno zagnati, da se nastavitve inicializirajo.<br />

[Import Language_Files]<br />

0=Default@E:\Projects\Merkur\MLMlanguage.txt@E:\Projects\Merkur\refLanguage.txt<br />

1=Deutsch@C:\MLMlanguage.txt@C:\refLanguage.txt<br />

Slika 3-12: Vnos v .ini datoteki<br />

Slika 3-13: Nastavitve<br />

Ob zagonu programa se ob vsakem kreiranju katerekoli forme oz. okna zažene funkcija<br />

za prevod, ki iz .ini datoteke prebere kateri jezik je izbran v nastavitvah ter kje so jezikovne<br />

datoteke, ki jih za prevod potrebuje, shranjene. Funkcija se nato pomika čez vse vizualne<br />

komponente v oknu, in preveri če je ime te komponente kje v datoteki. Če je komponenta<br />

najdena, preveri s kakšnim tipom komponente ima opravka, in nato glede na tip komponente<br />

prevede napis in morebitni namig.<br />

Obstajajo še nekatera besedila za prevod, ki se pa ne nahajajo na vizualnih komponentah,<br />

ampak se pojavljajo v programski kodi. Takšna besedila se prevedejo malo drugače, in sicer<br />

tako, da funkcija prestreže tekst kateri se mora prikazati, poišče če se kje ta tekst pojavlja, in kot<br />

rezultat vrne najdeni prevod ( v primeru da ga najde ).


Med izvajanjem programa ne sme prihajati do napak, zato so v primerih ko ne najde<br />

ustreznega prevoda, implementirane zaščite ki skrbijo za to, da se program lahko normalno<br />

nadaljuje.<br />

3.5.5. Zaključek<br />

Razred za prevajanje je omogočal enostavno in hitro uporabo več jezikov brez<br />

spreminjanja samega programa. Pred implementacijo funkcij je bil program razumljiv samo<br />

uporabnikom ki razumejo slovenski jezik. Vsako spreminjanje programa brez the funkcij bi bilo<br />

dolgo in mukotrpno delo. Za vsak drugi jezik bi bilo potrebno imeti svojo verzijo programa.<br />

Funkcije za prevod pa omogočajo uporabo istega programa v vsakem jeziku, brez spreminjanja<br />

samega programa.<br />

Ker so vse funkcije katere potrebujemo za prevajanje shranjene v istem razredu, lahko te<br />

funkcije uporabimo tudi pri drugih aplikacijah. Za vključitev in uporabo funkcij v programu<br />

potrebujemo le slovarje, v programski kodi so pa potrebne le minimalne spremembe.


4. Pridobljeno znanje in izkušnje<br />

V času opravljanja dela v podjetju Modan Informatika d.o.o sem spoznal, kako v praksi<br />

poteka delo v manjšem podjetju, ki se ukvarja z razvojem programskih produktov. Komaj s<br />

pomočjo dela v praksi sem lahko dokončno dojel nekatere teoretične stvari, ki sem jih spoznal v<br />

času študija na fakulteti. Seznanil sem se z mnogimi razvojnimi orodji (Delphi 7, ASP.NET, C#),<br />

podatkovnimi bazami(Access, MS SQL), programi za obdelovanje XML datotek ( XMLSpy ) in<br />

ostalimi orodji. Sodeloval sem pri mnogo različnih projektih in s tem pridobil velik spekter<br />

različnega znanja.<br />

Praksa je zelo pomemben del izobraževanja v računalništvu, saj študent na ta način pozna<br />

kako poteka delo v podjetju in si pridobi potrebno praktično znanje.


5. Mnenje o praksi<br />

Mislim, da praktično izobraževanje po končanih predavanjih zelo pozitivno vpliva na<br />

študente, saj se srečamo s praktičnimi primeri in težavami, ki jih prinašajo vsakodnevni problemi<br />

v poslovnem svetu.<br />

V okviru praktičnega izobraževanja naučil veliko novih stvari, pridobil pa sem tudi<br />

vpogled v delovanje nekaterih podjetij.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!