SlideShare uma empresa Scribd logo
1 de 3
1 Návrh a implementácia
1.1 Členenie aplikácie
Z dôvodu lepšej prehľadnosti a jednoduchšieho udržovania kódu je aplikácia rozdelená do
dvoch menných priestorov. Dáta a aplikačná logika, pomocou ktorej je možné dáta
spracovávať, sa nachádzajú v mennom priestore SkypeLogViewer.Model. Menný priestor
SkypeLogViewer obsahuje prvky grafického rozhrania a funkcionalitu, pomocou ktorej sa
dáta zobrazujú.

1.2 Aplikačná časť

1.2.1 Dátový model
Jednou z najdôležitejších častí návrhu aplikácie je vytvorenie dátového modelu. Ten určuje
aké dáta sa budú zo záznamov spracovávať a následne zobrazovať, a akým spôsobom budú
uložené.

Hovory
Telefónne hovory alebo hovory v rámci siete Skype reprezentujú triedy Call, AnsweredCall
a UnAnsweredCall. V prípade triedy Call ide o abstraktnú triedu poskytujúcu základ pre
triedy AnsweredCall a UnAnsweredCall. Trieda UnAnsweredCall predstavuje hovor, ktorý
jedna zo strán neprijala. Uchovávajú sa len informácie o čase udalosti a o účastníkovi, ktorý
sa na udalosti podieľal. Na druhú stranu, trieda AnsweredCall uchováva informácie o hovore,
ktorý skutočne prebehol. Narozdiel od neprijatého hovoru sa musia uchovávať informácie
o čase príchodu a dobe trvania u každého účastníka. Tieto informácie sú zabalené do triedy
Conference-Member. Trieda AnsweredCall teda obsahuje zoznam účastníkov
reprezentovaných triedou ConferenceMemeber.

Textová komunikácia
Textovú komunikáciu zastupuje trieda Chat. Obsahuje zoznam kontaktov, ktorí sa na
komunikácii podieľali a zoznam správ, ktoré boli v danej komunikácii zaslané. Každá správa
je reprezentovaná triedou Message, ktorá nesie informácie identifikujúce autora správy, čas
odoslania správy a samotné
telo správy. Trieda Chat obsahuje len správy typu 3. Informácie obsiahnuté v správach typu 7
sú totožné s informáciami, ktoré reprezentujú triedy SMS a Transfer a preto sa tieto správy
aplikáciou nespracovávajú. Z tela správ boli pri nahrávaní dát odstránené všetky XML prvky.

SMS správy a prenosy súborov
SMS správy sú v dátovom modeli reprezentované triedou SMS, informácie o prenosoch
súborov triedou Transfers. Obidve triedy uchovávajú prakticky všetky informácie, ktoré boli
v logových záznamoch rozpoznané.

Reprezentácia časových údajov
Na uchovanie času, v ktorom prebehla určitá udalosť, sme použili štruktúru DateTime, ktorá
je súčasťou .NET knižnice. V neskoršej fáze vývoja sme natrafili na problém, kde do
premennej typu DateTime nie je možné uložiť prázdnu (null) hodnotu a tak sme začali čas
reprezentovať štruktúrou DateTime zabalenou do generickej triedy Nullable. Na reprezentáciu
doby trvania určitej udalosti sa nám žiadnu podobnú už implementovanú triedu nájsť
nepodarilo a tak sme pre tento účel implementovali triedu Duration. Tá uchováva dobu
trvania v sekundách a obsahuje metódy, ktoré dokážu čas uložený v takomto formáte
transformovať na iné formáty reprezentácie času, ktoré sú užívateľsky prívetivejšie.
Rozhranie ISearchable
Rozhranie ISearchable v sebe implementujú triedy nesúce informáciu, ktorú je možné
prehľadávať na výskyt konkrétneho textového reťazca. Ide o triedy Message a SMS, kde sa
zadaný reťazec vyhľadáva v tele týchto správ. Výsledok takéhoto vyhľadávania je objekt
triedy SearchResult, v ktorom sa nachádza hľadaný reťazec a zoznam pozícií, na ktorých sa
v správe reťazec vyskytuje.


Rozhranie IRecord
Ide o rozhranie, ktoré je implementované všetkými triedami, ktoré reprezentujú ucelený
záznam. Sú to triedy Call, Chat, SMS a Transfer. Pomocou tohto rozhrania sa tieto triedy
zaväzujú k jednotnému prístupu k základným informáciám, ktoré sú všeobecné pre každý
záznam. Je možné získať informácie o začiatku a konci udalosti, zoznam všetkých účastníkov
a textový reťazec popisujúci typ záznamu. V prípade, že logová udalosť neprebiehala dlhšiu
časovú dobu, ale len nastala v konštantnom čase, dotaz na čas konca udalosti vráti prázdnu
hodnotu.




                     UML diagram vytvorený v programe Visual Paradigm


1.2.2 Načítanie záznamov
O otvorenie databázového súboru uchovávajúceho záznamy, spracovanie záznamov
a následne uloženie do príslušných tried sa stará trieda DBTools. Po vytvorení inštancie
objekt triedy DBTools drží otvorený záznamový súbor. Aby bolo možné tento súbor zavrieť
v deterministickom čase implementuje trieda DBTools rozhranie IDisposable. Takto
nemusíme čakať až sa spustia upratovacie funkcie prostredia .NET a vymažú objekt z pamäti.
Objekt triedy DBtools po pripojení k databázovému súboru okamžite načíta všetky kontakty
z tabuľky Contacts. Ak sa neskôr pri spracovávaní iných záznamov objaví v zázname kontakt,
ktorý doposiaľ nebol načítaný (majiteľ záznamov ho nemal uložený vo svojich kontaktoch),
pridá sa takýto kontakt do zoznamu načítaných kontaktov. Takto nájdený kontaktný záznam
ale nebude obsahovať žiadne dodatočné informácie (napr. telefónne číslo alebo mesto
bydliska). Pri spracovávaní textových správ sa odstraňujú všetky XML elementy. V prípade
emotikonov sa text predstavujúci emotikon zabalí do znakov ’[’a ’]’.

1.2.3 Export záznamov
O export záznamov do HTML súboru sa stará statická trieda ExportTools. HTML dokument
je vytváraný pomocou rozhrania DOM. Trieda poskytuje možnosť exportu kontaktných
informácii a logových udalostí, alebo len jedného z uvedených. Na zobrazenie záznamov
v HTML stránke sa používajú tabuľky, ktoré sú navrhnuté tak, aby sa dali jednoducho
strojovo spracovať.




Argumentácia:

Vybraný text je časť mojej bakalárskej práce s názvom Nástroj pre analýzu logov aplikácie Skype,
konkrétne približuje návrhovú a implementačnú časť aplikácie. Do kontextu môjho štúdia zapadá
prirodzene už len preto, že je to práca vypísaná Fakultou informatiky. Danú tému som si zvolil
z dôvodu, že je to moja jediná odborná práca. Názov práce odpovedá aj pôvodnému názvu
v bakalárskej práci, číslovanie odsekov je upravené.



Kľúčové slová:

Skype, Call, Message, Transfers, .NET, ISearchable, IRecord, DBTools



Anotácia:

Kapitola s názvom Návrh a implementácia je súčasťou bakalárskej práce Nástroj pre analýzu logov
aplikácie Skype, úspešne obhájenej Slavomírom Morozom v roku 2011 na Fakulte informatiky
Masarykovej univerzity. Pojednáva o funkčnej časti požadovanej aplikácie, približuje systém
implementácie – delenie do tried, rozhraní, vzťahy a prepojenia medzi nimi, priebeh jednotlivých
procesov a požiadaviek a samozrejme výsledný export požadovaných dát. Správnym výstupom by
mala byť história našej aktivity v programe Skype – záznam textových konverzácií, evidencia aktivity
a hovorov.



Literatúra:

Neuvádzam žiadne citácie relevantných zdrojov, nakoľko je to nereálne. Celý text je výsledkom
mojich vlastných myšlienok, nápadov a postrehov, od iných autorov som nepreberal nič.

Mais conteúdo relacionado

Destaque

Destaque (9)

Thấu hiểu và vượt qua sự trì hoãn
Thấu hiểu và vượt qua sự trì hoãnThấu hiểu và vượt qua sự trì hoãn
Thấu hiểu và vượt qua sự trì hoãn
 
Advertising awards
Advertising awardsAdvertising awards
Advertising awards
 
Rapid-fire BI
Rapid-fire BIRapid-fire BI
Rapid-fire BI
 
2013 ufsc rt_grad_class
2013 ufsc rt_grad_class2013 ufsc rt_grad_class
2013 ufsc rt_grad_class
 
Woocommerce
WoocommerceWoocommerce
Woocommerce
 
Yahoo Enabling Exploratory Analytics of Data in Shared-service Hadoop Clusters
Yahoo Enabling Exploratory Analytics of Data in Shared-service Hadoop ClustersYahoo Enabling Exploratory Analytics of Data in Shared-service Hadoop Clusters
Yahoo Enabling Exploratory Analytics of Data in Shared-service Hadoop Clusters
 
Modal verbs, English lessons, EFL
Modal verbs, English lessons, EFLModal verbs, English lessons, EFL
Modal verbs, English lessons, EFL
 
Project Management 101: Project Request Intake
Project Management 101: Project Request IntakeProject Management 101: Project Request Intake
Project Management 101: Project Request Intake
 
Advanced Excel &Basic Excel Training
Advanced Excel &Basic Excel TrainingAdvanced Excel &Basic Excel Training
Advanced Excel &Basic Excel Training
 

Semelhante a ukol KPI (11)

Zverecny ukol
Zverecny ukolZverecny ukol
Zverecny ukol
 
zaverecny_ukol
zaverecny_ukolzaverecny_ukol
zaverecny_ukol
 
Magsa-generovanie
Magsa-generovanieMagsa-generovanie
Magsa-generovanie
 
Mdsd
MdsdMdsd
Mdsd
 
Interne dsl
Interne dslInterne dsl
Interne dsl
 
Programovanie v C++
Programovanie v C++Programovanie v C++
Programovanie v C++
 
Prezentácia: Diplomový seminár
Prezentácia: Diplomový seminárPrezentácia: Diplomový seminár
Prezentácia: Diplomový seminár
 
Správa pamäte
Správa pamäteSpráva pamäte
Správa pamäte
 
There is much more to C
There is much more to CThere is much more to C
There is much more to C
 
CCNA Semester 1 - Chapter 2
CCNA Semester 1 - Chapter 2CCNA Semester 1 - Chapter 2
CCNA Semester 1 - Chapter 2
 
Záverečná úloha KPI
Záverečná úloha KPIZáverečná úloha KPI
Záverečná úloha KPI
 

ukol KPI

  • 1. 1 Návrh a implementácia 1.1 Členenie aplikácie Z dôvodu lepšej prehľadnosti a jednoduchšieho udržovania kódu je aplikácia rozdelená do dvoch menných priestorov. Dáta a aplikačná logika, pomocou ktorej je možné dáta spracovávať, sa nachádzajú v mennom priestore SkypeLogViewer.Model. Menný priestor SkypeLogViewer obsahuje prvky grafického rozhrania a funkcionalitu, pomocou ktorej sa dáta zobrazujú. 1.2 Aplikačná časť 1.2.1 Dátový model Jednou z najdôležitejších častí návrhu aplikácie je vytvorenie dátového modelu. Ten určuje aké dáta sa budú zo záznamov spracovávať a následne zobrazovať, a akým spôsobom budú uložené. Hovory Telefónne hovory alebo hovory v rámci siete Skype reprezentujú triedy Call, AnsweredCall a UnAnsweredCall. V prípade triedy Call ide o abstraktnú triedu poskytujúcu základ pre triedy AnsweredCall a UnAnsweredCall. Trieda UnAnsweredCall predstavuje hovor, ktorý jedna zo strán neprijala. Uchovávajú sa len informácie o čase udalosti a o účastníkovi, ktorý sa na udalosti podieľal. Na druhú stranu, trieda AnsweredCall uchováva informácie o hovore, ktorý skutočne prebehol. Narozdiel od neprijatého hovoru sa musia uchovávať informácie o čase príchodu a dobe trvania u každého účastníka. Tieto informácie sú zabalené do triedy Conference-Member. Trieda AnsweredCall teda obsahuje zoznam účastníkov reprezentovaných triedou ConferenceMemeber. Textová komunikácia Textovú komunikáciu zastupuje trieda Chat. Obsahuje zoznam kontaktov, ktorí sa na komunikácii podieľali a zoznam správ, ktoré boli v danej komunikácii zaslané. Každá správa je reprezentovaná triedou Message, ktorá nesie informácie identifikujúce autora správy, čas odoslania správy a samotné telo správy. Trieda Chat obsahuje len správy typu 3. Informácie obsiahnuté v správach typu 7 sú totožné s informáciami, ktoré reprezentujú triedy SMS a Transfer a preto sa tieto správy aplikáciou nespracovávajú. Z tela správ boli pri nahrávaní dát odstránené všetky XML prvky. SMS správy a prenosy súborov SMS správy sú v dátovom modeli reprezentované triedou SMS, informácie o prenosoch súborov triedou Transfers. Obidve triedy uchovávajú prakticky všetky informácie, ktoré boli v logových záznamoch rozpoznané. Reprezentácia časových údajov Na uchovanie času, v ktorom prebehla určitá udalosť, sme použili štruktúru DateTime, ktorá je súčasťou .NET knižnice. V neskoršej fáze vývoja sme natrafili na problém, kde do premennej typu DateTime nie je možné uložiť prázdnu (null) hodnotu a tak sme začali čas reprezentovať štruktúrou DateTime zabalenou do generickej triedy Nullable. Na reprezentáciu doby trvania určitej udalosti sa nám žiadnu podobnú už implementovanú triedu nájsť nepodarilo a tak sme pre tento účel implementovali triedu Duration. Tá uchováva dobu trvania v sekundách a obsahuje metódy, ktoré dokážu čas uložený v takomto formáte transformovať na iné formáty reprezentácie času, ktoré sú užívateľsky prívetivejšie.
  • 2. Rozhranie ISearchable Rozhranie ISearchable v sebe implementujú triedy nesúce informáciu, ktorú je možné prehľadávať na výskyt konkrétneho textového reťazca. Ide o triedy Message a SMS, kde sa zadaný reťazec vyhľadáva v tele týchto správ. Výsledok takéhoto vyhľadávania je objekt triedy SearchResult, v ktorom sa nachádza hľadaný reťazec a zoznam pozícií, na ktorých sa v správe reťazec vyskytuje. Rozhranie IRecord Ide o rozhranie, ktoré je implementované všetkými triedami, ktoré reprezentujú ucelený záznam. Sú to triedy Call, Chat, SMS a Transfer. Pomocou tohto rozhrania sa tieto triedy zaväzujú k jednotnému prístupu k základným informáciám, ktoré sú všeobecné pre každý záznam. Je možné získať informácie o začiatku a konci udalosti, zoznam všetkých účastníkov a textový reťazec popisujúci typ záznamu. V prípade, že logová udalosť neprebiehala dlhšiu časovú dobu, ale len nastala v konštantnom čase, dotaz na čas konca udalosti vráti prázdnu hodnotu. UML diagram vytvorený v programe Visual Paradigm 1.2.2 Načítanie záznamov O otvorenie databázového súboru uchovávajúceho záznamy, spracovanie záznamov a následne uloženie do príslušných tried sa stará trieda DBTools. Po vytvorení inštancie objekt triedy DBTools drží otvorený záznamový súbor. Aby bolo možné tento súbor zavrieť v deterministickom čase implementuje trieda DBTools rozhranie IDisposable. Takto nemusíme čakať až sa spustia upratovacie funkcie prostredia .NET a vymažú objekt z pamäti.
  • 3. Objekt triedy DBtools po pripojení k databázovému súboru okamžite načíta všetky kontakty z tabuľky Contacts. Ak sa neskôr pri spracovávaní iných záznamov objaví v zázname kontakt, ktorý doposiaľ nebol načítaný (majiteľ záznamov ho nemal uložený vo svojich kontaktoch), pridá sa takýto kontakt do zoznamu načítaných kontaktov. Takto nájdený kontaktný záznam ale nebude obsahovať žiadne dodatočné informácie (napr. telefónne číslo alebo mesto bydliska). Pri spracovávaní textových správ sa odstraňujú všetky XML elementy. V prípade emotikonov sa text predstavujúci emotikon zabalí do znakov ’[’a ’]’. 1.2.3 Export záznamov O export záznamov do HTML súboru sa stará statická trieda ExportTools. HTML dokument je vytváraný pomocou rozhrania DOM. Trieda poskytuje možnosť exportu kontaktných informácii a logových udalostí, alebo len jedného z uvedených. Na zobrazenie záznamov v HTML stránke sa používajú tabuľky, ktoré sú navrhnuté tak, aby sa dali jednoducho strojovo spracovať. Argumentácia: Vybraný text je časť mojej bakalárskej práce s názvom Nástroj pre analýzu logov aplikácie Skype, konkrétne približuje návrhovú a implementačnú časť aplikácie. Do kontextu môjho štúdia zapadá prirodzene už len preto, že je to práca vypísaná Fakultou informatiky. Danú tému som si zvolil z dôvodu, že je to moja jediná odborná práca. Názov práce odpovedá aj pôvodnému názvu v bakalárskej práci, číslovanie odsekov je upravené. Kľúčové slová: Skype, Call, Message, Transfers, .NET, ISearchable, IRecord, DBTools Anotácia: Kapitola s názvom Návrh a implementácia je súčasťou bakalárskej práce Nástroj pre analýzu logov aplikácie Skype, úspešne obhájenej Slavomírom Morozom v roku 2011 na Fakulte informatiky Masarykovej univerzity. Pojednáva o funkčnej časti požadovanej aplikácie, približuje systém implementácie – delenie do tried, rozhraní, vzťahy a prepojenia medzi nimi, priebeh jednotlivých procesov a požiadaviek a samozrejme výsledný export požadovaných dát. Správnym výstupom by mala byť história našej aktivity v programe Skype – záznam textových konverzácií, evidencia aktivity a hovorov. Literatúra: Neuvádzam žiadne citácie relevantných zdrojov, nakoľko je to nereálne. Celý text je výsledkom mojich vlastných myšlienok, nápadov a postrehov, od iných autorov som nepreberal nič.