188
SLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií Ilkovičova 3, 842 16 Bratislava 4 HOREX plánovanie a simulácia horolezeckej expedície Tím 04 Bc. Miroslav Kallo Bc. Ľubomír Lajoš Bc. Ladislav Rado Bc. Peter Ruttkay – Nedecký Bc. Peter Šupina Bc. Tomáš Tóth

SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

SLOVENSKÁ TECHNICKÁ UNIVERZITAFakulta informatiky a informačných technológií

Ilkovičova 3, 842 16 Bratislava 4

HOREX –

plánovanie a simulácia horolezeckej expedícieTím 04

Bc. Miroslav KalloBc. Ľubomír LajošBc. Ladislav Rado

Bc. Peter Ruttkay – NedeckýBc. Peter ŠupinaBc. Tomáš Tóth

Študijný odbor: Softvérové inžinierstvoRočník: 1. Ing.Predmet: Tvorba softvérového systému v tímeVedúci projektu: Doc. Ing. Martin Šperka, PhD.

Page 2: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Ak. rok: 2006/2007

ii

Page 3: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Obsah

0 ÚVOD............................................................................................................................................................IV

0.1 ÚČEL A ROZSAH DOKUMENTU................................................................................................................IV0.2 PREHĽAD DOKUMENTU...........................................................................................................................IV0.3 ODKAZY A ZDROJE.................................................................................................................................VI0.4 SLOVNÍK POJMOV PROBLÉMOVEJ OBLASTI............................................................................................VII0.5 SKRATKY...............................................................................................................................................VII0.6 POUŽITÁ NOTÁCIA.................................................................................................................................VII

1 ANALÝZA......................................................................................................................................................1

1.1 PREHĽAD PROBLÉMOVEJ OBLASTI............................................................................................................11.2 ANALÝZA TECHNICKÝCH PROSTRIEDKOV..............................................................................................20

2 ŠPECIFIKÁCIA POŽIADAVIEK NA SYSTÉM.....................................................................................26

2.1 FUNKCIE PRODUKTU..............................................................................................................................262.2 VLASTNOSTI PRODUKTU........................................................................................................................282.3 DIAGRAM PRÍPADOV POUŽITIA SYSTÉMU...............................................................................................302.4 HRÁČI.....................................................................................................................................................312.5 PRÍPADY POUŽITIA.................................................................................................................................31

3 NÁVRH SYSTÉMU.....................................................................................................................................38

3.1 VÝPOČET ENERGIE HOROLEZCA.............................................................................................................383.2 NÁVRH ATRIBÚTOV VÝBAVY A VÝSTROJA............................................................................................403.3 SPÔSOB ULOŽENIA ÚDAJOV O VÝSTROJI A MANIPULÁCIA S TÝMITO ÚDAJMI........................................413.4 DIAGRAM TRIED SYSTÉMU.....................................................................................................................443.5 NÁVRH PROCESU SIMULÁCIE.................................................................................................................47

4 REVÍZIA ŠPECIFIKÁCIE POŽIADAVIEK NA SYSTÉM...................................................................49

5 PODROBNÝ NÁVRH.................................................................................................................................53

5.1 NÁVRH SYSTÉMU...................................................................................................................................535.2 NÁVRH STAVOV SIMULÁCIE...................................................................................................................585.3 NÁVRH ZAPISOVAČA (LOGGER).............................................................................................................645.4 NÁVRH ROZVRHU...................................................................................................................................665.5 NÁVRH MODELU POČASIA......................................................................................................................705.6 NÁVRH VSTUPNO-VÝSTUPNÉHO PODSYSTÉMU......................................................................................785.7 NÁVRH MODELU HOROLEZCA................................................................................................................845.8 NÁVRH AKTIVÍT A ÚLOH HOROLEZCA....................................................................................................895.9 NÁVRH REPREZENTÁCIE TERÉNU A TRASY EXPEDÍCIE V SIMULÁCII......................................................965.10 NÁVRH MODELU INVENTÁRA...............................................................................................................1065.11 NÁVRH POUŽÍVATEĽSKÉHO ROZHRANIA..............................................................................................113

6 ZMENY ŠPECIFIKÁCIE, PRIORITY RIEŠENIA...............................................................................123

6.1 ZMENY V ŠPECIFIKÁCII.........................................................................................................................1236.2 PRIORITY RIEŠENIA..............................................................................................................................124

7 IMPLEMENTÁCIA...................................................................................................................................125

7.1 VÝBER IMPLEMENTAČNÉHO JAZYKA A PROSTREDIA...........................................................................1257.2 OPIS REALIZÁCIE..................................................................................................................................1257.3 OHRANIČENIA......................................................................................................................................125

8 TECHNICKÁ DOKUMENTÁCIA..........................................................................................................127

9 Zhodnotenie..................................................................................................................................................128

iii

Page 4: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Zoznam obrázkov

obr. 1. Podiel atribútov horolezca na celkovej výkonnosti.......................................................................2obr. 2. Význam atribútov pri lezení po skale............................................................................................3obr. 3. Význam atribútov pri lezení po ľadovci........................................................................................4obr. 4. Závislosť energie horolezca od parametrov prostredia...............................................................14obr. 5 Diagram prípadov použitia systému.............................................................................................30obr. 6. Diagram aktivít Inicializácia simulácie.......................................................................................32obr. 7. Diagram aktivít Výber kroku simulácie......................................................................................34obr. 8. Diagram aktivít Vytvorenie modelu hory...................................................................................36obr. 9. Závislosť energie od vlastnosti horolezca, prostredia a inventáru..............................................39obr. 10 Diagram tried systému...............................................................................................................44obr. 11 Diagram aktivít Proces simulácie...............................................................................................47obr. 12 Diagram prípadov použitia systému...........................................................................................49obr. 13 diagram aktivít Inicializácia simulácie.......................................................................................50obr. 14 Diagram aktivít Výber kroku simulácie.....................................................................................51obr. 15 Diagram aktivít vytvorenie modelu hory...................................................................................52obr. 16 Diagram tried systému...............................................................................................................55obr. 17 Diagram tried Vstupno-výstupná úroveň systému.....................................................................56obr. 18 Stavový diagram Stavy simulácie..............................................................................................58obr. 19 Stavový diagram Vykonávanie simulácie..................................................................................60obr. 20 Diagram tried Zapisovač............................................................................................................65obr. 21 Diagram tried Rozvrh.................................................................................................................67obr. 22 Stavový diagram Stavy počasia..................................................................................................71obr. 23 Diagram tried Model Počasia.....................................................................................................72obr. 24 Sekvenčný diagram Načítanie typov počasia.............................................................................77obr. 25 Diagram tried IO modulu...........................................................................................................81obr. 26 Diagram tried Model Horolezca.................................................................................................85obr. 27 Zdravie horolezca.......................................................................................................................87obr. 28 Preplánovanie udalosti...............................................................................................................91obr. 29 Diagram tried modulu Task a Group..........................................................................................92obr. 30 Grafické znázornenie možných trás expedície...........................................................................96obr. 31 Diagram tried terénu a trasy expedície.......................................................................................98obr. 32 Diagram tried Model Inventáru................................................................................................108obr. 1 Obrazovka Konfigurácia............................................................................................................113obr. 2 Obrazovka Hlavné menu............................................................................................................114obr. 3 Obrazovka Inicializácia simulácie.............................................................................................115obr. 4 Obrazovka Informácie o skupine horolezcov.............................................................................116obr. 5 Obrazovka Informácie o horolezcoch........................................................................................116obr. 6 Obrazovka Aktuálne počasie......................................................................................................117obr. 7 Obrazovka Lokalita....................................................................................................................117obr. 8 Obrazovka Vytvorenie skupiny...................................................................................................118obr. 9 Obrazovka Pridelenie materiál horolezcom..............................................................................118obr. 10 Obrazovka Zadanie úlohy pre skupinu horolezcov..................................................................119obr. 11 Obrazovka Vytvorenie trasy.....................................................................................................119obr. 12 Obrazovka Nastavenie času úlohy...........................................................................................120obr. 13 Obrazovka Informácie o úlohe.................................................................................................120obr. 14 Obrazovka MessageBox...........................................................................................................121obr. 15 Obrazovka O aplikácii.............................................................................................................122

iv

Page 5: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

0 Úvod

0.1 Účel a rozsah dokumentuPredkladaný dokument obsahuje špecifikáciu softvérového systému “HOREX – plánovanie

a simulácia horolezeckej expedície“.

Dokument je výsledkom študentského projektu v predmete Tvorba softvérového systému v tíme.

Vzhľadom na neexistujúce riešenia, ktoré by poskytovali ucelenú aplikáciu určenú na plánovanie

a simuláciu horolezeckej výpravy, sa v tomto dokumente zameriame na základnú štruktúru zložitého

softvérového systému a najmä na fázu simulácie samotného výstupu. Systém bude možné ďalej

rozširovať.

Dokument je určený pre všetkých, ktorí sa zaujímajú o tvorbu simulačných systémov formou hry,

ale môže slúžiť aj ďalšej skupine ľudí, ktorá bude pracovať na podobnom projekte, prípadne na

rozširovaní tohto systému.

Rozsah dokumentu je primeraný práci šiestich študentov počas dvadsiatich štyroch týždňov dvoch

semestrov. Predpokladaný čas venovaný projektu na jedného študenta počas jedného týždňa je:

5 hodín + 3 hodiny prednášok + 3 hodiny stretnutia k projektu organizované každý pondelok.

0.2 Prehľad dokumentuKapitola 1 Analýza.

V tejto časti dokumentu sa nachádza prehľad problémovej oblasti, kde sú opísané štyri hlavné aspekty

problémovej oblasti – vplyvy prostredia, vlastnosti resp. atribúty horolezcov, výbava horolezcov

a činnosti a fázy výstupu – ale aj na súvislosti medzi týmito aspektmi. Ďalej sa tu nachádza analýza

vybraných technických prostriedkov.

Kapitola 2 Špecifikácia požiadaviek na systém.

V tejto časti je vyjadrená špecifikácia požiadaviek na systém prostredníctvom diagramu prípadov

použitia, popisom jednotlivých jeho entít – hráčov a prípadov použitia. Najdôležitejšie prípady

použitia sú vyjadrené aj pomocou diagramov aktivít.

Kapitola 3 Návrh systému.

Táto časť dokumentácie obsahuje návrh závislosti energie horolezca od rôznych faktorov, návrh

atribútov výbavy a výstroja ako aj spôsob uloženia týchto údajov. Ďalej je tu opísaný diagram tried

navrhovaného systému ako aj základná časť systému – simulačný proces horolezeckej expedície.

v

Page 6: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Kapitola 4 Revízia špecifikácia požiadaviek na systém.

V tejto kapitole sú uvedené opravy a zmeny týkajúce sa špecifikácie systému, ktoré vyplynuli

s uvedomenia si určitých nedostatkov alebo chýb.

Kapitola 5 Podrobný návrh.

V tejto časti je uvedený podrobný opis a návrh celého systému. Sú tu bližšie charakterizované

jednotlivé modely, pričom pre každý z nich je uvedený jeho popis, význam a účel, návrh v podobe

diagramu tried, opis tried a ich atribútov a metód. Toto je doplnené o diagramy využívajúce ďalšie

techniky zápisu, obrázky, tabuľky a pod.

Kapitola 6 Zmeny špecifikácie, priority riešenia.

V tejto kapitole sú uvedené zmeny v špecifikácii systému, ktoré vyplynuli zo zmien požiadaviek alebo

zo zistení, že takéto požiadavky nemožno alebo nie je vhodné splniť. Ďalej sú tu uvedené priority

riešenia systému, podľa ktorých sa postupovalo pri vývoji systému.

Kapitola 7 Implementácia.

V tejto časti sú opísané vybrané jazyky, prostredia a nástroje použité pri implementácii systému. Ďalej

je tu uvedený opis realizácie systému, predovšetkým špecifické charakteristiky pri implementácii

systému. Taktiež sú tu uvedené ohraničenia systému, predovšetkým čo sa týka nárokov na softvér

a hardvér.

Kapitola 8 Technická dokumentácia.

V tejto kapitole je uvedená technická dokumentácia k implementácii systému.

Kapitola 9 Zhodnotenie.

V tejto kapitole je uvedené zhodnotenie ako vytvoreného systému, tak aj prác na vývoji tohto systému.

vi

Page 7: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

0.3 Odkazy a zdroje1. Bieliková, M. Softvérové inžinierstvo: Princípy a   manažment , Slovenská technická univerzita

v Bratislave, 2000.

2. Adventure Peaks Online Shop, https://www.secured-url.co.uk/adventurepeaks/acatalog/index.html

3. Everest Gear - Supplies and products for climbing enthusiasts and mountain climbers,

http://store.everestgear.com/climbing---mountaineering.html

4. gearEXPRESS.com, http://www.gearexpress.com

5. Climbing Shop | US Outdoor, http://www.usoutdoorstore.com/climbing.htm

6. Bezpečne na horách, http://www.kstst.sk/pages/vht/hory.htm

7. Vplyv vetra na teplotu ovzdušia, http://www.kstst.sk/pages/vht/meteo/ekvitemp.htm

8. Lavíny, http://www.kstst.sk/pages/vht/laviny1.htm

9. Mountaineering Hazards, http://www.abc-of-mountaineering.com/info/mountaineering-

hazards.asp

10. Zdravotné riziká vo výškach, http://www.kstst.sk/pages/vht/akli2.htm

11. Omrzliny, http://www.horska-medicina.cz/omrzliny.htm

12. Forest Fires - Prevention & Survival, http://www.abc-of-hiking.com/natural-hazards/forest-

fires.asp

13. Animal & Insect Hazards and Attacks, http://www.abc-of-hiking.com/animal-hazards/

14. Aklimatizácia, http://www.kstst.sk/pages/vht/akli1.htm

15. Transportation - Climbers guide to K2, http://www.k2climb.net/expguide/transportation.htm

16. Climbing 8000m Peaks, http://www.planetfear.com/article_detail.asp?a_id=542 a

http://www.planetfear.com/article_detail.asp?a_id=543

17. Promit, R.: Direct3D vs. OpenGL: Which API to Use When, Where, and Why.

http://www.gamedev.net/reference/articles/article1775.asp

18. Simple DirectMedia Layer project. domovská stránka SDL, http://www.libsdl.org/index.php

19. The OGRE Team. domovská stránka ORGE, http://www.ogre3d.org/

20. The OGRE Team. OGRE Manual v1.2.2, http://www.ogre3d.org/docs/manual/

21. The OGRE Team. OGRE API Reference, http://www.ogre3d.org/docs/api/html/

22. polymorph. Ogre Forums : Code Snippet: Ogre in a Win32 MFC App,

http://www.ogre3d.org/phpBB2/viewtopic.php?t=14211

vii

Page 8: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

0.4 Slovník pojmov problémovej oblastiVýbava je v tomto prípade súhrn horolezeckých pomôcok, výstroja, jedla a iného materiálu

potrebného k horolezeckej expedícii.

Reinhold Messner je známy vysokohorský horolezec pochádzajúci z Rakúska. Zdolal medzi inými

osem najvyšších vrchov sveta.

0.5 Skratky

Skratka Vysvetlenie

2D Dvojrozmerné

API Aplikačné programové rozhranie

DOM Document Object Model – objektová reprezentácia dokumentu, štandard W3C

DTD Document Type Definition – jazyk na presné definovanie štruktúry XML dokumentov

GUI Grafické používateľské rozhranie

MSXML Microsoft XML – implementácia XML technológií od firmy Microsoft

SAX Simple API for XML – API pre udalosťami riadené spracovanie XML dokumentov

W3C World Wide Web Consortium – medzinárodné zoskupenie organizácií okolo internetu

XML eXtensible Markup Language – jazyk na opis údajov (pridáva meta-informácie)

XSL eXtended Stylesheet Language – jazyk na opis zobrazenia údajov z XML

0.6 Použitá notáciaCieľom tejto kapitoly je priblížiť čitateľovi schematické vyjadrovacie prostriedky používané

v softvérovom inžinierstve. V dokumente sú schémy vypracované na základe štandardu UML, ktorého

hlbší popis môže čitateľ nájsť v [1].

viii

Page 9: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

0.6.1 Diagram prípadov použitia

- prípad použitia – pomenovaná a štruktúrovaným textom opísaná

typická interakcia (scenár) medzi používateľom a systémom.

- hráč – pomenovaná úloha používateľa alebo iného systému, ktorú tento hrá vo vytváranom systéme.

- asociácia – medzi hráčom a prípadom použitia. Šípka znázorňuje smer inicializácie, nie tok alebo

prenos údajov.

- závislosť – symbolizuje zahrnutie prípadu použitia, ku ktorému smeruje

šípka do prípadu použitia od ktorého smeruje šípka.

- závislosť – symbolizuje rozšírenie prípadu použitia, ku ktorému smeruje

šípka prípadom použitia od ktorého smeruje šípka

- zovšeobecnenie – vyjadruje vzťah medzi dvoma hráčmi alebo dvoma

prípadmi použitia. Indikuje, že špecializujúci prípad použitia / hráč je zhodný

so všeobecným a navyše pridáva doplnkové informácie (šípka smeruje od

špecializujúceho prípadu použitia / hráča k všeobecnému prípadu použitia / hráčovi.

0.6.2 Diagram činností

- časť v ktorej sa daná aktivita odohráva. V tomto návrhu sa vyskytuje len

používateľ a systém.

- aktivita prebiehajúca v rámci prípadu použitia. Popisuje činnosť, ktorú daná časť

vykonáva.

- vetvenie. Vstupujúca šípka udáva podmienku a vystupujúce šípky naznačujú ďalší postup.

ix

Systém

Page 10: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

- koncový stav diagramu činností, v ňom končí posledná vykonávaná aktivita.

- počiatočný stav diagramu činností, z neho sa spúšťa prvá aktivita.

- smer časovej následnosti jednotlivých aktivít. Prípadný komentár udáva udalosť, alebo

podmienku, za ktorej aktivita daným smerom pokračuje.

- poznámka. Umožňuje vložiť rôzne doplňujúce informácie, ako

napr. zavolanie ďalšieho diagramu činností.

- horizontálna synchronizácia. Slúži na ako kontrolný bod pre zosynchronizovanie paralelne sa

vykonávajúcich činností.

0.6.3 Diagram tried

- dátová entita – trieda – reprezentuje akúkoľvek informáciu, ktorú treba uchovávať. Je to určité

zoskupenie údajov, ktoré k sebe logicky patria a ktoré skúmame v rámci analýzy.

Skladá sa z mena – podstatné meno v jednotnom čísle a zoznamom atribútov (pomenovaných

vlastností entity).

- zovšeobecnenie – je to vzťah medzi všeobecnou objektovou triedou a jej

konkrétnymi potomkami. Potomkovia dedia všetky vlastnosti (v našom prípade

atribúty) a rozširujú svoju triedu o nové vlastnosti.

- zoskupenie – hovorí, že jedna entita je súčasťou druhej entity. Napr. Mesto je

súčasťou Kraja.

- väzba – určuje vzťah medzi entitami. Je pomenovaná slovesom. V podstate

vyjadruje, že “čo robí jeden z týchto (inštancia entity1) pre jedného z tamtých

(inštancia entity2)”.

x

Page 11: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

0.6.4 Stavové modely entít

- počiatočný stav entity – je to povinný stav a môže byť len jeden. Z tohto stavu sa začína

kresliť diagram. Určuje stav, v ktorom sa entita nachádza, po vytvorení v systéme.

- koncový stav entity – nie je povinný a môže ich byť aj viac. Určuje stav, v ktorom môže byť

entita v systéme zrušená.

- stav, v ktorom sa môže entita nachádzať v určitom čase. Je to pomenovaná situácia jedného objektu

počas jeho existencie, v ktorej spĺňa nejakú podmienku, čaká na nejakú udalosť alebo

vykonáva nejakú činnosť.

- prechod medzi jednotlivými stavmi entity. Entita môže prejsť len do toho stavu, do ktorého je

znázornený prechod.

0.6.5 Diagram komponentov

- komponent - spustiteľná časť kódu. Poskytuje súhrn daných služieb

formou čiernej skrinky. Jeho služby sú dostupné iba prostredníctvom

konzistentného, publikovaného rozhrania, ktoré zahrňuje

komunikačné štandardy.

- závislosť, vyjadruje vzťah medzi komponentmi. Šípka smeruje od závislého ku

hlavnému komponentu.

xi

Page 12: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

1 AnalýzaAnalýza problémovej oblasti vychádza z nasledovného zadania projektu:

Vytvorte systém pre simuláciu a plánovanie horolezeckej výpravy.

Systém s atraktívnym používateľským rozhraním bude slúžiť ako hra ako aj pri plánovaní

horolezeckých expedícií, hlavne pre výpočet množstva materiálu, času prípravy a pôsobenia expedície

a analýzu pravdepodobnosti splnenia cieľov s ohľadom na možné riziká formou hry. Scenár použitia

hry je nasledovný: Používateľ zadá ciele expedície a systém mu vypočíta odhad množstva materiálu -

stany, jedlo, laná, atď. Tieto môže vložiť aj ručne. Simulácia prebieha tak, že používateľ (hráč) volí

nasledovný krok a systém simuluje jeho plnenie, pričom môžu nastať náhodné javy ako zhoršenie

počasia, ochorenie člena výpravy, lavína ktorá zasype tábor. Hráč má k dispozícii aj predpoveď

počasia, ktorá sa ale môže meniť. Hra končí alebo splnením cieľa alebo stroskotaním expedície z

rôznych dôvodov ako je chybné plánovanie zloženia expedície, málo materiálu, zlé dlhodobé a

krátkodobé rozhodnutia.

Program pre simuláciu je stavový stroj, kde prechod do nasledujúceho stavu riadi vedúci

expedície na základe existujúceho stavu a vonkajších podmienok (zdravie a výkonnosť členov

expedície, predpoveď počasia). Prechod do nasledujúceho stavu nie je deterministický ale môže byť

ovplyvnený nečakanými udalosťami (nesplnenie úlohy vplyvom vyčerpanosti, zhoršenie počasia, pád

horolezca, lavína atď., ktoré sa môžu vyskytnúť s istou pravdepodobnosťou. Táto pravdepodobnosť

závisí od obtiažnosti terénu alebo počasia v danom období - stabilné alebo nestabilné obdobie).

Parametre určujúce stav systému sú konštanty, nastaviteľné pre každú expedíciu alebo sa môžu meniť

počas simulácie. Modely členov expedície môžu byť autonómne agenty, ktorých chovanie sa môže

nedeterministicky meniť (parameter ako výkonnosť - schopnosť prekonať určité prevýšenie v určitom

čase a s určitou záťažou v určitej nadmorskej výške). Parametre simulovaných objektov a ich rozptyl

budú k dispozícii v prvej etape riešenia projektu. Výsledky by boli vo forme zoznamov, čísiel, grafov

a interaktívna hra s grafickým rozhraním, kde prostredie (hora, tábory) a horolezci (agenti) môžu byť

zobrazení viac alebo menej realisticky.

1.1 Prehľad problémovej oblastiV tejto časti sa zameriavame na štyri hlavné aspekty problémovej oblasti – vplyvy prostredia,

vlastnosti resp. atribúty horolezcov, výbava horolezcov a činnosti a fázy výstupu – ale aj na súvislosti

medzi týmito aspektmi.

1

Page 13: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

1.1.1 Vlastnosti (parametre) horolezcov

1.1.1.1 Dôležité vlastnosti

obr. 1. Podiel atribútov horolezca na celkovej výkonnosti

Balansovanie

Môže byť definované ako schopnosť udržať určitú pozíciu, stabilizovanie tela. Každý pohyb horolezca

závisí od bilancovania v danej situácií. Je determinované hlavne koordináciou jednotlivých pohybov

a predchádzajúcimi skúsenosťami v horolezectve. Balansovanie je veľmi dôležité na správne využitie

ostatných schopnosti horolezca

Technika

Aj silovo slabší horolezec môže s dobrou technikou dosiahnuť dobrý výkon. Špičkový horolezci musia

ovládať veľmi dobre techniku lezenia. Avšak veľmi dôležité je vedieť, že pri rôznych typoch terénu sa

používajú rôzne techniky.

Lezenie tvárou k skale

Chôdza

Lezenie v špárach

Zlaňovanie

Lokálna výdrž

Je determinovaná schopnosťou tela vykonávať miernu silovú záťaž (50 – 60% z max.) po dlhšiu dobu

(3 min). Vzťahuje sa hlavne na vykonanie kratších a plynulých trás. Trénovaním môže horolezec

využíva menej energie a obnovuje silu pri lezení.

Silová výdrž

Silová výdrž opisuje výkon blízko maximálneho výkonu po určité, značné časové obdobie. Je veľmi

dôležitá pri náročných trasách s veľkým uhlom. Veľmi rýchlo sa unavuje telo.

2

Page 14: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Výkonnosť

Výkonnosť sa ráta ako práca vykonaná za jednotku času. Výkonnosť hrá dôležitú úlohu pri náročnom

horolezectve. Najväčšiu silu môžu horolezci používať najviac 30 s. Veľmi dôležitá je maximálna

a celková výkonnosť horolezca.

Sila

Je to schopnosť výkonu. Keď hovoríme o tom aké silné máme svaly hovoríme o tom akú silu vie daný

sval vykonať. Sila je dôležitá na plynulé premiestňovanie sa horolezca po jeho trase. Aj každá

technika vyžaduje určitú dávku sily. Pri náročných trasách je jedným z hlavných atribútov horolezcov.

1.1.1.2 Významnosť atribútov pri rôznych druhoch lezenia

Dôležitosť jednotlivých atribútov pri lezení po skale vyjadruje polygón vo vnútri osemuholníka na

obr. 2.

obr. 2. Význam atribútov pri lezení po skale

Dôležitosť jednotlivých atribútov pri lezení po ľadovci (vysokohorský výstup) vyjadruje polygón vo

vnútri osemuholníka na obr. 3.

3

Page 15: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

obr. 3. Význam atribútov pri lezení po ľadovci

1.1.1.3 Spotreba kalórií za hodinu (70 kg horolezec)

Vertikálne lezenie 770 cal/h

chodenie po horách s 20 kg ruksakom 630 cal/h

chodenie po horách s 35 kg ruksakom 840 cal/h

1.1.2 Výstroj a výbava horolezcov

Pri plánovaní expedícií je treba klásť veľký dôraz na výbavu, ktorú si so sebou musíme vziať. Táto

výbava zahŕňa oblečenie, pomôcky na táborenie, horolezecký výstroj, lieky a ďalšie podporné

prostriedky. Treba brať do úvahy poveternostné podmienky daného miesta. Niektoré vybavenie si

nesie každý horolezec sám, iné je spoločné a nesú ho nosiči alebo niektorý zvolený horolezec.

Na internete je možné nájsť viacero obchodov, ktoré ponúkajú horolezeckú výbavu, napr. [2],

[3], [4] a [5]. Tu je možné vidieť všetok štandardný inventár, ktorý je potrebný pre expedíciu.

1.1.2.1 Základné kategórie materiálu

Z analýzy ponúkaného tovaru v obchodoch a z informácií, ktoré nám poskytol doc. Šperka, môžeme

inventár rozdeliť na nasledovné kategórie:

Oblečenie

Veci na spanie

Kuchyňa a jedlo

Horolezecký výstroj

4

Page 16: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Svietidlá

Komunikačné pomôcky

Navigačné pomôcky

Zdravie

Lieky

Ostatný výstroj

V nasledujúcej tabuľke je celkový prehľad analyzovaného inventáru. Je tu uvedený nástroj

výstroja, jeho primárny účel, na ktorý slúži, a indikátor množstva – či je potrebné, aby danú vec mal

každý člen expedície alebo nie.

  Účel: Množstvo:Oblečenie:    

spodná bielizeň chráni pred chladom jednotlivecspodky chráni pred chladom jednotlivec

hrubé ponožky chráni pred chladom jednotliveckošeľa chráni pred chladom jednotlivec

nohavice chráni pred chladom jednotlivecsveter chráni pred chladom jednotlivec

teplá vesta chráni pred chladom jednotlivecnepremokavá bunda chráni pred chladom a vlhkom jednotlivec

pršiplášť chráni pred vlhkom jednotlivecrukavice chráni pred chladom jednotlivec

čiapka chráni pred chladom jednotlivectvárová maska chráni pred vetrom a mrazom jednotlivec

slnečné okuliare ochrana pred slnkom jednotlivecochranné okuliare ochrana pred slnkom a vetrom jednotlivec

pevná kožená obuv chráni pred chladom, umožňuje pohyb v teréne jednotlivecSpanie:    

spací vak chráni pred chladom, miesto na spanie jednotliveckarimatka tvorí tepelnú izoláciu od zeme jednotlivec

skladacie stoličky miesto na sedenie -stan chráni pred vetrom, mrazom a zrážkami, úkryt -

Kuchyňa:    varič prístroj na prípravu jedla -

plynové bomby palivo do variča -nádoby skladovanie jedla a tekutín -

termosky uchovanie teplých tekutín -vodný filter úprava vody do požívateľnej podoby -

tekutiny ochrana pred dehydratáciou jednotlivecinstantné jedlá energetický zdroj -

zelenina a ovocie zdroj vitamínov (tiež energie a tekutín) -energetické tyčinky nevyhnutný rýchly zdroj energie jednotlivec

Horolez. výstroj:    fixné laná slúžia na vytýčenie trasy -

mačky umožňujú pohyb v ťažkom horskom teréne jednotlivecskoby poskytujú uchytenie v skale jednotlivec1

1 predpokladá sa niekoľko kusov na osobu

5

Page 17: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

karabíny spájanie lán jednotlivec2

čakan umožňuje úpravu zľadovateného terénu jednotliveckladka umožňuje ľahko dvíhať ťažké predmety alebo ľudí jednotlivechelma ochrana hlavy jednotlivec

úväz umožňuje istiť človeka lanami jednotlivecpopruhy umožňuje istiť človeka lanami jednotlivec

slučky pohyblivé uchytenie na lane jednotlivecsnehová lopatka nástroj na odhadzovanie snehu jednotlivecskrutky do ľadu poskytujú pevné uchytenie v ľadovej kryhe jednotlivec

Svetlo:    baterka zdroj svetla jednotlivec

čelová lampa malý zdroj svetla jednotliveczápalky zdroj ohňa jednotlivec

zapaľovač zdroj ohňa jednotlivecsviečky malý zdroj svetla -

Navigácia:    hodiny určovanie času jednotlivec

kompas určovanie svetových strán jednotlivecbuzola určovanie svetových strán a azimutov -

výškomer určovanie výškovej polohy jednotlivecteleskop umožňuje vidieť do diaľky -

mapa prostriedok na orientáciu jednotlivecKomunikácia:    

vysielačky prostriedok na komunikáciu jednotlivecnotebook prostriedok na posielanie fotografií -

rádio prostriedok na predpovede -Zdravie:    

opaľovací krém ochrana pred slnkom -balzam na pery ochrana pred mrazom -

kyslíková bomba umožňuje dýchať v polohách s riedkym vzduchom -lieky pomoc proti rôznym chorobám -

lekárnička prvá pomoc jednotlivecOstatný výstroj:    

chrbtiak poskytuje úložný priestor pre ostatné veci jednotlivecsnežná pílka pomôcka na rezanie ľadu -

sekera nástroj na sekanie a pribíjanie jednotlivecsnežné topánky umožňujú pohyb v mäkkom snehu jednotlivec

nôž nástroj na rezanie jednotliveckufrík s náradím sada na opravovanie -

agregát zdroj energie -hygienické potreby umožňujú vykonanie potrieb mimo tábora jednotlivec

Tabuľka 1 Zoznam inventáru potrebného na expedíciu

1.1.2.2 Popis niektorých charakteristík výbavy horolezcov

Oblečenie

2 predpokladá sa niekoľko kusov na osobu

6

Page 18: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Bavlnené oblečenie nie je vhodné, lebo spotené odvádza teplo.

Horolezecký výstroj

Laná môžu byť statické (fixné) a dynamické. Ako materiál sa používa konope a nylon.

Nylonové laná – ľahké, flexibilné, odolné voči chladu

Konopné laná – ľahko uchopiteľné, odolné voči teplu

Navigácia a komunikácie

Členovia sú v kontakte pomocou vysielačiek. Okrem toho v základnom tábore môžu mať rádio na

získanie informácií o predpovedi počasia a v poslednej dobe je súčasťou výbavy aj notebook

s prístupom na internet, pomocou ktorého sa odosielajú fotky a podávajú sa informácie o postupe

domov.

Jedlo

V hlavnom tábore sa dajú pripraviť klasické jedlá. V táboroch sa dá jedlo pripravovať na variči.

Výhodné je brať špeciálne instantné jedlá, pretože nezaberajú veľa priestoru medzi batožinou. Do

terénu si horolezci berú energetické tyčinky. Vo väčších nadmorských výškach však nechutí jesť.

Je dôležité mať dostatok vody, preto je nutné mať vodné filtre a varič, aby bolo možné rýchlo

pripraviť vodu zo snehu alebo ľadu.

Lieky

Do základnej výbavy by mali členovia expedície zahrnúť lieky proti bolesti hlavy a žalúdka,

nevoľnosti, lieky na potlačenie výškovej choroby, nejaké základné antibiotiká, lieky proti zníženiu

príznakov dehydratácie a výškovej choroby a iné špecifické lieky, ktoré potrebujú členovia expedície.

Ostatný výstroj

Zápalky, mapy a podobné predmety, ktoré by mohli navlhnúť musia byť zabalené v igelitovom

vrecku.

1.1.2.3 Prenos výstroja a vybavenia

Do základného tábora všetok výstroj a vybavenie vynesú nosiči (je pre nich potrebné rátať s jedlom

navyše). Výbava ostane uskladnená v základnom tábore, ktorý tvorí niekoľko stanov – obytné stany

(členovia sú ubytovaný po dvoch alebo samostatne), sklad a kuchyňa. Zo základného tábora potom

potrebnú výbavu po častiach nosia horolezci sami. Na postavenie ostatných táborov sa spravidla

používajú jeden až dva stany.

7

Page 19: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

1.1.2.4 Nosnosť horolezca

Maximálna hmotnosť, ktorú môže jeden horolezec niesť je závislá od výšky. V nasledujúcej tabuľke

sú uvedené orientačné hodnoty nosnosti horolezca od výšky. Tieto hodnoty treba brať do úvahy pri

plánovaní prenosu výbavy medzi tábormi – ak hmotnosť prevyšuje nosnosť horolezca, transport sa

musí uskutočniť na viac krokov alebo výstroj musia niesť viacerí horolezci.

Výška: Hmotnosť záťaže:5000 – 6200 m n. m. 20 kg6200 – 7400 m n. m. 15 kg

nad 7400 m n. m. 10 kg

Tabuľka 2 Závislosť nosnosti horolezcov od výšky

1.1.3 Vplyvy prostredia a ich riziká

Pri výstupe na vrchol sa horolezci stretávajú s prostredím, kde vládnu rôznorodé a premenlivé

podmienky. Jednotlivé vplyvy prostredia prinášajú rôzne riziká, na ktoré by si mali horolezci dávať

pozor.

1.1.3.1 Poveternostné vplyvy

Silný vietor a búrky, blesky [6]

Ak nás prekvapí studený front a búrka nepripravených môže to vo vysokých horách dopadnúť zle.

Možný je pokles teploty o 10 - 15 °C a môže nás ohroziť studený dážď, sneženie, krúpy, búrka. Aj v

malom potoku môže prudko stúpnuť voda.

Vo výške nad 2000 m môže byť úplne iná poveternostná situácia ako dole v údolí. Aj

uprostred leta môže snežiť. Dážď, sneh podstatne sťažujú chôdzu, terén sa stane šmykľavý - hrozí

nebezpečenstvo pádu. Hustá hmla alebo nízka oblačnosť sťažujú orientáciu a znižujú rýchlosť

pochodu. Pokiaľ nie sme vhodne oblečený ľadový vietor nás podchladí behom niekoľkých minút,

preto v predpovedi oznámené búrky alebo prechod studeného frontu brať vážne. Ak prichádza búrka

vyhýbať sa zaisteným cestám a hrebeňom, kde je väčšia možnosť zásahu bleskom.

Hmla [6]

Na horách často vznikajú hmly. Hmla je zrážajúca sa vodná para na drobné kvapôčky v chladnej

vzduchovej vrstve. Veľmi sťažuje orientáciu pre nedostatok záchytných bodov vplyvom nízkej

dohľadnosti. Musíme si všímať aj nepatrné terénne útvary. Niekedy sa pozeráme i naspäť, či v

opačnom smere nie je značkovanie spoľahlivejšie.

8

Page 20: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Ak stratíme značku nesnažiť sa "nejako" postupovať ďalej ale vrátiť sa k poslednej značke a

cestu znovu hľadať. Postup naslepo neznámym vysokohorským terénom môže byť životu nebezpečný.

Za zníženej viditeľnosti alebo v nepriehľadnom teréne sa skupina musí držať spolu.

Slnko [6]

Nepodceňovať jeho účinky. Slnečné žiarenie je na horách za jasnej oblohy silnejšie ako pri mori. Preto

si musíme chrániť pokožku (krémy s vysokým UV faktorom), pery (masť na pery) a oči (dobré

slnečné alebo ľadovcové okuliare so 100% UV ochranou). Chrániť si aj hlavu pred úpalom, krk a uši

pred spálením.

Difúzne (rozptýlené) svetlo [6]

Vyskytuje sa vtedy keď je jemná hmla a presvitá slnko. Všetko je biele, sneh aj obloha. Terén je rovný

a plochý, nevrhá tiene a nie sú kontrasty. Kráčať opatrne, lebo nerozoznáme priehlbiny ani prevýšenia.

Ľahko môžeme spadnúť. Opatrne pri zjazde na lyžiach. Aj keď je hmla treba mať slnečné okuliare

lebo intenzita slnečných lúčov je vyššia.

Vplyv vetra na teplotu ovzdušia [7]

Už ste sa určite stretli s tým, ako vietor dokáže negatívne zmeniť tepelnú pohodu. Vplyvom vetra sa

prúdením (konvekciou) zvyšujú tepelné straty. Tento jav sa nazýva Wind Chill faktor (chlad vetra).

Vyjadruje stratu tepla súčasným pôsobením vetra a chladu, je priamo úmerný tepelnému gradientu a

rýchlosti prúdenia vzduchu. Jeho veľkosť udávajú niektoré meteorologické stanice vo svojej

predpovedi.

Za bezvetria sa tenká vrstva vzduchu ohrievaná ľudským telom drží blízko tela a tvorí

mikroklímu. Nepríjemný pocit chladu vzniká, keď sa prúdením odstraňuje naša mikroklíma z povrchu

tela. Preto sa nám vzduch zdá chladnejší ako je v skutočnosti. Wind chill faktor nie je fyzikálna

veličina ale dáva predstavu akú teplotu vnímame vo vetre („zdanlivý chlad“, ekvivalentná teplota).

Pociťujú ho ľudia a zvieratá, teplota na teplomery sa vplyvom vetra nemení.

Vplyv má aj relatívna vlhkosť vzduchu, čím je vyššia, tým je pôsobenie chladu väčšie. Pri silnom

vetre môžeme omrznúť aj pri plusových teplotách.

1.1.3.2 Lavíny [8]

Lavíny sú prírodným javom v zime v horách a ľudstvo sa stretáva s nimi odjakživa. Ročne spadne na

celej zemeguli viac než 1.000.000 lavín a okrem veľkých škôd pripravia lavíny len v Alpách o život

priemerne viac ako 100 ľudí ročne. Kedysi mali ľudia pred lavínami veľký rešpekt a vždy sa snažili na

základe získaných skúseností minimalizovať ich účinok. Lavíny boli dlho nevypočítateľné. Dnes

9

Page 21: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

možno pri dnešnom vedeckom poznaní relatívne dobre a presne predpovedať lavíny približne s 80 %

presnosťou, ale nikdy sa to nedá predpovedať na 100 %.

Lavínová situácia je závislá od viacerých faktorov:

Závislosť od terénu

Náchylnosť svahu k padaniu lavín je určená hlavne sklonom, orientáciou k svetovej strane (expozícia),

tvarom a členitosťou terénu, podkladom.

Závislosť od počasia

Lavína sa spustí keď je snehová vrstva nestabilná a zaťaženie je väčšie ako odpor proti pohybu. Pri

vzniku lavín majú z meteorologického hľadiska najväčší význam snehové podmienky, smer a sila

vetra spoločne s priebehom teploty. Zmena počasia môže rýchlo zmeniť lavínovú situáciu aj počas

túry.

Závislosť od snehových podmienok

Hrubšia snehová pokrývka sa vplyvom gravitácie stabilizuje lepšie ako tenká. Veľké množstvo nového

snehu býva príčinou samovoľného uvoľňovania veľkého počtu veľkých lavín. Pre posúdenie

lavínového nebezpečenstva nie je rozhodujúca celková výška snehovej pokrývky, ale intenzita zrážok,

čo znamená množstvo nového snehu za jednotku času. Či napadne 50 cm snehu za 12 alebo 24 hodín

je už veľký rozdiel. Už napadnutie viac ako 2 cm snehu za hodinu zvyšuje lavínové nebezpečenstvo.

1.1.3.3 Nebezpečný terén [9]

Padajúce kamene

Ako beží čas, skalné útvary sa rozpadávajú na menšie skaly. To môže byť spôsobené eróziou, vetrom,

topiacim sa ľadom, činnosťou zvierat. Niekedy to tiež môže zapríčinené ľudskou činnosťou, napríklad

predošlými expedíciami.

Padajúce kamene sú nebezpečné, pretože môžu spôsobiť vážne zranenia, napríklad zlomeniny.

Hoci je pred nimi možné väčšinou uskočiť, padajúce kamene môžeme aj predvídať pomocou

niektorých vonkajších znakov. Na miestach, kde kamene padajú často, môžeme dole nájsť sutiny

alebo menšie úlomky skál. Na zasnežených miestach padajúce kamene vytvárajú ryhy, ktoré sú

viditeľné z diaľky. Za každých okolností sa vyhýbajte kempovaniu alebo dlhšiemu zotrvávaniu na

miestach s týmito znakmi. Ak je potrebné nimi prejsť, urobte tak rýchlo a opatrne ako je to len možné.

Tiež môže pomôcť nasadená ochranná prilba.

Padajúci ľad

10

Page 22: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Podobne ako kamene, malé kúsky ľadu sa občas odlomia z ľadovca, keď stúpa teplota. To vedie

k padaniu ľadu. Rovnako ako padajúce kamene, aj padajúcemu ľadu by ste sa mali vyhýbať. Vo

všeobecnosti sa neodporúča liezť na ľadovcom pokryté skalné plochy počas teplého dňa, zvlášť nie, ak

sa blíži jar. Avšak miesta, kde zvyčajne ľad padá, môžu byť tiež rozpoznané podľa sutín pod nimi.

Pokiaľ to je možné, vyhýbajte sa týmto miestam.

Trhliny

Pozdĺž ľadovcov alebo snehových oblastí sa nachádzajú obrovské a hlboké praskliny alebo diery,

ktoré sú spôsobené pohybom ľadovca. Trhliny môžu byť pozorovateľné alebo skryté (zvyčajne

snehovou pokrývkou). Rozpoznávanie skrytých trhlín si od horolezca vyžaduje vysokú úroveň

skúseností. Počas chôdze naprieč ľadovcom pokrytým snehom je vašim najlepším zabezpečením to, ak

je vedúci tímu pripútaný lanom k aspoň dvom ďalším členom tímu, ktorí idú vedľa seba a priamo

nasledujú vedúceho tímu. Tým sa predíde jeho pádu na dno skrytej trhliny v prípade, ak na nejakú

stúpi. Ale aby to bolo isté, je potrebné, aby každý člen tímu prechádzajúci naprieč ľadovcom mal

tréning na zachraňovanie v takejto situácii.

Zľadovatené svahy

Pri chôdzi cez svahy pokryté ľadom alebo ťažkým snehom sú mačky nutnosťou. Mačky sú sady

kovových hrotov, ktoré môžu byť pripevnené na spodok vašej topánky. Pomáhajú tým, že prebodávajú

ľad alebo sneh, čím poskytujú dostatočnú priľnavosť na inak klzkom povrchu. Ďalším dobrým

nástrojom je cepín – tyč s čakanom na vrchu a s hrotom na spodku. Ten hrot sa používa na

zabezpečenie stability a rovnováhy počas chôdze po ľade presne ako vychádzková palica.

Zasnežené svahy

Tieto sú častejšie ako svahy s ťažkým snehom alebo ľadom. Zasnežené svahy sú vo všeobecnosti

ľahké na lezenie, ale dávajte si pozor na ľadovcové trhliny. Zvyčajne na úpätí svahu sú široké trhliny

a väčšinou príliš široké na to, aby ste ich preskočili. Prekonanie takejto ľadovcovej trhliny vyžaduje

použitie mosta, ktorého stavba môže byť dosť zložitá. Predtým ako prejdete cez zasnežený sneh,

všimnite si kvalitu snehu. Nová vrstva snehu na ľade môže byť nebezpečná, pretože prechod cez neho

môže ľahko spôsobiť lavínu. Najlepší druh snehu je ťažší typ, s ktorým sa môžete stretnúť skoro ráno.

Popoludní, ako sa zvyšuje teplota, má sneh tendenciu zmäknúť. Preto je ideálne začať túru v skorých

ranných hodinách.

11

Page 23: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

1.1.3.4 Choroby spojené s nadmorskou výškou [10]

Akútna horská nemoc (AMS - acute mountain sickness)

V podstate ide o preťaženie prípadne o dekompenzáciu organizmu na nedostatok kyslíka. Môže sa

vyskytnúť vo výškach medzi 2500 a 6000 metrov a pravdepodobne postihuje 30 až 50 % horolezcov a

trekerov. Asi 50% všetkých trekerov nad 5000 m má príznaky horskej nemoci, pri čom sa jednotlivé

príznaky prejavujú jednotlivo alebo v kombinácii. Príčinou choroby je pravdepodobne ľahký opuch

mozgu v dôsledku nedostatku kyslíka. Ťažkosti sa vyskytnú 6 až 48 hodín po dosiahnutí danej výšky a

pri zodpovedajúcom správaní po jednom alebo dvoch dňoch spontánne ustúpia.

Výškový opuch pľúc (HAPE - high altitude pulmonary edema)

Opuch pľúc sa vyskytuje v 1-3 % od kritickej výšky nad 4000 m a v počiatkoch je ťažko

rozpoznateľný, pretože príznaky sa podceňujú. K zhoršenie príde asi do 48 hodín po dosiahnutí novej

maximálnej výšky, najčastejšie v noci, pretože v ľahu je tlak v pľúcach vyšší ako v stoji. HAPE

nemusia predchádzať príznaky AMS. Po troch dňoch v novej výške je riziko, že dostaneme HAPE,

veľmi malé.

Výškový opuch mozgu (HACE - high altitude cerebral edema)

Je to ťažká forma horskej nemoci. Je zriedkavejšia ako HAPE, ale je viac nebezpečná, úmrtnosť je

okolo 40%. HACE sa všeobecne vyvíja viac dní a prejavuje sa vo výške nad 5000 m.

Nervové tkanivo mozgu reaguje veľmi citlivo na nedostatok kyslíka. Chorobu spôsobuje zmena

prekrvenia a rozdelenia tekutín. Nadmerné množstvo tekutiny v hlave stláča mozog. Dochádza

pozvoľna k opúchaniu a zvyšovaniu tlaku v mozgu čo čiastočne ovplyvňuje jeho riadiacu funkciu.

1.1.3.5 Najčastejšie zdravotné riziká

Omrzliny [11]

Omrzlina je akútne miestne poškodenie tkaniva spôsobené chladom pri teplotách pod bodom mrazu za

súčasne nízkej vlhkosti vzduchu. Pri silnom vetre k nej môže prísť aj pri vyšších teplotách.

K omrznutiu dochádza najmä na miestach úplne vystavených účinku mrazu a vetru ako sú tvár, nos,

ušné laloky alebo na miestach nedostatočne chránených – na prstoch rúk a nôh. Teplota na týchto

periférnych častiach klesá v chlade oveľa rýchlejšie.

Dehydratácia

Dehydratácia je spôsobená nedostatočným prísunom tekutín do organizmu. Pri dehydratácii má krv

zvýšenú hustotu, jej cirkulácia v tele je pomalšia a preto sa zvyšuje riziko vzniku omrzlín. Preto je

dôležitý pravidelný prísun tekutín, najlepšie čistej vody.

12

Page 24: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

1.1.3.6 Lesné požiare [12]

V prírode je vo všeobecnosti veľké riziko vzniku požiarov. Suchá tráva, konáriky, listy a stromy, to

všetko vytvára perfektné palivo, ktoré sa môže jednoducho vznietiť a vytvoriť dravý požiar.

1.1.3.7 Riziká spojené s faunou [13]

Hlavne v nižšie položených (nielen) horských oblastiach sa horolezci môžu stretnúť s rizikami, ktoré

prináša prítomnosť určitých druhov zvierat. Medzi tieto riziká patria napríklad:

poštípanie hmyzom a včelami

pohryznutie hadmi a škorpiónmi

útoky medveďov

1.1.4 Závislosť energie horolezca od parametrov prostredia

V tejto časti je opísaná závislosť energie horolezca od parametrov prostredia na základe údajov

získaných z [14] a [7].

13

Page 25: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

obr. 4. Závislosť energie horolezca od parametrov prostredia

Tlak vzduchu

s rastúcou výškou klesá klesá aj tlak kyslíka nedostatok kyslíka v organizme proces

adaptácie (zrýchlenie dýchania a pulzu) dlhodobo to stojí veľa energie

pri nízkej teplote klesá rýchlejšie

Teplota vzduchu

s rastúcou výškou klesá (približne 6,5 °C na kilometer) rýchlejšie odvádzanie tepla

z organizmu väčšia spotreba energie

pri nízkej vlhkosti vzduchu klesá rýchlejšie (až do 10 °C na kilometer)

Pôsobenie vetra

s rastúcou rýchlosťou vetra rastú tepelné straty klesá energia horolezca

14

Page 26: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

1.1.5 Činnosti a fázy horolezeckého výstupu

Horolezecká expedícia pozostáva z niekoľkých fáz a činností. Na nasledujúcich stranách sú popísané

najdôležitejšie z nich.

Uvádzané informácie pochádzajú z viacerých zdrojov na internetových stránkach [15], [16]

a z poznámok pochádzajúcich z diskusie s doc. Šperkom ohľadne danej problematiky.

Presun do základného tábora

Výstup do základného tábora je zväčša zabezpečený použitím autobusov, džípov alebo zvierat (napr.

jaky, ťavy alebo lamy) a môže trvať aj niekoľko dní.

Pri výstupe na veľmi vysoké hory býva posledná časť cesty k základnému táboru často

nedostupná pre autá alebo zvieratá. Vtedy si horolezci najímajú nosičov z okolitých osád, ktorí im

pomáhajú preniesť horolezecký výstroj, ale najmä jedlo určené na niekoľko týždňov. Niekedy

hmotnosť tohto nákladu dosahuje niekoľko ton, a preto nosiči absolvujú túto časť cesty niekoľkokrát.

Každý nosič totiž môže niesť maximálne 20 kg.

Odporúča sa zabezpečiť každú batožinu nejakým zámkom, pretože bude počas cesty do

základného tábora občas nestrážená [15].

Oddych v základnom tábore

V základnom tábore horolezci na začiatku strávia zopár dní, počas ktorých začínajú s aklimatizáciou –

robia kratšie túry, oddychujú a pijú veľa tekutín. Niekedy tu musia čakať na lepšie počasie.

Počas procesu aklimatizácie sa horolezci vracajú do základného tábora vždy pred tým, ako sa

pokúsia dosiahnuť vyššie položený tábor, prípadne samotný vrchol hory. Vtedy tu trávia aj niekoľko

dní, počas ktorých najmä oddychujú.

Ak je základný tábor položený vyššie ako 5000 m, aj v základnom sa už môžu prejaviť prvé

náznaky výškových chorôb, napr. bolesti hlavy a kašeľ. Vtedy býva niekedy nutné prepraviť malátnu

osobu do nemocnice.

Čakanie v stanoch na lepšie počasie

Počasie na horách sa mení a počas snežných búrok je lepšie zostať v základnom tábore. Čakanie na

lepšie počasie niekedy trvá aj týždeň. Takéto dni horolezci trávia hraním kariet, šachov,

navštevovaním členov iných expedícií, počúvaním hudby, čítaním kníh, prípadne pozeraním filmov

(ak im to prostriedky umožnia).

15

Page 27: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Kladenie fixných lán

Fixné laná sú potrebné najmä pri vynášaní materiálu pre nosičov a pre tých horolezcov, ktorí nemajú

dostatočné schopnosti prejsť daným terénom bez týchto lán. Väčšinou ich však používa každý (ak sú),

pretože podmienky sa často menia a z relatívne bezpečného snehu sa môže stať klzký ľad.

Fixné laná kladú hlavne dobrí horolezci – „šplhači“ a to minimálne dvaja.

Stavba tábora

Ak na hore nie sú trvalé výškové tábory, horolezci si zakladajú vlastné tábory. Príprava na stavbu

nového tábora sa začína už v predošlom tábore. Horolezci si potrebujú nachystať stan a nástroje na

jeho postavenie. Potom sa aspoň dvaja z nich vyberú do akcie. Keďže stany majú istú hmotnosť,

horolezci väčšinou postupujú po fixných lanách.

Horolezci zakladajúci tábor potrebujú nájsť vhodné miesto. Takéto miesto by nemalo byť

ohrozené zosuvmi skál, ľadovcov či lavín. Výhodné býva miesto s menšími vplyvmi vetra.

Nájsť perfektné miesto na tábor býva často nemožné. Po voľbe miesta je potrebné zarovnať

priestor na stany napríklad pomocou okolitého kamenia. Nakoniec je možné realizovať stavbu stanov.

Vybavenie tábora, vynesenie materiálu

Ak má expedícia zabezpečených nosičov, títo sa môžu podieľať aj na vynášaní materiálu do vyšších

táborov. Inak si horolezci vynášajú materiál sami.

Materiál sa do tábora zvykne vynášať niekoľko hodín až deň pred tým, ako si v ňom horolezci

naplánujú prenocovanie alebo prestávku pred pokračovaním vo výstupe.

V prípade ťažkého terénu sa pri vynášaní materiálu používajú fixné laná.

Zostup

Horolezecká expedícia nekončí na vrchole hory. Pre horolezcov je dôležité dostať sa naspäť do

základného tábora a odtiaľ domov. Veľa zostupov sa realizuje aj počas procesu aklimatizácie, kedy sa

po dosiahnutí novej výšky (ďalší tábor) zostupuje späť do základného tábora.

Pri zostupe sa takisto s výhodou používajú fixné laná, ktoré zostup uľahčujú a urýchľujú.

Záchrana chorého a zraneného

Na hore (možno s výnimkou základného tábora) by nemal nikto zostať sám.

V prípade vážnejších príznakov výškovej choroby u niektorého z horolezcov, je potrebné

zostúpiť s ním do výšky, kde sa naposledy cítil dobre, prípadne až do základného tábora. Neodporúča

sa, aby chorý horolezec zostupoval sám – potrebuje aspoň jedného ďalšieho horolezca ako sprievod.

Zároveň nie je dobré nechať jediného horolezca pokračovať vo výstupe. Ak sú horolezci štyria alebo

viacerí, môžu sa rozdeliť na dve skupiny, pričom jedna bude sprevádzať chorého, kým druhá skupina

môže pokračovať ďalej vo výstupe.

16

Page 28: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

V prípade vážneho ochorenia alebo zranenia je nutné transportovať postihnutého do nemocnice.

V niektorých oblastiach je možné na takýto transport použitý vrtuľník. V týchto oblastiach členovia

horolezeckej expedície vopred absolvujú inštruktážny tréning, v ktorom sa dozvedia napríklad

o kreslení znaku H a veternom rukáve.

Bivakovanie

Ak si horolezci nedostatočne naplánujú výstup, môže ich pri výstupe zastihnúť noc. Vtedy im môžu

pomôcť čelové lampy, ktorými si svietia na terén. Ak je však terén náročný, mohlo by ďalšie

postupovanie cez terén viesť k zraneniu.

Za týchto okolností horolezci môžu uprednostniť bivakovanie. Bivakovaním síce predídu

riziku zranenia pri postupovaní terénom, ale má to aj svoje nevýhody. Najčastejším faktorom, ktorý je

príčinou neúspešného bivakovania, je nízka teplota. Spacie vaky totiž menej chránia horolezca pred

chladom ako stany, a preto veľmi často dochádza k omrzlinám, dokonca aj k smrti zapríčinenej

podchladením.

1.1.6 Adaptácia a aklimatizácia [14]

Nedostatok kyslíka je asi od 3000 m pozorovateľný a prispôsobovanie sa veľkej výške vyvoláva

mnohonásobné reakcie tela. Organizmus má snahu zachovať si vnútornú stálosť, preto pri zmene

podmienok odlišných od bežného prostredia sa mobilizujú príslušné mechanizmy, ktoré vedú k

stabilite vnútorného prostredia. Proces zaobstarania kyslíka sa delí na dve časti: Najprv dýchaním sa

dopraví kyslík do pľúc a potom sa kyslík transformuje krvným obehom z pľúca do buniek. Telo

reagujú na nedostatok kyslíka nasledovne:

a) zvýšením rýchlosti procesov (dýchanie, pulz) – adaptácia

b) zvýšením efektívnosti procesov (zvýšenie počtu červených krviniek) – aklimatizácia

Adaptácia

je okamžitá reakcia organizmu na nedostatok kyslíka (hypoxia). Reaguje zrýchleným dýchaním

(hyperventilácia), súčasne sa zrýchli aj pulz a tým sa upravuje prísun kyslíka na požadovanú hodnotu.

Tento proces sa nazýva adaptácia. To nie je dlhodobo žiaduce, lebo zrýchlenie týchto procesov stojí

trvale veľa energie. Ak sme vo výške dlhší čas (deň a viac) telo sa začne prispôsobovať novým

podmienkam, až postupne dôjde k aklimatizácii na danú výšku.

Aklimatizácia

je dlhodobý proces a znamená úplné prispôsobenie sa výške. Medzi hlavné prejavy aklimatizácie patrí

zvýšená transportná kapacita kyslíka krvou. Vystrieda adaptáciu v priebehu dní a týždňov. To

znamená že krvný obeh opäť funguje v normálnych hodnotách ako doma. Aklimatizácia je pomalší

17

Page 29: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

proces, ktorý riadi zmenu zloženia krvi a trvá prirodzene nejaký čas. V podstate ide o zvýšenie počtu

červených krviniek aby bol prenos kyslíka efektívnejší. Zlepší sa príjem kyslíka v bunkách a ďalšie

zložité regulačné pochody. Po dlhšom pobyte, keď sa už červené krvinky rozmnožia, pulzová

frekvencia znovu klesne a spotrebováva sa tak opäť menej energie. V priebehu dvoch až troch týždňov

dosiahne množstvo červených krviniek maximum a potom opäť pomaly klesá. Zvýšenie počtu

červených krviniek spôsobí, že krv je hustejšia. Aj po aklimatizácii je frekvencia dýchania o niečo

vyššia ako doma. Aby sme dosiahli dobrú aklimatizáciu musíme dodržať doporučené pravidlá.

Pri aklimatizácii sa neprejavuje pamäťový efekt čiže adaptačné zmeny majú len prechodnú -

reverzibilnú povahu! To znamená že pri každom novom podujatí sa musíme znovu aklimatizovať.

Predchádzajúca dobrá reakcia na výšku neznamená, že už nemôžeme dostať akútnu horskú nemoc.

Odporučenia:

základné pravidlo znie: „Nechoď príliš rýchlo príliš vysoko!“

výška v ktorej budeme spať by sa mala zvyšovať denne o 300 až 500 m,

prespať o 200-300 m nižšie než je v ten deň dosiahnutá max. výška

počas aklimatizácie nevystupovať počas jedného dňa vyššie než o 1500 m

na každých 1000 m dosiahnutej výšky pridať jeden odpočinkový deň

v priebehu jedného týždňa nespať vyššie než o 1000 m

prvý týždeň by sme nemali vystúpiť vyššie ako 5000 m

na začiatok žiadny veľký výkon, telesnú námahu zvyšovať postupne, vyhnúť sa maximálnemu

zaťaženiu, pretože to môže narušiť aklimatizáciu

zabrániť dehydratácií a vo výškach nad 3000 m piť denne min. 2–3 litre tekutín

v strave uprednostňovať uhľohydráty

spať v polohe s mierne zvýšenou hornou polovinou tela

podľa možnosti neberte žiadne lieky, priebeh aklimatizácie sa nedá urýchliť žiadnym liekom!

včas spozorujte príznaky horskej nemoci

Ak sa zhoršuje váš zdravotný stav, okamžite zostúpte! Nečakajte do rána, okamžite zostúpte

na výšku, kde ste sa naposledy cítili po prebudení dobre!

Nechoď hore príliš rýchlo!

Choď hore, ale spi dole!

Nezostaň dlho privysoko!

Choď hore dostatočne aklimatizovaný!

Zlaté pravidlá:

Každý môže dostať horskú nemoc, ale nikto nemusí na ňu zomrieť!

Každá nemoc vo väčšej výške sa v prípade pochybnosti považuje za horskú nemoc!

Nikdy nepokračujte vo výstupe s príznakmi horskej nemoci!

18

Page 30: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Ak sa zhorší zdravotný ihneď zostúpte!

Nikdy nenechávajte osobu s horskou nemocou osamote!

Príznaky dostatočnej aklimatizácie:

výkon zodpovedá trénovanosti

kľudový pulz opäť klesne na pôvodnú hodnotu

prehĺbené dýchanie v kľude a pri zaťažení

periodické dýchanie v noci

dostatočné množstvo moču

Prakticky to znamená týždennú aklimatizáciu po výšku 5000 m a ďalej na každých ďalších 1000

m týždeň. Po 8 - 10 dňoch pochodu so stredne ťažkým batohom je aklimatizácia dostatočná na

prechod sediel medzi 5000 m a 6000 m alebo k spaniu v základnom tábore. Ak ostaneme v

dosiahnutej výške viac dní tak nečakáme pasívne. Ľahká telesná aktivita napr. kratšie túry podporuje

proces aklimatizácie.

Jednoduchý a veľmi cenný údaj o priebehu aklimatizácie je ranný kľudový pulz. V počiatočnej

fáze alebo pri každej novej dosiahnutej výške zmerať tep a namerané hodnoty zapísať. Dobrý priebeh

aklimatizácie je vtedy ak je malý rozdiel medzi pulzom doma a vo výške. Ak je rozdiel väčší ako 20 -

30 úderov v žiadnom prípade nepostupovať vyššie. Pulz niekoľko dní kolíše a po úspešnej adaptácii

dosiahne normálne hodnoty ako doma. Poznámka: príčinou zvýšenia pulzu môže byť aj nedostatok

tekutín.

Messner doporučuje nasledovný postup:

zvyšovať výšku cez deň: 1 týždeň do 5000 m, ďalej 1000m / týždeň

zvyšovať výšku pri prenocovaní: 1 týždeň do 4000 m, ďalej 1000 m / týždeň

na päťtisícovku minimálne týždeň, na šesťtisícovku dva týždne, na sedemtisícovku tri a na

osemtisícovku štyri týždne. I pre najvyššie osemtisícovky (8500 m a vyššie) doporučuje štyri

týždne ale nie viac než šesť týždňov.

1.1.7 Plán aklimatizácie pre vrch Broad Peak

Stavba a zakladanie táborov na horách je zvyčajne založená na štandardnom pláne a dáva vášmu telu

čas, aby sa prispôsobilo zmene výšky. Nasleduje plán lezenia na Broad Peak podľa Rolanda Huntera

[16]:

Vyniesť skupinovú výbavu do Tábora 1 (5500 m) a zostúpiť do základného tábora (5100 m).

Vyniesť osobný výstroj do Tábora 1 (5500 m), stráviť tam noc a nasledujúci deň zostúpiť do

základného tábora (5100 m).

Niekoľko dní odpočívania v základnom tábore (5100 m).

19

Page 31: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Vyniesť skupinovú výbavu do Tábora 1 (5500 m), na ďalší deň pokračovať do Tábora 2 (6300

m) a stráviť tam dve noci pred zostupom do základného tábora.

Niekoľko dní odpočívania v základnom tábore (5100 m).

Vyliezť do Tábora 2 (6300 m), na nasledujúci deň vyniesť veci do Tábora 3 (7200 m)

a zostúpiť do základného tábora (5100 m).

Pár dní odpočinku v základnom tábore (5100 m).

Vyliezť do Tábora 2 (6300 m), na ďalší deň pokračovať do Tábora 3 (7200 m) a stráviť tam

dve noci pred zostupom do základného tábora (5100 m).

Niekoľko dní odpočívania v základnom tábore (5100 m).

Teraz by ste mali byť pripravení a aklimatizovaní, takže s vhodným počasím a podmienkami sa

nabudúce môžete pokúsiť o výstup na vrchol (8047 m).

1.2 Analýza technických prostriedkov

1.2.1 Grafické knižnice

V nasledujúcom texte sú analyzované rozličné grafické knižnice z hľadiska možnosti ich využitia pre

aplikáciu bežiacu vo viacerých oknách. Dôležitým aspektom, ktorý je pri jednotlivých knižniciach

skúmaný je možnosť spolupráce knižnice s knižnicou MFC a win ovládacími prvkami.

Uvedené sú dve grafické API: Direct3D a OpenGl, ako aj  rozličné knižnice, ktoré uľahčujú

prácu s nimi.

Problém s jednotlivými knižnicami je ten, že zvyčajne vytvárajú hlavné okno sami a sami si aj

realizujú slučku správ. To komplikuje používanie MFC s týmito knižnicami.

V analýze nie sú spomínané vlastnosti knižníc vzťahujúce sa na podpory rozličných

dodatočných spracovaní obrazu a podobne, pretože sa nepredpokladá použitie týchto techník

v systéme, resp. nie sú dôležité. Techniky, ktoré budú potrebné pre funkčnosť systému podporujú

všetky spomínané API a knižnice.

1.2.1.1 API

Pri čistom využívaní ľubovolného uvedeného API, nie je problém s využívaním MFC, alebo win

ovládacích prvkov. Nevýhodou tohoto prístupu je pravdaže nutnosť programovania viacerých činností,

ktoré pomocné knižnice veľmi uľahčujú.

Direct3D

20

Page 32: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Direct3D API je súčasťou DirectX a zabezpečuje vykresľovanie grafiky. DirectX je produktom

spoločnosti Microsoft a pre svoju funkčnosť vyžaduje operačný systém Microsoft Windows (DirectX

je podporovaný aj konzolou XBox). To je všeobecne jeho hlavná nevýhoda.

Všetky súčasti DirectX sú založené na COM a teda objektovej paradigme [17].

OpenGl

[17] OpenGl bol pôvodne vytvorený v roku 1992 spoločnosťou Silicon Graphics. Výhodou OpenGl je

jeho vysoká podpora vo viacerých operačných systémoch.

OpenGl je založené na procedurálnej paradigme.

Výhodou OpenGl z pohľadu vytváraného systému je jeho výučba na FIIT STU. To ho robí

veľmi dobrým kandidátom, pretože sa predpokladá rozširovanie vytváraného systému v budúcnosti

inými tímami. Použitím OpenGl by sa tak zabezpečila aspoň základná skúsenosť členov budúcich

tímov s grafickým API použitým v systéme.

1.2.1.2 Knižnice

Glut

Knižnica GLUT uľahčuje tvorbu multiplatformových grafických aplikácií využívajúcich knižnicu

OpenGL. Nevýhodou knižnice GLUT je jej procedurálna realizácia, kde sa vo väčšine jej funkcií

používajú ukazovatele na funkcie.

Knižnica vyžaduje konzolovú aplikáciu a sama vytvára okno. Taktiež sama spravuje slučku

správ a nie je kompatibilná s MFC.

SDL

[18] SDL je multiplatformová multimediálna knižnica. Okrem iného sa používa aj pri tvorbe MPEG

prehrávačov. Spolupracuje s OpenGl a tiež s Direct3D. Okrem zobrazovania grafiky uľahčuje aj prácu

so zvukom.

Knižnica nie je kompatibilná s MFC. Jediný spôsob, ktorý sa podaril objaviť pri analýze je

pomôcka (http://www.polplex.co.uk/~tigger/sdl/), ktorá vykresľuje grafiku do povrchu a ten následne

kopíruje na win okno. Tento spôsob je ale pomalý. Počas analýzy bol vykonaný aj pokus

s viacvláknovou aplikáciou, ale bez pozitívnych výsledkov.

ORGE

[19] OGRE je objektovo orientovaný grafický (iba grafický) 3D prostriedok (angl. engine). Podporuje

OpenGl aj Direct3D. Autori sa primárne snažia vytvoriť prostriedok, ktorý je dobre zdokumentovaný

a má kvalitný dizajn. Až na druhom mieste je pridávanie noviniek. To predstavuje veľkú výhodu pre

projekt, pretože bude dôležitá hlavne možnosť sa rýchlo naučiť danú knižnicu (aj pre budúcich

pokračovateľov projektu) a nie sú dôležité najmodernejšie technológie. OGRE bol použitý vo

viacerých komerčných projektoch, čo dokazuje jeho vysokú úroveň.

Medzi jeho vlastnosti patria okrem iného:

21

Page 33: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

materiálový LOD

progresívny mesh (LOD)

časticové systémy

hierarchické grafy pre popis scény

viaceré techniky pre vykresľovanie tieňov

Použitie tohoto prostriedku by mohlo výrazne zvýšiť grafickú kvalitu vytváraného systému.

OGRE je kompatibilný s MFC a okrem toho obsahuje GUI, ktorého používanie je podobné používaniu

MFC.

1.2.2 OGRE

[19] Grafický prostriedok OGRE (Object-Oriented Graphics Rendering Engine) je šírený pod

licenciou LGPL (GNU Lesser General Public License). To v podstate znamená, že je možné ho voľne

používať za predpokladu, že všetky zmeny vykonané v jadre OGRE, budú poskytnuté komunite. Na

výsledný produkt sa teda nevzťahujú v zásade žiadne obmedzenia (netreba poskytovať jeho zdrojové

kódy a je možné ho aj predávať).

Na nasledujúcich stranách je uvedená analýza tohoto grafického prostriedku. Popísané sú

hlavné triedy a ostatné najhlavnejšie vlastnosti.

1.2.2.1 Základné triedy

V nasledujúcom texte sú priblížené hlavné triedy OGRE. Ich bližší popis je možné nájsť v [20], [21].

Root

Root je vstupným bodom OGRE. Je to prvý objekt OGRE, ktorý musí vytvoriť aplikácia. Často sa

hlavná trieda aplikácie (alebo v našom prípade trieda monitoru) odvádza z tejto triedy, čím sa

zabezpečí, že je objekt tejto triedy prvý vytvorený a posledný zrušený.

Root slúži na konfiguráciu systému (napríklad výber systému pre vykresľovanie) a tiež

poskytuje prístup k ostatným objektom, ako sú SceneManager, RenderSystem a k veľkému množstvu

iných manažérov prostriedkov (angl. resource manager).

Root tiež vytvára okno pre vykresľovanie grafiky (angl. render window). Okrem toho, ale

OGRE umožňuje použiť aj okno, ktoré je vytvorené iným spôsobom (napríklad pomocou MFC).

Vtedy je nutné pred volaním metódy pre vytvorenie okna (createRenderWindow) nastaviť

identifikátor okna (angl. handle) pre systém OGRE. To sa vykoná pomocou nasledujúceho kódu [22].

NameValuePairList parms;parms["externalWindowHandle"] = StringConverter::toString((long)m_hWnd);

RenderSystem

22

Page 34: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

RenderSystem je abstraktná trieda, ktorá poskytuje rozhranie pre prístup k použitému 3D API. Cez ňu

sa teda nastavujú jednotlivé stavy vykresľovania, ako aj využívajú operácie grafického API.

SceneManager

Z aplikačného hľadiska je táto trieda, hneď po triede Root, druhou najdôležitejšou. Jej objekt sa

zvyčajne v aplikácií využíva najčastejšie.

SceneManager má na starosti obsah scény. Čiže všetky grafické objekty, kamery, svetlá

a podobne.

Keďže jednotlivé typy scén vyžadujú iné algoritmy a aby sa zachoval čo najvyšší výkon,

existuje viacero typov SceneManager.

Octree Scene Manager- Scéna je rozdelená pomocou oktálového stromu. Scéna sa teda

v podstate delí rekurzívne do kociek a každá kocka do ďalších 8 kociek. Každá kocka potom

obsahuje len určité vrcholy a je možné jednoduchšie zistiť, ktoré polygóny sa majú

vykresľovať.

Terrain Scene Manager- Učený je pre relatívne menšie scény, ktoré obsahujú statický terén.

Manažér umožňuje generovať terén z mapy výšok (angl. heightmap).

Nature Scene Manager- Slúži pre scény, ktoré sú väčšie ako scény určené pre Terain Scene

Manager. Mapa výšok je opakovaná na viacerých políčkach, ktoré môžu mať rozličnú textúru

povrchu.

Paging Scene Manager- Je určený pre pomerne veľké scény, ktoré sú rozložené na tzv.

stránky. V jednom čase sú načítané iba tie stránky, ktoré sú potrebné. Každá stránka môže

mať inú mapu výšok a rozličné textúry povrchov pre jednotlivé výšky.

BSP Scene Manager- Je určený pre scény tvorené interiérmi. Priestor je binárne delený na

podpriestory (angl. binary space partitioning).

DotSceneOctree SceneManager- Je podobný ako Octree Scene Manager, pričom umožňuje

uchovávať všetku geometriu a grafické objekty scény v jednom súbore.

ResourceManager

Je to základná trieda viacerých tried, ktoré slúžia pre manažment prostriedkov (textúry, mapy, grafické

objekty a podobne). Každý typ prostriedku má vlastnú triedu.

Keďže existuje pre každú triedu manažéra prostriedkov iba jedna inštancia (je to vzor

singleton), je potrebné k nej pristupovať pomocou metódy getSingleton() (napríklad

TextureManager::getSingleton() pre prístup k manažérovi textúr).

Mesh

Predstavuje triedu grafických objektov, ktoré sú vytvorené v externom grafickom prostriedku

a importované do aplikácie. Objekty tejto triedy sú spravované objektom triedy MeshManager.

Entity

23

Page 35: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Je to inštancia pohybujúceho sa grafického objektu v scéne. Objekt tejto triedy je založený na objekte

triedy Mesh. Viaceré Entity objekty môžu mať priradené ten istý Mesh objekt (napríklad viacero

rovnakých horolezcov v scéne).

Material

Objekty tejto triedy určujú aký materiál majú grafické objekty scény a teda aký lesk, svietivosť

a podobne. Parametre materiálov je možné nastavovať aj pomocou skriptov.

Overlay

Slúži na vykresľovanie 2D elementov v 3D scéne.

1.2.2.2 Skripty

Pre uľahčenie nastavovania parametrov, podporuje OGRE ich nastavovanie pomocou skriptov. Skripty

sú textové súbory, ktoré je možné vytvárať v ľubovolnom textovom editori. Tento prístup umožňuje

meniť správanie aplikácie bez nutnosti opätovného kompilovania.

OGRE podporuje nasledovné typy skriptov:

Material Scripts- pre definovanie materiálov.

Compositor Scripts- pre definovanie dodatočného spracovania obrazu

Particle Scripts- pre definovanie časticových systémov

Overlay Scripts- pre definovanie 2D elementov

Font Definition Scripts- pre definovanie typov písma

1.2.2.3 Hardvérový kontajner

OGRE poskytuje prístup k hardvérovým kontajnerom (angl. hardware buffer), ako sú vrcholové,

indexové a bodové (angl. pixel) kontajnery.

1.2.2.4 TieneOGRE poskytuje viacero techník pre vykresľovanie tieňov v scéne.

Maskovacie tiene (angl. stencil shadows )- Využíva sa maskovací kontajner (angl. stencil

buffer). Okraje tieňa sú jasné a nedajú sa zmäkčiť. Tento spôsob zatiaľ nie je podporovaný

grafickými kartami a preto zaťažuje CPU.

Textúrové tiene (angl. texture-based shadows)- Najprv sa tieň objektu vykreslí do textúry

a potom je premietaný do scény. Nevýhodou je nízke rozlíšenie tieňa pri zmene mierky a  to,

že OGRE podporuje tento typ tieňov iba pri smerových svetlách. Pri bodových by sa totižto

museli tiene vykresľovať do textúry 8 krát, aby sa pokryli všetky smery, z ktorých je svetlo

emitované.

24

Page 36: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Modulované tiene (angl. modulative shadows)- Najprv sa vykreslia objekty, ktoré budú

zatienené. Potom sa pre každé svetlo vykoná stmavenie častí v tieňoch a na konci sa vykreslia

objekty, ktoré neprijímajú tiene.

Prírastkové maskovanie svetla (angl. Additive Light Masking)- V podstate sa jedná

o vykreslenie jednej scény viac krát. Jeden krát pre každé svetlo, pričom sú svetlá obmedzené

tak, aby nepôsobili na miesta, ktoré sú z ich pohľadu zakryté. Jednotlivé výsledky sa postupne

spočítavajú.

1.2.2.5 Animácie

OGRE, okrem iného, umožňuje animovať grafické objekty pomocou kostry (angl. skeletal animation).

Grafický objekt obsahuje hierarchickú kostru a jeho vrcholy sú naviazane na jednotlivé kosti s určitou

váhou. Tento spôsob je výhodný hlavne z hľadiska diskového priestoru, pretože nie je nutné

uchovávať pozíciu každého vrcholu v každom snímku animácie. Uložiť stačí len natočenia

jednotlivých kostí.

25

Page 37: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

2 Špecifikácia požiadaviek na systém

Táto kapitola obsahuje požiadavky na funkcie ako aj vlastnosti vytváraného produktu. Ďalej obsahuje

špecifikáciu funkcií systému vo forme modelu prípadov použitia. Najprv je uvedený diagram prípadov

použitia (Error: Reference source not found) celého systému a potom sú bližšie popísané jednotlivé

časti diagramu. K najdôležitejším sú uvedené aj diagramy aktivít.

2.1 Funkcie produktuFUNKCIA #1: Vytvorenie modelu vrchu.

Používateľ bude mať možnosť vytvoriť si vlastný model hory. Pre tento účel bude slúžiť samostatná

aplikácia. Toto zahŕňa vytvorenie grafického modelu hory (jej povrchu), určenie trás výstupu a ich

parametrov vrátane stanovíšť táborov a nastavenie parametrov počasia.

FUNKCIA #2: Vytvorenie grafického modelu vrchu.

Používateľ vloží do systému výškovú mapu a RGB textúru hory, ktorá popisuje farby jednotlivých

častí. Systém z týchto vstupných údajov vygeneruje grafický 3D model hory. Inou možnosťou

vytvorenia grafického modelu hory je použitie externého grafického prostriedku a import hotového 3D

modelu do systému.

FUNKCIA #3: Určenie trás výstupu a ich parametrov.

Pre vybraný model hory si užívateľ zvolí trasy výstupu. Trasy bude zadávať po úsekoch, pričom pre

každý úsek si zvolí parametre ako napríklad náročnosť terénu, riziko lavíny a pod. Takisto sa označia

miesta, kde je možné postaviť tábor, ako ja počiatočný a konečný bod expedície.

FUNKCIA #4: Nastavenie parametrov počasia.

Stav počasia je pre danú horu globálny, to znamená, že v danom čase je v celom modeli rovnaké

počasie. Používateľ si nastaví parametre počasia pre vybraný model hory tak, že si vyberie typ počasia

a zvolí pravdepodobnosť jeho výskytu a jeho stálosť, resp. pravdepodobnosť jeho zmeny.

FUNKCIA #5: Inicializácia simulácie.

Inicializácia simulácie v sebe zahŕňa výber cieľa expedície, členov expedície, výber materiálu

a spustenie expedície.

26

Page 38: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

FUNKCIA #6: Výber cieľa expedície

Výber cieľa expedície znamená, že užívateľ si z dostupných modelov hôr zvolí konkrétnu horu, na

ktorej bude prebiehať simulácia. Pri výbere sa budú zobrazovať jednotlivé modely aj s informáciami

o nich, ako napr. predpoveď počasia, trasy výstupu a podobne.

FUNKCIA #7: Výber členov expedície.

Užívateľ si zvolí zloženie expedičného tímu tak, že si do tímu postupne vyberie konkrétnych členov

z dostupnej množiny horolezcov. Pri výbere sa budú zobrazovať charakteristické vlastnosti alebo aj

ďalšie informácie o jednotlivých horolezcoch. Užívateľ bude mať možnosť pridať do tímu aj člena,

ktorého si sám vytvorí.

FUNKCIA #8: Vytvorenie nového člena expedície.

Užívateľ si vytvorí člena expedície tak, že pre danú množinu parametrov – charakteristických

vlastností horolezca (sila, výdrž, ...) zvolí kvalitu týchto parametrov. Kvalita bude nadobúdať hodnoty

od 1 po 10, pričom 1 znamená, že horolezec má danú vlastnosť na najhoršej úrovni a 10 znamená, že

horolezec má danú vlastnosť na najlepšej úrovni.

FUNKCIA #9: Pridelenie materiálu pre expedíciu

Po tom, čo systém vypočíta odhadované množstvo materiálu a to hlavne jedla, kyslíkových

a plynových bômb, si užívateľ vyberie konkrétne druhy a počty materiálu. Tento sa na začiatku

simulácie bude nachádzať v základnom tábore.

FUNKCIA #10: Vytvorenie objektu výbavy.

Nový objekt výbavy sa vytvorí tak, že sa zvolí názov objektu, kategória výbavy (jedlo, vystroj, ...),

parametre, ktoré ovplyvňuje (napr. energia, teplota), spôsob a intenzita, akou parameter ovplyvňuje

(napr. zvyšuje teplotu o 5 stupňov).

FUNKCIA #11: Výber kroku simulácie.

Výber kroku simulácie možno vykonať iba pre tých členov expedície, ktorý dokončili predchádzajúci

krok simulácie. Keďže jednotlivé kroky môžu trvať rôzny čas, nie všetkým horolezcom možno

v danom čase zvoliť ďalší krok. Pri výbere ďalšieho kroku simulácie sa zvolí voľný (taký, čo dokončil

predchádzajúcu úlohu) horolezec alebo skupinka horolezcov. Potom sa vyberie zo zoznamu možných

úloh požadovaná úloha a zadajú sa dodatočné voliteľné informácie (ak treba napr. pri lezení zadať cieľ

lezenia).

27

Page 39: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

FUNKCIA #12: Zobrazenie aktuálneho stavu simulácie.

Aktuálny stav sa bude zobrazovať užívateľovi prostredníctvom grafického rozhrania, kde bude

zobrazený grafický model hory a polohy jednotlivých dynamických objektov (horolezci, tábory,

lavíny, ...). Užívateľ bude mať možnosť zvoliť si zobrazenie informácii pre väčšinu objektov, napr.

prechodom myši na horolezca sa zobrazia jeho vlastnosti, kliknutím naň sa môže spustiť ilustračné

video(napr. ako šplhá), kliknutím na lavínu sa zobrazia údaje o jej rozsahu a pod.

2.2 Vlastnosti produktu Atraktívnosť používateľského rozhrania – používateľské rozhranie musí byť dostatočne

atraktívne, aby zaujalo používateľov. Zároveň však musí byť prehľadné, pretože v simulácii

bude treba nastavovať množstvo volieb a parametrov. Toto možno zabezpečiť kombináciou

Windows ovládacích prvkov s GUI.

Zrozumiteľnosť používateľského rozhrania – používateľské rozhranie musí byť nielen

atraktívne a prehľadné, ale predovšetkým zrozumiteľné, pretože systém môžu používať

užívatelia s rôznymi skúsenosťami s prácou s počítačom. Preto by rozhranie malo obsahovať

rôzne pomocné prvky. Ovládacie prvky musia byť zvládnuteľné aj pre málo skúsených

používateľov, avšak zároveň nesmú iritovať skúsenejších používateľov. Preto by mali byť

k dispozícii rôzne alternatívy ovládacích prvkov (tlačidlá – menu – klávesové skratky).

Možnosť uloženia údajov – v systéme bude zakomponovaná, okrem ukladania parametrov

simulácie, aj možnosť uložiť a opätovne načítať už prebiehajúcu simuláciu. Takto bude možné

v kritickom okamihu simuláciu uložiť a vyskúšať viacero rozličných možností výberu

ďalšieho kroku.

Editovateľnosť konfiguračných údajov – údaje budú uložené v textovej forme

v prehľadných štruktúrach, aby sa zabezpečila možnosť jednoduchej editácie údajov aj mimo

programu.

Rozšíriteľnosť systému – keďže je predpoklad, že systém bude ďalej rozvíjaný, treba

zabezpečiť jeho rozšíriteľnosť. Toto dosiahneme pomocou vhodnej objektovo – orientovanej

dekompozície systému bez „prehnane“ zložitých súčiastok.

Objektovo – orientovaná dekompozícia – pre jednoduchšie zabezpečenie splnenia ďalších

požiadaviek bude systém dekomponovaný na základe objektovo – orientovaného prístupu.

Takáto dekompozícia sa zakladá na prirodzenom rozdelení systému do tried a lepšie odráža

problémovú oblasť, čo uľahčí tvorbu modelov nielen používateľského rozhrania. Pri tomto

prístupe je systém stabilnejší (v zmysle zmeny jeho komponentov), ako aj náklady na jeho

tvorbu sú redukované (v našom prípade predovšetkým čas).

Modularita – systém bude rozdelený na diskrétne časti(v tomto prípade triedy) tak, že každú

možno implementovať relatívne samostatne.

28

Page 40: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Voľná zviazanosť tried – triedy budú na sebe viac menej nezávislé, zmena jednej neovplyvní

zmenu ďalších. Podrobnosti reprezentácie a spracovania údajov budú skryté v danej triede,

komunikácia s ostatnými časťami systému (triedami) bude zabezpečená prostredníctvom

dobre definovaných rozhraní.

Veľká súdržnosť tried – triedy budú vytvárané tak, aby reprezentovali iba navzájom späté

údaje a zabezpečovali vybraný typ funkcionality (simulácia, užívateľské rozhranie, ...).

Znovupoužiteľnosť tried – ak má byť systém v budúcnosti ľahko rozšíriteľný resp.

modifikovateľný, treba zabezpečiť čo najväčšiu znovupoužiteľnosť tried. Toto dosiahneme

objektovo – orientovanými nástrojmi ako dedenie a polymorfizmus.

Robustnosť systému – pretože systém budú používať užívatelia s rôznymi skúsenosťami

s prácou s počítačom resp. neznalí vlastností systému, systém musí byť dostatočne robustný,

aby pri zle zadaných vstupoch nezlyhal. Toto možno zabezpečiť ohraničením možností

zadávania vstupov, ako aj kontrolou vstupov a upozorňovaním na chybné zadávanie vstupov.

Dokumentovateľnosť – systém musí obsahovať aktuálnu, zrozumiteľnú dokumentáciu

konzistentnú s implementáciou, konzistentné mená súčiastok. Toto je dôležité hlavne kvôli

požiadavke rozšíriteľnosti systému.

29

Page 41: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

2.3 Diagram prípadov použitia systému

obr. 5 Diagram prípadov použitia systému

30

Page 42: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

2.4 HráčiV nasledujúcom texte sú bližšie popísaní hráči zobrazení v diagrame prípadov použitia.

Hráč – Jedná sa o hráča, respektíve používateľa simulácie. Hráč si na začiatku vyberie cieľ

svojej expedície, členov expedície, ako aj materiál, ktorý priradí jednotlivým členom tímu.

Počas simulácie volí kroky expedície a môže si prezerať rozličné informácie o jej priebehu.

Tvorca modelu – Ide o používateľa tvoriaceho model hory. Má na starosti vytvorenie

grafického modelu hory, zadefinovanie jednotlivých bodov na hore a ich spojníc. Okrem toho

pre vytváranú horu aj definuje parametre počasia.

Horolezec – Agent predstavujúci horolezca. Jeho hlavnou časťou sú stavový stroj, ktorý

popisuje stavy reálneho človeka a atribúty vzťahujúce sa na jeho horolezecké schopnosti.

Horolezec môže prejsť do iného stavu v závislosti od vonkajšieho prostredia a rozhodnutia

hráča. Okrem toho je agent schopný meniť svoju polohu v simulovanom prostredí. Každý

horolezec má svoj batoh (inventár).

2.5 Prípady použitiaNa nasledujúcich stranách sú bližšie popísané prípady použitiam ktoré sú zobrazené v diagrame

prípadov použitia. Pre popis niektorých diagramov je použitý aj diagram aktivít.

(UC01) Inicializácia simulácie- Inicializáciu simulácie popisuje diagram na obr. 6.

Používateľ si najprv zvolí zo zoznamu cieľ expedície (UC02 výber cieľa expedície). Čiže si

vyberie horu, ktorá predstavuje konkrétnu expedíciu. Systém potom zobrazí predpoveď

počasia pre vybranú expedíciu. Používateľ si zo zoznamu existujúcich horolezcov zvolí svoj

tím pre expedíciu (UC03 výber členov expedície) a priradí im materiál (výbavu) (UC04

výber materiálu), ktorého množstvo (resp. odporúčanie množstva) systém vypočíta.

31

Page 43: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

obr. 6. Diagram aktivít Inicializácia simulácie

(UC02) výber cieľa expedície – Zo zoznamu expedícií si hráč vyberie jednu, ktorú chce

simulovať.

(UC03) výber členov expedície – Zo zoznamu existujúcich horolezcov si užívateľ vytvorí

tím pre expedíciu. Pri rozhodovaní, ktorého horolezca príjme do tímu, sa riadi jeho

parametrami.

(UC04) výber materiálu – Hráč zvolí materiál pre expedíciu a pridelí ho jednotlivým

horolezcom. Pri tomto úkone mu pomáha systém tým, že mu vypočíta odhad potrebného

množstva materiálu. Nepridelený materiál ostane v tábore, pokiaľ ho niekomu nepridelí pri

výbere kroku simulácie (UC06 výber kroku simulácie).

(UC05) preskúmanie aktuálneho stavu simulácie – Hráč počas priebehu simulácie

môže preskúmať aktuálny stav simulácie. Môže si prezrieť predpoveď počasia, ako aj aktuálne

stavy jednotlivých horolezcov a parametre miest na hore.

(UC06) výber kroku simulácie – Počas simulácie si hráč vyberá ďalší krok simulácie.

Tento proces je zobrazený diagramom na obr. 7. Systém najprv zobrazí zoznam voľných

32

Page 44: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

horolezcov. Horolezec sa pokladá za voľného vtedy, keď ukončil predchádzajúcu zadanú

úlohu. Užívateľ si z tohoto zoznamu vyberie jedného, alebo viacerých horolezcov (musia byť

na rovnakom mieste), ktorým bude pridelená úloha. Pri výbere horolezcov im hráč v prípade,

že sa nachádzajú v tábore pridelí materiál, ktorý si so sebou zoberú. Materiál samozrejme

musí byť v tábore, v ktorom sa horolezci nachádzajú. Systém podľa vybraných horolezcov a

materiálu zobrazí zoznam úloh, ktoré môžu vykonávať všetci vybraní horolezci. Z tohoto

zoznamu si používateľ vyberie jednu úlohu a miesto (aj cestu) pre jej vykonanie v prípade, že

to typ úlohy vyžaduje. Používateľ zadá dobu trvania úlohy ak to vyžaduje jej typ. Tento

cyklus pokračuje pokiaľ nemajú všetci horolezci určenú úlohu, pričom je možné prideliť aj

prázdnu úlohu (vyčkávanie).

33

Page 45: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

obr. 7. Diagram aktivít Výber kroku simulácie

34

Page 46: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

(UC06) vytvorenie objektu výbavy – Používateľ vytvorí nový objekt výbavy zadaním jeho

parametrov.

(UC08) vytvorenie nového člena expedície – Používateľ vytvorí nového horolezca zadaním

jeho parametrov.

(UC09) vytvorenie modelu hory – Tento prípad použitia zobrazuje diagram na obr. 8. Jedná

sa o vytvorenie hory a trasy expedície. Čiže neorientovaného grafu s jedným počiatočným

a konečným bodom a určitým počtom kontrolných bodov ako aj spojníc (hrán grafu) týchto

bodov. Prvým krokom je import grafického modelu hory do systému (UC15 vytvorenie

grafického modelu hory). Potom tvorca určí počiatočný (UC10 definovanie počiatočného

bodu expedície), konečný (UC11 definovanie cieľového bodu expedície) a všetky kontrolné

body (UC12 definovanie kontrolných bodov). Jednotlivé body potom pospája tak, aby bol

každý prístupný zo začiatočného bodu expedície a spojniciam zadá ich parametre (UC13

definovanie spojníc bodov). Na záver tvorca modelu zadefinuje počasie (UC14 definovanie

predpovede počasia) a podmienky prehry (UC18 definovanie podmienok prehry).

35

Page 47: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

obr. 8. Diagram aktivít Vytvorenie modelu hory

(UC10) definovanie počiatočného bodu expedície – Viď UC09.

(UC11) definovanie cieľového bodu expedície – Viď UC09.

(UC12) definovanie kontrolných bodov – Viď UC09. Kontrolné body predstavujú miesta na

hore, ktoré je možné zadať pri výbere kroku simulácie. Jednotlivé miesta sú pospájané

spojnicami. Pri dosiahnutí určeného kontrolného bodu niektorým horolezcom (a teda pri

ukončení úlohy) sa simulácia preruší a umožní zadať novú úlohu. Každý kontrolný bod má,

okrem iných parametrov, určené aj či sa dá na jeho mieste postaviť tábor.

36

Page 48: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

(UC13) definovanie spojníc bodov – Viď UC09. Jednotlivým spojniciam zadá tvorca modelu

parametre, pričom tieto spojnice môže rozdeliť na podúseky a tak zadať jednej spojnici viac

hodnôt rovnakého parametru.

(UC14) definovanie predpovede počasia – Tvorca modelu zadefinuje pre horu počasie. Pre

jednotlivé typy počasí určí pravdepodobnosti ich výskytu a rozsah doby trvania. Pre jednotlivé

parametre určí aj ich informačný rozptyl, aby sa zabezpečila určitá dezinformácia hráča.

(UC15) vytvorenie grafického modelu hory – Viď UC09. Pre vytvorenie grafického

modelu hory je možné importovať do systému mapu výšok (UC16 import mapy výšok),

alebo grafický model vytvorený v externom kresliacom nástroji (UC17 import 3D modelu).

(UC16) import mapy výšok – Viď UC15. Tvorca modelu zadá cestu k vytvorenej mape

výšok a k jej textúre.

(UC17) import 3D modelu – Viď UC15. Tvorca modelu zadá cestu k vytvorenému 3D

modelu hory.

(UC18) definovanie podmienok prehry – Tvorca modelu si vyberie podmienky, ktoré vedú

k prehre. Napríklad stanový maximálny čas pre expedíciu.

(UC19) prechod do iného stavu – Horolezec môže prejsť do iného stavu v závislosti od

vonkajšieho prostredia a rozhodnutia hráča. Jednotlivé stavy predstavujú stavy reálneho

človeka.

(UC20) zmena pozície – Horolezec môže počas vykonávania zadanej úlohy zmeniť svoju

pozíciu na modeli hory.

37

Page 49: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

3 Návrh systémuTáto časť dokumentácie obsahuje návrh závislosti energie horolezca od rôznych faktorov, návrh

atribútov výbavy a výstroja ako aj spôsob uloženia týchto údajov. Ďalej je tu opísaný diagram tried

navrhovaného systému ako aj základná časť systému – simulačný proces horolezeckej expedície.

3.1 Výpočet energie horolezcaEnergiu horolezca determinujú všetky nižšie definované faktory:

Vlastnosti horolezca

Prostredie v ktorom sa horolezec nachádza

Inventár a jeho použitie.

Vytvoril sa graf, ktorý je možno vidieť na obr. 9, v ktorom je možno pozorovať od čoho závisí

energia. Graf vznikol prepojením relevantných faktorov prostredia, vlastnosti a inventáru. Po

spoločnej konzultácií sa odobrali niektoré nerelevantné faktory a vytvorili sa väzby medzi nimi. Dôraz

sa kládol na jednoduchosť a na čo najväčšie zobrazenie reality.

V grafe sú červenou farbou označené väzby medzi faktormi, ktoré sa ovplyvňujú nepriamou

úmerou a čiernou sú označené väzby medzi faktormi, ktoré sa ovplyvňujú priamou úmerou.

Prerušovanou čiarou sú označené bipolárne väzby, ktoré determinujú len možnosť alebo nemožnosť

určitej činnosti.

Inventár (v obr. 9 označený žltou farbou)

Inventár v spodnej časti grafu ovplyvňuje len prostredie. Je to taký typ inventáru, ktorý slúži na

ochranu proti zlým vplyvom prostredia. Inventár v hornej časti grafu sa rozdeľuje do dvoch skupín,

ktoré sa rozlišujú odtieňom žltej farby. Tmavšia určuje hmotnosť, ktorá negatívne vplýva na

výkonnosť. Ostatné zložky inventáru vplývajú buď priamo na energiu alebo pomocou stavov

v ktorých sa horolezec nachádza. Sú to tie časti inventáru, ktoré uspokojujú fyzické potreby horolezca.

Prostredie (v obr. 9 označené modrou farbou)

Prostredie je ovplyvňované inventárom, ktorý zmenšuje vplyvy prostredia na vlastnosti horolezca.

Prostredie vplýva na všetky vlastnosti horolezca. Priamo na stav (zdravie) vplýva jedine nadmorská

výška ktorá vlastne zväčšuje pravdepodobnosť ochorenia zo stúpajúcou výškou.

Vlastnosti horolezca (v obr. 9 označené pomarančovou farbou)

Z vlastností horolezca oproti pôvodnému návrhu ostali len základné vlastnosti. Dôvodom bolo

zjednodušenie celkovej schémy a možnosť spojenia niektorých vlastnosti do jednej kategórie (napr.

38

Page 50: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

technika obsahuje aj balansovanie). Najdôležitejšou vlastnosťou je výkonnosť, ktoré určuje rýchlosť

spotreby energie.

Stavy horolezca (v obr. 9 označené fialovou farbou)

Stavy horolezca určujú jeho fyzické stavy. Spanie priamo vplýva na energiu a spolu s jedlom dopĺňa

energiu. Zdravie a zranenie určujú percentuálne zdravotný stav horolezca a sú to jediné atribúty, ktoré

ovplyvňujú aj sami seba.

obr. 9. Závislosť energie od vlastnosti horolezca, prostredia a inventáru

Vzorec pre výpočet energie horolezca v novom stave simulácie

(1)

(2)

39

Page 51: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

(3)

Kde:

ZDRAVIE: hodnota od 0 (smrť) až do 1.05 (0.05 krátkodobé výkonnostné prostriedky ako

napr. adrenalín a pod.), klesať bude exponenciálne.

ZRANENIE: hodnota od 0 až do 1

INV_*: vplyv inventáru na konkrétnu vlastnosť horolezca alebo prostredia, hodnota od 0 až

do 1

ENERGIA_SPANKU: množstvo energie, ktorá pribudne za jednotku času počas spánku

CAS: čas medzi dvoma stavmi simulácie

SPOTREBA: determinuje spotrebu energie horolezca v danom okamihu

VYKONNOST: pôvodná výkonnosť horolezca, konštantne zadaná pre konkrétneho horolezca

TECHNIKA: vlastnosť horolezca, ktorý ovplyvňuje jeho výkonnosť, hodnota od 0 až do 1

NADM_VYSKA, TEREN, ZRAZKY, VIETOR, TEPLOTA, HMLA, DIF_SVETLO:

jednotlivé vplyvy prostredia, hodnota od 0 až do 1

T_ODDYCH: percento času, ktoré horolezec pri vykonávaní činnosti strávi oddychom,

hodnota od 0 až do 1, bude kvadraticky stúpať s nadmorskou výškou

ENERGIA_ODDYCH: množstvo energie, ktoré bude konštantne pribúdať, ak horolezec

nebude vykonávať žiadnu činnosť (len veľmi malá hodnota, napr. 0,01)

3.2 Návrh atribútov výbavy a výstrojaVýstroj bude vplývať na energiu, vlastnosti horolezcov a niektoré zložky počasia. To je možné vidieť

aj v diagrame (obr. 9). Preto bude predmet výstroja implementovaný triedou, ktorá bude obsahovať

všetky potrebné atribúty.

Predmet výstroja musí obsahovať minimálne nasledovné atribúty:

Meno – meno predmetu, pod ktorým bude predmet v hre viditeľný

Hmotnosť – hmotnosť predmetu v kilogramoch

Energia – vplyv predmetu na energiu horolezca (týka sa to jedla)

Zdravie – vplyv predmetu na zdravie horolezca (pre lieky, kyslík,...)

Spanie – vplyv predmetu na kvalitu spania (pre stan, spací vak, karimatku)

Terén – vplyv predmetu na náročnosť terénu

Zrážky – vplyv predmetu na účinky dažďa a snehu

Vietor – vplyv predmetu na účinky vetra

Teplota – vplyv predmetu na účinky chladu a mrazu

Hmla – vplyv predmetu na účinky nadmorskej výšky

40

Page 52: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Nadmorská výška – vplyv predmetu na účinky nadmorskej výšky

Počet použití – maximálny počet použití pre jednotku predmetu

Výdrž – kapacita, ktorú má jednotka predmetu (napr. plynová alebo kyslíková bomba)

Hodnoty pre účinky výstroja budú z intervalu <0;1>. Okrem nich bude ešte obsahovať meno

súboru, kde bude uložený obrázok daného predmetu, prípadne ďalšie pomocné atribúty.

3.3 Spôsob uloženia údajov o výstroji a manipulácia s týmito údajmi

3.3.1 Spôsob uloženia

Všetky údaje, ktoré budú popisovať výstroj a výbavu, budú uložené v XML súbore. Takto bude

zachovaná ich logická štruktúra a navyše ich bude možné veľmi jednoducho modifikovať.

Štruktúra súboru bude popísaná pomocou nasledovného DTD:

<!ELEMENT inventory (item)><!ELEMENT item (name,picture,weight,influence,usecount,capacity)><!ELEMENT name (#PCDATA)><!ELEMENT picture (#PCDATA)><!ELEMENT weight (#PCDATA)><!ELEMENT influence (stamina,health,sleep,terrain,wind,temperature,precipitation,fog,altitude)><!ELEMENT usecount (#PCDATA)><!ELEMENT capacity (#PCDATA)><!ELEMENT stamina (#PCDATA)><!ELEMENT health (#PCDATA)><!ELEMENT sleep (#PCDATA)><!ELEMENT terrain (#PCDATA)><!ELEMENT wind (#PCDATA)><!ELEMENT temperature (#PCDATA)><!ELEMENT precipitation (#PCDATA)><!ELEMENT fog (#PCDATA)><!ELEMENT altitude (#PCDATA)>

Takto bude presne definovaná štruktúra XML dokumentu, navyše priamo pri použití v programe bude

automaticky vykonávaná validácia vstupných údajov voči zvolenému DTD. Príklad vstupného XML

dokumentu je možné vidieť tu:

41

Page 53: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE inventory SYSTEM "horex_inventory.dtd"><inventory>

<item><name>Stan</name><picture>tent01.jpg</picture><weight>10</weight><influence>

<stamina>NA</stamina><health>1.05</health><sleep>2.5</sleep><terrain>NA</terrain><wind>0.05</wind><temperature>0.2</temperature><precipitation>NA</precipitation><fog>NA</fog><altitude>NA</altitude>

</influence><usecount>INFINITE</usecount><capacity>2</capacity>

</item></inventory>

3.3.2 Zobrazovanie

Ako už bolo spomenuté, je veľmi jednoduché modifikovať údaje (stačí na to ľubovoľný textový

editor). Okrem toho však môžeme zobraziť dané údaje pomocou XSL transformácie. Tú budeme

používať na zobrazenie údajov o konkrétnom predmete v GUI hry. Transformáciu budeme definovať

ako zobrazenie na HTML stránku, ktorú potom zobrazíme v jednom okne aplikácie. Takto vyzerá

transformácia pre celý dokument (my z nej budeme používať vždy iba časť, ktorá zobrazí jeden

predmet výstroja):

42

Page 54: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

<?xml version="1.0" encoding="UTF-8"?><xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <HTML> <BODY> <xsl:apply-templates select="inventory/item"/> </BODY> </HTML> </xsl:template> <xsl:template match="item"> <h2><xsl:value-of select="name"/></h2> <table> <tr> <td> <p>Hmotnosť: <xsl:value-of select="weight"/> kg</p> <h3>Účinky:</h3> <ul> <li>Energia: <xsl:value-of select="influence/stamina"/></li> <li>Zdravie: <xsl:value-of select="influence/health"/></li> <li>Spanie: <xsl:value-of select="influence/sleep"/></li> <li>Terén: <xsl:value-of select="influence/terrain"/></li> <li>Vietor: <xsl:value-of select="influence/wind"/></li> <li>Teplota: <xsl:value-of select="influence/temperature"/></li> <li>Zrážky: <xsl:value-of select="influence/precipittion"/></li> <li>Hmla: <xsl:value-of select="influence/fog"/></li> <li>Nadm. výška: <xsl:value-of select="influence/altitude"/></li> </ul> <p>Výdrž: <xsl:value-of select="capacity"/></p> </td> <td> <img src="{picture}"/> </td> </tr> </table> </xsl:template></xsl:transform>

3.3.3 Manipulácia

Údaje budeme načítavať pomocou knižnice MSXML 6.0. Tá umožňuje prístup k údajom pomocou

DOM aj SAX. Rozhodli sme sa použiť DOM reprezentáciu údajov.

Dôvodom je to, že celý súbor sa načíta naraz a potom je prístup k jednotlivým jeho častiam

okamžitý, pretože jednotlivé elementy sú uložené v objektových štruktúrach v pamäti. Použitie DOM

taktiež umožňuje širšie možnosti validácie a kontroly vstupných údajov.

Keďže všetky údaje sa načítajú a uložia do pamäti naraz, DOM má vyššie pamäťové nároky než

SAX. Vzhľadom na povahu produktu sa ale nepredpokladá veľké množstvo vstupných údajov, preto

tento nedostatok môžeme ignorovať.

43

Page 55: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

3.4 Diagram tried systémuNa obr. 10 je znázornený diagram tried systému. Jednotlivé triedy sú popísané nižšie.

obr. 10 Diagram tried systému

csimulation

Predstavuje simulačné jadro systému a teda je aj jeho ústredný bod. Zodpovedá za priebeh simulácie,

pre ktorý využíva ostatné triedy.

44

Page 56: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

cmonitor

Slúži na zobrazovanie simulácie. Informácie o všetkých objektoch simulácie získava z triedy

csimulation.

ccontroler

Jeho prostredníctvom môže používateľ systému nastavovať jednotlivé parametre simulácie.

cmountain

Je to samotný vrch, ktorý sa skladá z množiny bodov (cpoint), spojníc (cjoin) týchto bodov

a jednotlivých počasí (cweather).

cweather

Jedná sa o jeden typ (stav) počasia. Atribúty tejto triedy popisujú vlastnosti počasia ako sú napríklad

pravdepodobnosť jeho výskytu, alebo rozsah doby jeho trvania.

cmountainlocation

Predstavuje pozíciu na vrchu. Obsahuje zoznam entít (centity), ktoré sa na ňom nachádzajú. V systéme

môžu byť pozície buď bod (cpoint), alebo spojnica (cjoin).

cpointTrieda je odvodená z cmountainlocation. Predstavuje jeden bod vrchu a môže mať nasledovné typy:

cstartpoint – Počiatočný bod.

cgoalpoint – Cieľový bod.

ccontrolpoint – Bod v strede vrchu. Má určené, či sa na ňom môže nachádzať tábor a  má

definovaný terén (cterain).

cjoinTrieda je odvodená z cmountainlocation. Slúži na spojenie jednotlivých bodov vrchu (cpoint). Jedna

spojnica môže mať viacero úsekov (cjoinsegment), ktoré sú definované svojím terénom (cterain).

cjoinsegment

Úsek spojnice (cjoin). Má definovaný svoj terén a dĺžku.

cterain

Definuje parametre terénu jednotlivých kontrolných bodov (ccontrolpoint) a spojníc (cjoin).

centity

Entitami v systém môžu byť horolezci (cmountaineer), ale aj tábory (ccamp). Každá entita má svoju

pozíciu na vrchu (cmountainlocation) a svoj inventár (cinventory).

45

Page 57: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

cmountaineerJe to entita predstavujúca horolezca. Má parametre, ktoré charakterizujú jeho horolezecké schopnosti

a stavový stroj (cstate, cedge), ktorého stavy reprezentujú stavy reálneho človeka.

ccampEntita predstavujúca tábor. Aj tábor, ako entita, vlastní svoj inventár.

cinventory

Trieda predstavuje inventár, ktorý obsahuje objekty horolezeckej výbavy (coutfitobject).

ctask

Úloha, ktorú má zadanú jeden, alebo viacero horolezcov. Úloha zväzuje horolezcov a vytvára tak

skupinu. Má určenú cestu z jednotlivých spojníc (cjoin) a bod (cpoint), cez ktorý posledne prešla

skupina horolezcov, ktorá plní túto úlohu. Tento bod je potrebný pre možnosť vrátenia sa

k poslednému bodu v prípade neočakávanej situácie.

46

Page 58: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

3.5 Návrh procesu simulácie

obr. 11 Diagram aktivít Proces simulácie

47

Page 59: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Proces simulácie je zobrazený diagramom aktivít na Error: Reference source not found. Používateľ si

najprv zvolí krok simulácie (viď. UC06 v kapitole Špecifikácia požiadaviek na systém). Systém

vypočíta nový stav, ktorý nastáva v nasledujúcich prípadoch:

1. Horolezec prejde na iný úsek spojnice- zmenil sa terén

2. Horolezec splní svoju úlohu

3. Zmení sa počasie

4. zmení sa denná doba

5. Zmení sa stav horolezca- napríklad ak ochorie, ale nie keď sa napríklad zmení hodnota jeho

energie

Po vypočítaní nového stavu systém určí o aký stav sa jedná. Stavy môžu mať nasledovné typy:

1) Vyžaduje zásah užívateľa

a) Ukončila sa úloha a teda je potrebné aby užívateľ zadal novú úlohu príslušnému

horolezcovi, resp. skupine horolezcov (prípad č.2). Pri tomto type stavu s kontroluje aj či

nebol dosiahnutý cieľ expedície.

b) Nastal neočakávaný stav a je potrebné aby ho užívateľ vyriešil (prípad č.3 a 5). Pod

riešením sa myslí rozhodnutie, či má horolezec pokračovať vo svojej úlohe, alebo ju má

prerušiť a vrátiť sa do predchádzajúceho kontrolného bodu. Kontroluje sa aj či

neočakávaný stav nepredstavuje neúspech expedície.

2) Nevyžaduje zásah užívateľa (prípad č.1 a 4)- Iba sa zahrnú do výpočtu nové hodnoty.

48

Page 60: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

4 Revízia špecifikácie požiadaviek na systém

Táto kapitola obsahuje revíziu špecifikácie systému. Sú tu uvedené diagramy, ktoré boli

zmenené a popísané pridané prípady použitia. Na nasledujúcom obrázku je uvedený diagram prípadov

použitia, do ktorého boli pridané prípady použitia (UC21) uloženie simulácie a (UC22) načítanie

uloženej simulácie. Taktiež boli zmenené stereotypy <<uses>> na <<include>>.

obr. 12 Diagram prípadov použitia systému

49

Page 61: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

4.1.1 Pridané a zmenené prípady použitia

(UC01) Inicializácia simulácie- V diagrame na obr. 6 je uvedený aktualizovaný

diagram aktivít pre tento prípad použitia. Bolo pridané potvrdenie cieľa expedície

a výpis predpovede počasia bol zmenený na výpis informácií o expedícií.

obr. 13 diagram aktivít Inicializácia simulácie

(UC06) výber kroku simulácie- V tomto prípade použitia bol iba prekreslený

diagram aktivít (obr. 7), aby vyhovoval UML 2.0.

50

Page 62: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

obr. 14 Diagram aktivít Výber kroku simulácie

51

Page 63: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

(UC09) vytvorenie modelu hory- V tomto prípade použitia bol iba prekreslený

diagram aktivít (), aby vyhovoval UML 2.0.

obr. 15 Diagram aktivít vytvorenie modelu hory

(UC21) uloženie simulácie – V prípade, že chce hráč pokračovať v spustenej simulácií

neskôr, umožní mu systém uložiť aktuálny stav simulácie do súboru.

(UC22) načítanie uloženej simulácie – Tento prípad použitia nastáva vtedy, keď chce

hráč pokračovať v uloženej simulácií. Simulácia sa načíta a hráč môže pokračovať

v simulácií od toho kroku, v ktorom ju uložil.

52

Page 64: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5 Podrobný návrh

5.1 Návrh systému

5.1.1 Diagram tried systémuNa nasledujúcom obrázku je znázornený diagram tried celého systému na logickej úrovni a tiež

asociácie medzi všetkými triedami, ktoré súvisia so simulačnou logikou. Je tu opísaná trieda

CSimulation. Jednotlivé časti diagramu, triedy a ich vzájomné vzťahy sú opísané v ďalších kapitolách.

CSimulation

Trieda implementujúca celkový mechanizmus simulácie a poskytujúca sprístupnenie jednotlivých

podsystémov systému.

Táto trieda bude uchovávať aj rozvrh a tak ho sprístupňovať ostatným jej súčastiam.

Ďalej bude sprístupňovať objekt hory (inštancia triedy CMountain) a odkazy na počiatočný

a cieľový bod expedície.

Atribúty

Protected:

float last_recalculation_time – čas posledného spustenia metódy Recalculate.

static HANDLE sim_thread_handle – identifikátor (handle) simulačného vlákna.

static DWORD sim_thread_id – identifikátor (id) simulačného vlákna.

static CSchedule schedule – rozvrh udalostí.

static bool simulating – či sa práve vykonáva simulačný cyklus.

CGroupManager group_manager – manažér skupín.

CWeatherManager weather_manager – manažér počasia.

CMountain* mountain – smerník na objekt hory.

MOUNTAINEER_LIST mountaineers – zoznam horolezcov.

CControlPoint* start_point – smerník na počiatočný bod expedície.

CControlPoint* end_point – smerník na cieľový bod expedície.

Metódy

Public:

static DWORD WINAPI SimulThreadProc(LPVOID param) – procedúra simulačného vlákna.

ExecuteSimulStep() – vykoná simulačný krok.

Recalculate() – prepočíta stav potrebných častí v simulácii.

InsertMountaineer(CMountaineer* mountaineer) – pridá horolezca do simulácie.

HANDLE GetSimThreadHandle() – vráti identifikátor (handle) simulačného vlákna.

DWORD GetSimThreadId() – vráti identifikátor (id) simulačného vlákna.

53

Page 65: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

CSchedule& GetSchedule() – vráti referenciu na rozvrh.

CWeatherManager& GetWeatherManager() – vráti referenciu na manažéra počasia.

CGroupManager& GetGroupManager() – vráti referenciu na manažéra skupín horolezcov.

CMountain* GetMountain() – poskytnutie smerníka na objekt hory.

MOUNTAINEER_LIST& GetMountaineerList() – vráti referenciu na zoznam horolezcov.

CControlPoint* GetStartPoint() – poskytnutie smerníka na počiatočný bod expedície.

CControlPoint* GetEndPoint() – poskytnutie smerníka na cieľový bod expedície.

bool IsStartPoint(CControlPoint* test_point) – testuje, či je daný bod počiatočným

bodom expedície.

bool IsStartPoint(CControlPoint* test_point) – testuje, či je daný bod cieľovým bodom

expedície.

SetStartPoint(CControlPoint* point) – nastaví počiatočný bod expedície.

SetEndPoint(CControlPoint* point) – nastaví cieľový bod expedície.

54

Page 66: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

obr. 16 Diagram tried systému

55

Page 67: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.1.2 Diagram tried vstupno-výstupnej úrovne systémuNa nasledovnom obrázku je znázornený diagram tried vstupno-výstupnej úrovne systému, ktorý

opisuje vzťahy triedy CSimulation s triedami pre spracovanie vstupných súborov a s triedami

používateľského rozhrania.

obr. 17 Diagram tried Vstupno-výstupná úroveň systému

56

Page 68: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Uvedený diagram je navrhnutý podľa princípov návrhového vzoru Observer, ktorý definuje závislosť

objektov 1:n, kde ak jeden objekt zmení svoj stav, informuje o tom všetkých svojich pozorovateľov.

Títo sú automaticky aktualizovaní.

Hlavnými časťami tohto vzoru sú triedy Observer a Subject. Subject udržuje informáciu

o svojich pozorovateľoch a poskytuje rozhranie pre ich pridávanie a odoberanie. Observer definuje

aktualizačné rozhranie pre objekty, ktoré musia byť informované o zmenách v subjekte.

CWindowObserver

Abstraktná trieda observera, ktorý je tvorený dialógovým okno s ovládacími prvkami.

Atribúty

string name; – názov observera

Metódy

virtual void OnShow(); - metóda, ktorá sa vykoná pri zobrazení okna

virtual void OnHide(); - metóda, ktorá sa vykoná pri skrytí okna

CViewportObserver

Abstraktná trieda observera zobrazujúceho graficky reprezentáciu simulácie.

Atribúty

atribúty uchovávajúce informácie o manažéroch pre grafické vykresľovanie scény pomocou knižnice

OGRE

Metódy

metódy pre ošetrovanie používateľských vstupov – myš a klávesnica

CSoundObserver

Trieda observera, ktorý na základe stavu simulácie prehráva zvukové záznamy. Jedná sa

predovšetkým o spúšťanie zvukových efektov ako napr. vietor, hučanie lavíny a pod.

Atribúty

atribúty uchovávajúce informácie o prehrávačoch zvukových súborov a stavov prehrávania zvukových

stôp

Metódy

metódy pre vykonávanie operácií so zvukovými stopami

Ostatné triedy sú bližšie opísané v kapitole 5.6.

57

Page 69: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.2 Návrh stavov simulácie

5.2.1 Účel návrhu stavovSimulácia horolezeckej výpravy sa počas svojho životného cyklu môže nachádzať v definovanej

množine základných stavov. Pri definícii množiny možno vychádzať z rôznych pohľadov na správanie

sa systému v jednotlivých stavov.

V tejto kapitole vychádzame z pohľadu interakcie používateľa s priebehom simulácie. Účelom

navrhnutej množiny stavov a ich vzájomných prechodov je poskytnúť objasnenie, aké informácie bude

mať používateľ k dispozícii v jednotlivých stavoch simulácie a ako mu bude umožnené v týchto

stavoch zadávať príkazy a údaje pre simuláciu.

Stavy simulácie sú uvedené v niekoľkých úrovniach abstrakcie. Jednotlivé stavy môžu mať

vlastné vnútorné stavy.

5.2.2 Stavový diagram Stavy simulácieDiagram uvedený na nasledujúcom obrázku opisuje základné stavy simulácie a prechody medzi nimi.

obr. 18 Stavový diagram Stavy simulácie

58

Page 70: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Inicializácia simulácie

V tomto stave sa alokujú všetky potrebné údajové štruktúry a inicializujú sa hodnotami načítanými

z externých súborov. V ďalšej fáze sa zobrazia obrazovky pre zadanie údajov a nastavení týkajúcich sa

nasledovného:

výber miesta horolezeckej expedície – hory

výber členov expedície – horolezcov

výber materiálu – jedlo a výstroj

Vykonávanie simulácie

Stavový diagram vykonávania simulácie je uvedený v ďalšej kapitole.

Vyhodnotenie simulácie

V tomto stave sa vyhodnotí priebeh simulácie. Vyhodnotí sa úspešnosť expedície – splnenie alebo

nesplnenie cieľa, prípadný dôvod zlyhania expedície a štatistické údaje o expedícii, ako napr. dĺžka

trvania, množstvo spotrebovaného jedla a pod. Ďalej možno sledovať záznamy o priebehu simulácie

prostredníctvom textového záznamu.

59

Page 71: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.2.3 Stavový diagram Vykonávanie simulácieV nasledujúcom diagrame sú podrobnejšie opísané stavy a ich vzájomné prechody pri samotnom

vykonávaní simulácie horolezeckej výpravy.

obr. 19 Stavový diagram Vykonávanie simulácie

60

Page 72: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Simulácia je v interaktívnom stave

V tomto stave neprebieha samotný simulačný výpočet hodnôt entít vystupujúcich v simulácii, ale

simulácia je „pozastavená“. Používateľ má možnosť informovať sa o aktuálnom stave simulácie

zobrazovaním informácií o počasí, horolezcoch táboroch a pod.

Tento stav obsahuje vnútorné stavy zabezpečujúce naplánovanie ďalšieho simulačného kroku,

a to zadaním údajov používateľom: vytvorenie skupín s voľných horolezcov, to je takých, ktorí

nemajú v danom čase priradenú úlohu, priradenie materiálu horolezcom v skupine a priradenie úlohy

danej skupine horolezcov.

Vnútorné stavy stavu „Simulácia je v interaktívnom stave“ je vidno z predchádzajúceho

diagramu.

Vyberá sa lokácia

Tento stav nastáva po výbere ľubovoľnej lokácie – lokality na trojrozmernom modely hory, a to

kliknutím ľavého tlačidla myši na model. Následne po selekcii lokácie sa aktualizujú hodnoty

o aktuálnom výbere lokácie.

Ak sa v danej lokácii nenachádza žiadny voľný horolezec, zobrazia sa informácie o lokácii

a objektov na nej situovaných. V prípade prítomnosti voľného horolezca, t.j. horolezca bez úlohy,

prejde interaktívny stav do stavu „Vytváranie skupiny“.

V tomto stave je možné stále meniť zvolenú lokáciu a zobrazuje sa okno „Informácie o

lokácii“.

Vytváranie skupiny

V stave vytvárania skupiny je zobrazené okno „Vytvoriť skupinu“. Používateľ má možnosť zo

zoznamu voľných horolezcov presúvať ľubovoľných horolezcov do novovznikajúcej skupiny.

Ak používateľ v tomto stave označí myšou na modely hory inú lokáciu, prejde stav do stavu

„Vyberá sa lokácia“, ak sa na vybranej lokácii nenachádza žiadný voľný horolezec. Ak sa nachádza,

zostane v tomto stave, pričom sa však aktualizuje zoznam voľných horolezcov na danej lokácii

a predchádzajúci výber sa zruší.

Po potvrdení vytvorenia novej skupiny prejde stav do stavu „Prideľovanie materiálu“, ak sa

skupina nachádza na pozícii ľubovoľného tábora, v opačnom prípade prejde do stavu „Zadávanie

úlohy“.

Prideľovanie materiálu

61

Page 73: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

V stave prideľovania materiálu je zobrazené okno „Prideliť materiál“. Z zoznamu dostupného

materiálu – jedla a výbavy – je možné presunúť materiál do inventárov jednotlivých horolezcov.

Takisto možno presúvať materiál opačným smerom.

Po potvrdení pridelenia materiálu prechádza stav do stavu „Zadávanie úlohy“. Takisto je

možné vrátiť sa do stavu „Vytváranie skupiny“ (vratné prechody nie sú v diagrame kvôli prehľadnosti

zakreslené).

Zadávanie úlohy

V tomto stave používateľ priradí skupinke úlohu, ktorú ma vykonať a to výberom zo zoznamu

možných úloh. Podľa typu úlohy nastaví dodatočné parametre.

Po potvrdení zadania úlohy prejde stav podľa charakteru úlohy do jedného zo stavov

„Zadávanie cesty“, „Zadávanie času“ alebo „Zobrazovanie naplánovanej úlohy“. Takisto je možné

vrátiť sa do predchádzajúceho stavu.

Počas trvania tohto stavu sa zobrazuje okno „Zadať úlohu“.

Zadávanie cesty

Zadávanie cesty je stav, kedy charakter vybranej úlohy vyžaduje od používateľa, aby vybral trasu, po

ktorej sa má skupinka presúvať.

V tomto stave sa zobrazí okno „Zadaná cesta“, v ktorom je zoznam úsekov aktuálne zvolenej

trasy. Používateľ pridáva do zoznamu nové úseky selektovaním lokácií, odstraňuje ich selekciou

v zozname.

Po potvrdení trasy prechádza stav do stavu „Zobrazenie naplánovanej úlohy“, taktiež je možné

vrátiť sa do stavu „Zadávanie úlohy“, a to zrušením zadanej cesty.

Zadávanie času

Zadávanie času je stav, kedy charakter vybranej úlohy vyžaduje od používateľa, aby zadal čas, po

ktorý ma skupinka danú úlohu plniť.

V tomto stave sa zobrazí okno „Zadať čas“ s ovládacím prvkom pre zadanie času v hodinách

reprezentovaného ako reálne číslo (takto je možné určiť čas aj v menších časových jednotkách).

Po zadaní času prechádza stav do stavu „Zobrazenie naplánovanej úlohy“, prípadne sa možno

vrátiť do stavu „Zadávanie úlohy“.

Zobrazovanie naplánovanej úlohy

V tomto stave sa zobrazia vybrané súhrnné informácie o práve naplánovanej úlohe.

Potvrdením údajov sa úloha naplánuje a prejde sa do ďalšieho stavu. Ak ešte existujú voľní

horolezci, prejde interaktívny stav do stavu „Vyberá sa lokácia“. Ak majú všetci horolezci pridelenú

62

Page 74: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

úlohu, prejde sa do stavu „Pripravená simulácia“. Taktiež je možné sa vrátiť do predchádzajúceho

stavu.

Pripravená simulácia

Simulácia je pripravená, ak má každý horolezec pridelenú úlohu. V tomto stave je stále možné

prezerať si informácie o entitách vystupujúcich v simulácii. Zobrazuje sa okno „Informácie o lokácii“.

Po zadaní príkazu spustenia výpočtu prejde simulácia do stavu „Simulácia je vo výpočtovom

stave“.

Simulácia je vo výpočtovom stave

V tomto stave sa vykonávajú všetky naplánované úlohy, ale aj udalosti, ktoré neplánuje používateľ

(napr. zmena počasia, ochorenie horolezca, pád lavíny, atď.). Prepočítavajú sa hodnoty entít

vystupujúcich v simulácii a plánujú sa udalosti plánované automaticky (tie, ktoré neplánuje

používateľ).

V tomto stave sa môže zobrazovať „progress bar“, ktorý informuje o priebehu výpočtu.

Po skončení výpočtu sa simulácia môže ocitnúť v stave, ktorý spĺňa podmienky úspešného

alebo neúspešného ukončenia simulácie. Vtedy prejde Vykonávanie simulácie do koncového stavu.

Ináč prejde simulácia do ďalšieho simulačného cyklu a to zmenou stavu na stav „Simulácia je

v interaktívnom stave“.

63

Page 75: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.3 Návrh zapisovača (Logger)

5.3.1 Účel zapisovačaZapisovač bude poskytovať metódy pre pohodlné a jednotné zapisovanie informácií do log

súboru.

Každá informácia bude mať svoj typ, pričom budú podporované nasledovný typy:

informácia

upozornenie

chyba

Zapisovač bude poskytovať spôsob pre nastavenie filtru typu správ, ktoré sa majú zapisovať

do log súboru.

64

Page 76: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.3.2 Diagram tried Zapisovač

obr. 20 Diagram tried Zapisovač

CSingleton

Šablónová trieda implementujúca návrhový vzor singleton, ktorého charakteristikou je skutočnosť, že

môže existovať iba jedna jeho inštancia.

Metódy

GetInstance() – vráti inštanciu triedy danej typom v šablónovej triede.

CLogger

Zapisovač do súboru.

Atribúty

ofstream log - log súbor.

UINT message_type_mask - Určuje aké typy sprav sa majú zapisovať do súboru;

Metódy

void LogMessageType(MESSAGE_TYPE message_type) - zapíše do log súboru typ

správy.

void LogTime() - zapíše do log súboru aktuálny čas.

void LogMessage(const string& message,const string& message_source,

MESSAGE_TYPE message_type=MT_INF) - zapíše do log súboru správu.

void SetLogMessageTypes(UINT message_types) - nastaví typ sprav, ktoré sa majú

zapisovať log úboru.

65

Page 77: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.4 Návrh rozvrhu

5.4.1 Účel rozvrhu a princíp jeho činnostiRozvrh je nevyhnutnou súčasťou diskrétnej simulácie. V podstate sa jedná o usporiadaný zoznam

udalostí, ktoré prislúchajú jednotlivým súčastiam simulácie.

Hlavnou úlohou rozvrhu bude možnosť pridávania nových udalostí a vykonávanie

simulačného kroku.

Pri vykonaní simulačného kroku sa vždy vyberú všetky udalosti, ktoré majú rovnaký čas

vykonania ako prvá (s najnižším časom) udalosť v rozvrhu. V rámci jedného času vykonania je nutné

aby boli udalosti zotriedené aj podľa priority, pretože bude potrebné zabezpečiť aby sa určité udalosti

v rámci rovnakého času vybrali v danom poradí.

Udalosť, ktorá sa vyberie z rozvrhu pri vykonávaní simulačného kroku sa hneď po jej vybratí

z rozvrhu vykoná.

Keďže sa môže niekedy stať, že práve vykonávaná udalosť ovplyvní už naplánované udalosti,

bude poskytovať rozvrh metódu pre preplánovanie existujúcich udalostí. Príklad takejto situácie môže

byť zmena počasia, ktorá zapríčiní, že sa všetky naplánované udalosti úloh horolezcov (kladenie

fixných lán a podobne) musia prepočítať k aktuálnemu času, pričom sa do výpočtov zahrnie staré

počasie. Každá z týchto udalostí sa potom preplánuje na nový začiatočný čas. Niekedy bude taktiež

nutné naplánované udalosti pri preplánovaní z rozvrhu odstrániť. Príkladom môže byť už spomínaná

zmena počasia, pri ktorej sa program pre každú úlohu horolezcov spýta či majú horolezci pokračovať

v úlohe, alebo sa vrátiť k poslednému kontrolnému bodu. Ak si užívateľ vyberie návrat a teda zrušenie

úlohy, musí sa pôvodná udalosť úlohy odstrániť a nahradiť sa novou.

66

Page 78: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.4.2 Diagram tried RozvrhNa nasledujúcom obrázku je znázornený diagram tried rozvrhu, ktoré poskytujú funkcionalitu spojenú

s vytváraním, plánovaním a vykonávaním udalostí. Za diagramom nasleduje popis jednotlivých tried,

ich atribútov a metód.

obr. 21 Diagram tried Rozvrh

67

Page 79: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

CSimulation

Trieda implementujúca celkový mechanizmus simulácie a poskytujúca sprístupnenie jednotlivých

podsystémov systému. Táto trieda bude uchovávať aj rozvrh a tak ho sprístupňovať ostatným jej

súčastiam.

Atribúty

CSchedule nschedule – rozvrh udalostí.

Metódy

GetSchedule() – vráti referenciu na rozvrh.

CShedule

Trieda implementujúca rozvrh naplánovaných udalostí. Vyvoláva vykonanie udalostí, ktoré sú uložené

v prioritnom rade podľa času výskytu a priority.

Atribúty

EVENTS_MAP events – usporiadaný zoznam udalostí v rozvrhu.

float sim_time – aktuálny simulačný čas (čas udalosti, ktoré sa posledne vykonali)

Metódy

bool IsEmpty() – vráti či je rozvrh prázdny.

float GetActualTime() - vráti aktuálny simulačný čas.

void InsertEvent(CEvent* new_event, float dtime, int prior) – pridá do

rozvrhu novú udalosť.

float ExecuteStep() - vykoná simulačný krok a vráti novy čas.

void Reschedule(void* owner) - preplánuje všetky udalosti prislúchajúce danému

vlastníkovi.

void DeleteEvents(void* owner) – zmaže všetky udalosti prislúchajúce danému

vlastníkovi.

CEvent

Trieda implementuje akúkoľvek naplánovanú udalosť. Odvádzajú sa z nej konkrétne udalosti, ktorým

sa prekoná metóda Execute() a poprípade Reschedule(float actual_time, int prior).

Atribúty

float birth_time – čas kedy vznikla udalosť (nastavuje ho CSchedule pri

naplánovaní udalosti).

float scheduled_time – čas na ktorý je udalosť naplánovaná (nastavuje ho CSchedule pri

naplánovaní udalosti).

68

Page 80: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

void* owner – vlastník udalosti (napr. úloha je vlastníkom udalosti ukončenie úlohy).

Metódy

void SetBirthTime(float time) - nastaví čas kedy vznikla udalosť (resp. bola pridaná do

rozvrhu) (používa CSchedule).

void SetScheduledTime(float time) – nastaví čas na ktorý je udalosť naplánovaná

(používa CSchedule).

void Execute() – vykonanie udalosti. Túto metódu je potrebné prekonať.

bool Reschedule(float actual_time, int prior) – preplánovanie udalosti. Metódu

volá CSchedule pri preplánovavaní (Reschedule()). Ak vráti false, tak rozvrh

udalosť odstráni z rozvrhu. Táto metóda môže byť prekonaná. Ak sa

neprekoná, tak iba vráti true, čo znamená, že sa udalosť nemá zmazať

z rozvrhu.

float GetBirthTime() - vráti čas kedy vznikla udalosť (resp. bola pridaná do rozvrhu).

float GetScheduledTime() - vráti čas na ktorý je udalosť naplánovaná.

void* GetOwner() - vráti vlastníka udalosti.

CAuxEventContainer

Pomocná trieda uchovávajúca udalosť pri vykonávaní metódy Reschedule() rozvrhu CSchedule.

Atribúty

CEvent* event – udalosť.

float time - čas na ktorý je udalosť naplánovaná.

int prior - priorita udalosti.

69

Page 81: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.5 Návrh modelu počasia

5.5.1 Parametre a stavy počasiaPočasie je definované svojimi parametrami, ktoré predstavujú rôzne poveternostné vplyvy. Vplyvy sú

nasledovné:

intenzita zrážok

hustota hmly

rýchlosť vetra

teplota

Vzhľadom na definované parametre môže nastať konečná množina stavov počasia. Zmena

počasia z jedného stavu do druhého je ohraničená vlastnosťami parametrov počasia. Stavy počasia

a možnosti jeho zmeny sú vyjadrené v stavovom diagrame na obr. 22.

Pozn.: Hodnoty parametrov zrážky, hmla a vietor sú len orientačné. Nula značí, že parameter

momentálne nevplýva na počasie (jeho hodnota je 0), jednotka značí, že parameter vplýva na počasie

(jeho hodnota je väčšia ako 0, max. hodnota je daná ohraničením parametru).

Počasie je ďalej definované parametrami, ktoré predstavujú dynamiku počasia –

pravdepodobnosť nastania počasia a jeho stálosť. Parametre sú:

pravdepodobnosť výskytu

minimálna doba výskytu

maximálna doba výskytu

Od týchto parametrov závisí, ktoré z daných typov resp. stavov počasia nastane pri zmene

počasia a ako dlho bude daný stav trvať, to znamená, za akú dobu sa počasie zase zmení.

70

Page 82: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

obr. 22 Stavový diagram Stavy počasia

71

Page 83: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.5.2 Diagram tried Model počasiaNa nasledovnom obrázku je znázornený diagram tried modelu počasia, ktorý zabezpečuje: načítanie a

uchovávanie informácií o možných stavoch počasia, uchovávanie aktuálneho stavu počasia, zmenu

aktuálneho počasia, zistenie dopadu počasia na energiu horolezca, ako aj možnosť naplánovať ďalšiu

zmenu počasia.

obr. 23 Diagram tried Model Počasia

72

Page 84: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

CSimulation

Trieda implementujúca celkový mechanizmus simulácie a poskytujúca sprístupnenie jednotlivých

podsystémov systému.

Bližšie je popísaná v kapitole 5.1.1.

CShedule

Trieda implementujúca rozvrh naplánovaných udalostí. Vyvoláva vykonanie udalostí, ktoré sú uložené

v prioritnom rade podľa času výskytu.

Bližšie je popísaná v kapitole 5.4.2.

CEvent

Trieda implementuje akúkoľvek naplánovanú udalosť. Z pohľadu plánovania zmeny počasia je

zaujímavá iba jej čisto virtuálna metóda Execute().

Bližšie je popísaná v kapitole 5.4.2.

Metódy

Execute() – čisto virtuálna metóda pre vykonanie naplánovanej udalosti.

CWeatherChange

Trieda zdedená z CEvent. Implementuje udalosť zmeny počasia, ktorá sa vykoná vyvolaním

virtuálnej metódy Execute().

Metódy

Execute() – virtuálna metóda pre vyvolanie zmeny počasia, vyvolanie aktualizácií od počasia

závislých naplánovaných úloh a naplánovanie novej zmeny

počasia.

CWeatherManager

Trieda reprezentujúca manažér počasia, ktorý spravuje zoznam počasí a na základe náhodného výberu

metódou rulety vyberá aktuálne počasie.

Atribúty

CWeather* current_weather – smerník na aktuálne počasie.

WEATHER_LIST weather_list – zoznam všetkých možných počasí.

Metódy

CWeather& GetCurrentWeather() – poskytnutie referenciu na aktuálne počasie .

Load() – načítanie počasí do zoznamu možných počasí prostredníctvom poskytovateľa vstupných

údajov.

73

Page 85: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

float ChangeWeather() – zmena aktuálneho počasia metódou rulety na základe

pravdepodobností nastania jednotlivých počasí. Vracia čas

trvania práve zmeneného počasia v hodinách.

CWeather

Trieda reprezentujúca pomenovaný stav počasia. Je definovaná parametrami poveternostných

vplyvov, ako aj pravdepodobnosťou výskytu a možným intervalom trvania – premenlivosťou.

Atribúty

string name – názov počasia.

string description – stručný opis počasia.

float wind_speed – rýchlosť vetra [km/h]. Spodné ohraničenie je 0 km/h.

float fog_density – hustota hmly [%]. Ohraničenie je 0 – 100%.

float precip_amount – intenzita zrážkovej činnosti [mm/h] – sneženie alebo dážď. Spodné

ohraničenie je 0 mm/h.

float zero_temp_heigth – nadmorská výška, v ktorej je teplota 0 0C [m].

int occur_prob – pravdepodobnosť výskytu počasia. Hodnota z intervalu <0,MAX_RAND>.

float occur_time_min – minimálna dĺžka trvania počasia. Hodnota je väčšia ako 0.

float occur_time_max – maximálna dĺžka trvania počasia. Hodnota je väčšia ako hodnota

minimálnej dĺžky trvania počasia.

Metódy

GetAttribute() – abstraktná metóda predstavujúca množinu všetkých Get() metód vracajúcich

hodnoty atribútov triedy.

SetAttribute() – abstraktná metóda predstavujúca množinu všetkých Set() metód nastavujúcich

hodnoty atribútov triedy.

string WeatherInfo() – informácia o počasí. Metóda vracia formátovaný reťazec znakov

obsahujúci názov a popis počasia, rýchlosť vetra, hustotu hmly, intenzitu

zrážok a výšku, v ktorej je teplota 0 0C.

float EnergyImpact(float heigth) – vypočíta koeficient vplyvu počasia na energiu

horolezca v závislosti od zadanej nadmorskej výšky.

float GetTemperature(float heigth) – vypočíta hodnotu teploty v závislosti od

nadmorskej výšky.

74

Page 86: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.5.3 Typy počasia a ich zmenaTak, ako vyplýva zo stavového diagramu, jednotlivé stavy počasia sú reprezentované určitým typom

počasia, t.z. určitou kombináciou jednotlivých poveternostných vplyvov.

V diagrame tried modelu počasia vidno, že jednotlivé typy počasia sú reprezentované ako

celok triedou CWeather. Zmena počasia nie je daná zmenou hodnôt jednotlivých parametrov počasia,

je daná zámenou objektov triedy CWeather s preddefinovanými hodnotami parametrov. Zmenu

počasia implementuje trieda CWeatherChange, pričom výber aktuálneho počasia z množiny možných

počasí zabezpečuje trieda CWeatherManager.

V nasledujúcej tabuľke sú navrhnuté základné typy počasia a ich parametre. Treba

pripomenúť, že súčet pravdepodobností výskytu navrhovaných a využívaných typov počasí by mal

tvoriť 100 %. Dôvodom je zachovanie správnosti zadaných hodnôt pravdepodobnosti výskytu.

Pozn.: Nasledovné parametre nie sú navrhnuté pre žiadnu konkrétnu lokalitu. Pri zadávaní

jednotlivých typov počasia a ich parametrov je vhodné riadiť sa meteorologickými údajmi pre

navrhovanú lokalitu.

Názov Popis

Pravdepodobnosť výskytu

[promile]Minimálna doba trvania [h] Maximálna doba trvania [h]

Rýchlosť vetra [km/h] Hustota hmly [%] Zrážkový úhrn [mm/h]Výška s teplotou 0C [m

n. m.]

Slnečno Jasné, bezoblačné počasie bez poveternostných vplyvov. Maximálna viditeľnosť.

250 6,0 22,0

0 0 0 1800,0

Veterno Jasné, bezoblačné počasie s pomerne silným vetrom.

120 3,5 16,0

80,0 0,0 0,0 1600,0

Hmlisto Počasie s hustou hmlou. Slabá viditeľnosť.

100 4,0 12,0

0,0 70,0 0,0 1600,0

Padajúce zrážky Oblačné počasie s padajúcimi zrážkami. Vo vyšších polohách sneženie, v nižších dážď.

140 6,0 20,0

0,0 0,0 14,0 1500,0

Hmlisto a veterno Veterné počasie s prúdiacou hmlou. Slabá viditeľnosť.

80 2,0 6,0

45,0 50,0 0,0 1500,0

Sychravo Mierne padajúci dážď s tvoriacou sa hmlou.

110 7,5 18,5

0,0 40,0 10,0 1900,0

75

Page 87: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Výchrica Veterné počasie s prudko padajúcimi zrážkami. Zlá viditeľnosť.

120 5,5 10,0

50,0 0,0 12,0 1450,0

Veterná smršť Veterná smršť s hustým dažďom a hmlou. Minimálna viditeľnosť.

80 3,5 12,0

55,0 10,0 12,5 1550,0

Tabuľka 3 Typy počasia

76

Page 88: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.5.4 Sekvenčný diagram načítania typov počasiaNa nasledovnom obrázku je znázornený sekvenčný diagram načítania typov počasia.

Princíp je nasledovný: Manažér zistí načíta do zoznamu mená všetkých súborov s typmi

počasia, ktoré mu poskytne príslušný poskytovateľ údajov CXmlDataProvider. Pre každý súbor

vytvorí manažér objekt počasia CWeather, pre každý atribút počasia načíta z poskytovateľa údajov

atribút počasia a nastaví ho v objekte, uloží objekt počasia do zoznamu možných počasí.

obr. 24 Sekvenčný diagram Načítanie typov počasia

77

Page 89: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.6 Návrh vstupno-výstupného podsystému

5.6.1 Účel podsystému a princíp jeho činnostiVstupno-výstupný podsystém (ďalej len IO modul) zapuzdruje v sebe väčšinu operácií

s konfiguračnými súbormi pre aplikáciu. Menovite je to:

načítavanie parametrov inventára

načítavanie údajov o expedíciách

načítavanie údajov o horolezcoch a ich parametrov

načítavanie parametrov počasia

Do budúcnosti sa plánuje doplnenie jeho funkcionalitu o serializáciu vyššie spomenutých

parametrov do súborov pri ukladaní pozície.

Načítavané údaje budú uložené v XML súboroch. Na parsovanie týchto súborov bude použitý

Xerces–C++ Parser (aktuálne vo verzii 2.7). Zvolili sme si implementáciu DOM.

Dôvodom je to, že celý súbor sa načíta naraz a potom je prístup k jednotlivým jeho častiam

okamžitý, pretože jednotlivé elementy sú uložené v objektových štruktúrach v pamäti. Použitie DOM

taktiež umožňuje širšie možnosti validácie a kontroly vstupných údajov.

Oproti pôvodnému návrhu, kedy sa všetky informácie o expedíciách, horolezcoch a inventári

mali nachádzať v spoločných súboroch – jeden súbor pre jednu kategóriu údajov – rozhodli sme sa

zapisovať údaje o každej entite do samostatného súboru. To uľahčí manipuláciu v prípade pridávania

alebo odoberania entít. Tieto súbory budú vyhľadávané v nasledovných podadresároch hlavného

adresára aplikácie:

expeditions/ – pre informácie o expedíciách

inventory/ – pre informácie o položkách inventáru

mountaineers/ – pre informácie o horolezcoch

weather/ – pre parametre počasia

Modul si bude všetky údaje, ktoré načíta zo súborov ukladať do svojich vnútorných štruktúr

v pamäti, aby už nebolo potrebné znova ich načítavať. Preto pri viacnásobných požiadavkách

o hodnotu atribútu sa tento načíta iba pri prvej požiadavke, pri ostatných sa priamo vráti uložená

informácia.

78

Page 90: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.6.2 Štruktúra načítavaných súborovŠtruktúra súborov s údajmi je presne definovaná. Na zabezpečenie kontroly štruktúry používa

aplikácia validáciu XML dokumentu pomocou DTD.

Nasledujú DTD popisy pre jednotlivé typy súborov.

Inventár<!ELEMENT item (name,purpose,image,description,type,weight,limits,impacts,enables)>

<!ATTLIST item passive (true|false) #REQUIRED><!ATTLIST item required (true|false) #REQUIRED>

<!ELEMENT name (#PCDATA)><!ELEMENT purpose (#PCDATA)><!ELEMENT image (#PCDATA)><!ELEMENT description (#PCDATA)><!ELEMENT type (#PCDATA)><!ELEMENT weight (#PCDATA)><!ELEMENT limits (use_count,durability,usage)><!ELEMENT impacts (health_factor,weather_impact,terrain_difficulty)><!ELEMENT enables (enable_breathe,enable_sleep,enable_cook,enable_move)><!ELEMENT weather_impact (precip_factor,wind_factor,fog_factor,temp_factor)><!ELEMENT terrain_difficulty (snow_factor,rock_factor,ice_factor,ground_factor,mud_factor)><!ELEMENT use_count (#PCDATA)><!ELEMENT durability (#PCDATA)><!ELEMENT usage (#PCDATA)><!ELEMENT health_factor (#PCDATA)><!ELEMENT precip_factor (#PCDATA)><!ELEMENT wind_factor (#PCDATA)><!ELEMENT fog_factor (#PCDATA)><!ELEMENT temp_factor (#PCDATA)><!ELEMENT snow_factor (#PCDATA)><!ELEMENT rock_factor (#PCDATA)><!ELEMENT ice_factor (#PCDATA)><!ELEMENT ground_factor (#PCDATA)><!ELEMENT mud_factor (#PCDATA)><!ELEMENT enable_breathe (#PCDATA)><!ELEMENT enable_sleep (#PCDATA)><!ELEMENT enable_cook (#PCDATA)><!ELEMENT enable_move (#PCDATA)>

Počasie<!ELEMENT weather (name,description,occurence,parameters)><!ELEMENT name (#PCDATA)><!ELEMENT description (#PCDATA)><!ELEMENT occurence (occur_prob,occur_time_min,occur_time_max)><!ELEMENT occur_prob (#PCDATA)><!ELEMENT occur_time_min (#PCDATA)><!ELEMENT occur_time_max (#PCDATA)><!ELEMENT parameters (wind_speed,fog_density,precip_amount,zero_temp_height)><!ELEMENT wind_speed (#PCDATA)><!ELEMENT fog_density (#PCDATA)><!ELEMENT precip_amount (#PCDATA)><!ELEMENT zero_temp_height (#PCDATA)>Horolezci

79

Page 91: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

<!ELEMENT mountaineer (name,biography,photo,skills)><!ELEMENT name (first_name,middle_name,last_name)><!ELEMENT biography (#PCDATA)><!ELEMENT photo (#PCDATA)><!ELEMENT skills (endurance,technique,performance)><!ELEMENT first_name (#PCDATA)><!ELEMENT middle_name (#PCDATA)><!ELEMENT last_name (#PCDATA)><!ELEMENT endurance (#PCDATA)><!ELEMENT technique (#PCDATA)><!ELEMENT performance (#PCDATA)>

Expedície<!ELEMENT expedition (name,peak,information,difficulty,model_data)><!ELEMENT name (#PCDATA)><!ELEMENT peak (peak_name,height,location,image)><!ELEMENT information (#PCDATA)><!ELEMENT difficulty (#PCDATA)><!ELEMENT model_data (#PCDATA)><!ELEMENT peak_name (#PCDATA)><!ELEMENT height (#PCDATA)><!ELEMENT location (#PCDATA)><!ELEMENT image (#PCDATA)>

80

Page 92: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.6.3 Diagram tried IO moduluNa nasledovnom obrázku je znázornený diagram tried IO modulu, ktorý zabezpečuje: načítanie a

uchovávanie informácií o možných typoch počasia, horolezcoch, expedíciách a pomôckach patriacich

do inventáru. Tieto informácie poskytuje ostatným častiam aplikácie.

obr. 25 Diagram tried IO modulu

81

Page 93: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

CSingleton

Trieda implementujúca návrhový vzor singleton. Triedy, od ktorých sa vyžaduje, aby boli singletonmi

musia dediť z tejto triedy.

DOMBuilder

Trieda poskytovaná balíkom Xerces–C++ Parser. Poskytuje komplexnú funkcionalitu pre vytváranie

parserov a serializátorov údajov do XML súborov.

DOMErrorHandler

Trieda poskytovaná balíkom Xerces–C++ Parser. Je to abstraktná trieda. Pre konkrétnu implementáciu

je potrebné implementovať metódu handleError().

CHorexErrorHandler

Jednoduchá implementácia spracovania chýb pri parsovaní XML pre našu aplikáciu. Pri chybe sa

zaznamená do logu presné miesto výskytu chyby v súbore.

Metódy

handleError() – metóda, ktorá zabezpečuje reakciu na výskyt chyby.

CXmlFileData

Trieda reprezentujúca obsah jedného XML súboru. Obsahuje všetky hodnoty listových elementov ako

aj atribútov v tomto súbore.

Atribúty

BOOL_ATT_MAP bools – mapa hodnôt atribútov a elementov s hodnotou typu bool.

INT_ATT_MAP integers – mapa hodnôt atribútov a elementov s hodnotou typu int.

FLOAT_ATT_MAP floats – mapa hodnôt atribútov a elementov s hodnotou typu float.

STRING_ATT_MAP strings – mapa hodnôt atribútov a elementov s hodnotou typu string.

Metódy

TYP GetTYPAttValue(const string& att_name) – metódy, ktoré vrátia hodnotu

atribútu daného mena. Hodnoty sú zadelené do štyroch skupín

podľa ich typu: int, float a bool.

void GetStringAttValue(const string& att_name, string& value_out) –

metóda, ktorá v objekte value_out vráti hodnotu typu

string atribútu daného mena.

CXmlFileData(const string& file_path) – konštruktor triedy. V jeho tele sa používa

Xerces–C++ Parser. Uskutočňuje sa tu celá operácia

načítavania a ukladania atribútov/elementov.

82

Page 94: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

bool IsInteger(const string& str, int* int_out) – metóda, ktorá zistí, či

zadaný reťazec obsahuje hodnotu, ktorá sa môže konvertovať

na typ int. V premennej int_out bude v prípade úspechu

výsledok.

bool IsFloat(const string& str, float* float_out) – metóda, ktorá zistí, či

zadaný reťazec obsahuje hodnotu, ktorá sa môže konvertovať

na typ float. V premennej float_out bude v prípade úspechu

výsledok.

void Trim(string& str, const string& delim) – metóda, ktorá oreže počiatočné

a koncové znaky reťazca str, ak sú zhodné s ľubovoľným zo

znakov reťazca delim.

CXmlDataProvider

Hlavná trieda IO modulu. Je implementovaná ako singleton. Poskytuje metódy pre získanie zoznamu

XML súborov vo zvolenom adresári a parametrov, ktoré sú načítavané z nájdených súborov. Načítané

parametre sú uchovávané v pamäti, aby nebolo potrebné ich znovu načítavať zo súborov.

Atribúty

FILE_ATT_MAP attributes – mapa so všetkými načítanými parametrami (radené podľa

súborov).

Metódy

TYP GetTYPAttValue(const string& file_name, const string& att_name)

– metódy, ktoré vrátia hodnotu atribútu daného mena, ktorý sa

nachádza v zadanom súbore. Hodnoty sú zadelené do štyroch

skupín podľa ich typu: int, float a bool.

void GetStringAttValue(const string& file_name, const string&

att_name, string& value_out) – metóda, ktorá

v objekte value_out vráti hodnotu typu string atribútu

daného mena, ktorý sa nachádza v zadanom súbore.

void ReadFileNames(const string& path, vector<string>& value_out) –

metóda ktorá vyhľadá všetky XML súbory v zadanom adresári.

Slúži pri inicializačných fázach, kedy si aplikácia zisťuje aké

konfiguračné súbory má k dispozícii.

83

Page 95: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.7 Návrh modelu horolezca

5.7.1 Účel podsystému HorolezecHorolezec v sebe zapuzdruje všetky metódy a premenné spojené s činnosťou horolezca.

Horolezec sa manažuje sám a poskytuje rozhranie pre komunikáciu s horolezcom. Zahŕňa tri základné

dátové modely:

Energiu horolezca

Zdravie horolezca

Vyčerpanie horolezca

Hlavnou úlohou modelu horolezca je uchovávať hodnoty zdravia, energie, vyčerpania

a prerátavať spotrebu energie pre každý úsek cesty a poskytovať rozhranie triede CGroup.

Pri inicializácií sa vytvoria inštancie tried CEnergy, CHealth, CExhaustion. Tým sa vytvorí

horolezec s pnlým zdravím, energiou a žiadnou vyčerpanosťou. Horolezec rieši aj závislosť energie od

zdravia a vyčerpania od výšky. Taktiež sa stará o závislosti medzi spotrebou energie a počasím.

Horolezec je definovaný svojim

Menom

Koeficientom závislosti energie od zdravia

Koeficientom závislosti energie od inventáru

Koeficientom závislosti energie od počasia

Triedami Zdravia, Vyčerpania, Energie

Zmena zdravia horolezca závisí od vonkajšieho prostredia ako aj od pravdepodobnostného

modelu ochorenia. Úbytok energie horolezca je závislí len od vonkajších faktorov prostredia a času.

Vyčerpanie horolezca je závisle tiež len od vonkajších faktorov, ale najviac od výšky v ktorej sa

horolezec nachádza.

84

Page 96: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.7.2 Diagram tried Model horolezcaNa nasledovnom obrázku je znázornený diagram tried modelu horolezca, ktorý zabezpečuje:

Uchovávanie aktuálneho stavu horolezca, zmenu stavu horolezca,

obr. 26 Diagram tried Model Horolezca

85

Page 97: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

CMountaineer

Trieda implementujúca rozhranie medzi Energiou, Zdravím, Vyčerpaním a inými triedami.

Zabezpečuje mechanizmus komunikáciou medzi týmito triedami. Táto trieda bude uchovávať aj

samotné inštancie tried CHealth, CEnergy, CExhastion.

Atribúty

string name – Bude uchovávať meno horolezca

float weather_impact - Bude vyjadrovať vplyv počasia na horolezca

float inventory_impact - Bude vyjadrovať Vplyv inventaru na horolezca;

float health_impact - Bude vyjadrovať vplyv zdravia na energiu

CHealth *Health – Inštancia triedy CHealth

CEnergy *Energy– Inštancia triedy CEnergy

CExhaustion *Exhaustion– Inštancia triedy CExhaustion

Metódy

void ChangeMountaineer() – Trieda zabezpečujúca menenie stavu horolezca, ako premenné

bude mať vlastnosti vonkajšieho prostredia

float GetHealthCoef() – Bude vraciať koeficient zdravia

float GetInventoryCoef() – Bude vraciať koeficient inventáru

float GetEnergy() – Bude vraciať aktuálnu energiu horolezca

void AddFood() – Bude pridávať jedlo horolezcovi, pridá energiu jedla triede CEnergy

void AddSleep()- Bude pridávať spánok a oddych horolezcovi triede CExhaustion

void AddHealth() –Pridá zdravie horolezca

float GetHealth() – Bude vraciať zdravie horolezca

float GetExhaustion() – Bude vraciať vyčerpanie horolezca

float GetEnergyDecresePerHour() - Vrati ubytok energie za hodinu horolezca, dôležité pre

zisťovanie, či máme dostatok energie na prejdenie určitého úseku

float GetTimeCoef() - Koeficient ovplyvnenia casu úlohy

86

Page 98: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

CHealth

Trieda, v ktorej sa uchováva hodnota zdravia Horolezca a ktorá zabezpečuje aj úbytok zdravia

na základe pravdepodobnostného modelu. Taktiež zabezpečuje prírastok zdravia z externých zdrojov.

obr. 27 Zdravie horolezca

Atribúty

float health - Aktuálna hodnota zdravia, hodnota je 0 - 100

float health_decrease_probability - Pravdepodobnost ochorenia 0 - 0.5

float health_decrease – Množstevny úbytok zdravia ak horolezec ochorie

Metódy

CHealth() – Konštruktor triedy, bude nastavovať atribúty

void SetDecreaseProbability() – Bude nastavovať pravdepodobnost ochorenia

float GetHealth() – Bude vraciať aktuálnu hodnotu zdravia

void SetHealthDecrease() – Bude nastavovať ubytok zdravia ak ochorie

void AddHealth() – Bude pridávať zdravie horolezcovi, napríklad pri použití lekárničky

float ChangeHealth()- Zmena zdravia za casovu jednotku

87

Page 99: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

CEnergy

Trieda, v ktorej sa uchováva hodnota energie horolezca a ktorá zabezpečuje aj úbytok energie

na základe vonkajších vplyvov, ktorý však nastavuje používateľ triedy. Taktiež zabezpečuje prírastok

energie, napríklad po požití jedla alebo iných energetických zdrojov

Atribúty

float energy - Aktuálna hodnota energie, hodnota je 0 – 1000

Metódy

CEnergy() – Konštruktor triedy, bude nastavovať atribút energie

float GetEnergy(); – Bude vracať aktuálnu hodnotu energie

string GetEnergyStatus(); – Bude vracať slovný popis aktuálnej energie

void AddHealth() – Bude pridávať zdravie horolezcovi, napríklad pri použití lekárničky

float ChangeEnergy()- Zmena aktuálnej energie

CExhaustion

Trieda, v ktorej sa uchováva hodnota vyčerpanosti horolezca a ktorá zabezpečuje aj úbytok

vyčerpanosti na základe času od poslednej aktualizácie vyčerpanosti. Taktiež zabezpečuje prírastok

hodnoty vyčerpanosti z externých zdrojov. Nulová hodnota znamená úplnú vyčerpanosť.

Atribúty

float Exhaustion - Aktuálna hodnota vyčerpanosti, hodnota je 0 – 1000

float Exhaustion_decrease - Hodnota poklesu hodnoty vyčerpanosti za hodinu

Metódy

CExhaustion() () – Konštruktor triedy, bude nastavovať atribúty vyčerpanosti

float GetExhaustion(); – Bude vracať aktuálnu hodnotu vyčerpanosti

void ChangeExhaustionDecrease(float change); – Bude meniť úbytok vyčerpania za

časovú jednotku

void AddSleep() – Bude pridávať hodnotu vyčerpanosti horolezcovi, napríklad pri použití

oddychovaní

void ChangeExhaustion()- Zmena aktuálnej hodnoty vyčerpanosti na základe času, ktorý bude

parameter metódy

88

Page 100: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.8 Návrh aktivít a úloh horolezca

5.8.1 Návrh aktivít horolezca v kroku simulácieStavba fixných lán – FixedRopesTask

Vstup: súradnice koncového bodu.

Výstup: na danom úseku budú ukotvené fixné laná, horolezec je v koncovom bode.

Vstupný stav: horolezec má dostatok fixných lán,

Výstupný stav: úsek na ktorom sú ukotvené fixné laná má nastavený atribút, odpočítanie položiek

z inventára

laná sa naťahujú len medzi viditeľnými bodmi,

súčasne sa vykonáva presun do koncového bodu,

zmena atribútu nastavenia fixných lán len ak je činnosť ukončená

Stavba tábora – BuildCampTask

Vstup: súradnice určeného miesta

Výstup: tábor je postavený

Vstupný stav: horolezec sa nachádza na určenom mieste

Výstupný stav: miesto na ktorom je tábor postavený má nastavený atribút.

Tábor je možné postaviť len ak

horolezci majú dostatok energie

horolezci majú potrebné vybavenie v inventári

pole na ktorom sa má tábor postaviť má atribút možného postavenia tábora

Pracujúcim horolezcom ubudne časť energie (rovnomerne každému v skupine, predpokladáme, že si

navzájom pomáhajú. Odoberú sa im vybrané veci z inventára.

Po postavení tábora sa miesto označí.

Oddych v tábore – RestTask

Vstup: činnosť ktorú má vykonávať čas jej trvania.

Výstup: –

Vstupný stav: horolezec sa nachádza na mieste kde je postavený tábor

Výstupný stav: doplnená energia horolezcom

V tábore možno:

jesť – variť jedlo z inventára, piť tekutiny

spať – použitie spacieho vaku

liečiť nemoci – položky inventára označené zdravie

89

Page 101: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Čakanie v teréne – WaitTask

Vstup: čas čakania

Výstup: –

Vstupný stav: horolezec sa nachádza na mieste kde je postavený tábor

Výstupný stav: prepočítaná energia horolezcov

Prepočítanie energie pre nasledujúce aktivity:

jedenie

možný spánok spanie, ale nie hlboký– energia sa pridáva menej

Presun – MoveTask

Vstup: cieľové súradnice

Výstup: skupina sa nachádza na cieľových súradnichach

Vstupný stav: parameter Zdravie sa ne/umožní prechod na iné miesto

Výstupný stav: –

1. Zohľadnenie terénu po ktorom sa lezie

Výber techniky,

Výpočet náročnosti podľa terénu.

Vplyv počasia

Zmena atribútov horolezca podľa výpočtu energie

2. Podmienka pri zranení

ak počet nesených > počet nesúcich potom neúspech expedície.

Pred vykonaním úloh sa prepočíta energia, zdravie, a inventár horolezcov. Na základe toho sa zistí či

horolezci môžu úlohu splniť. Pri nedostatku energie horolezca sa mu pokúsi doplniť jedlom

z inventára.

90

Page 102: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.8.2 Návrh úloh a ich ohraničeníPopis navrhnutých úloh

BuildCamp – stavba tábora

FixedRopesTask – kladenie fixných lán

MoveTask – presun po usporiadanom zozname spojníc

RestTask – na bode, kde je postavený tábor

WaitTask – na spojnici alebo v bode

Ohraničenia úloh

Ohraničenia sa týkajú vykonávania úloh horolezcami vzhľadom na ich polohu a to buď v bode alebo

na spojnici. Uvádzame zoznam úloh ktoré sa môžu vykonávať kde:

BuildCamp – na bode

FixedRopesTask – na spojnici

MoveTask – na spojnici

RestTask – na bode, kde je postavený tábor

WaitTask – na spojnici alebo v bode

Preplánovanie udalosti ukončenia úlohy

Preplánovanie znamená zrušenie pôvodnej trasy a návrat do najbližšieho viditeľného bodu. Zvislé

hrubé čiary predstavujú neočakávané udalosti kedy dochádza k preplánovaniu. Z pôvodného zoznamu

plánovanej trasy sa zrušia body za hrubou čiarou a naplánuje sa prechod na najbližší predchádzajúci

viditeľný bod. Error: Reference source not found znázorňuje dve neočakávané situácie s1, s2 a návrat

do viditeľného bodu p2.

Bod p1 – začiatočný bod úlohy presunu

Bod p6 –koncový bod úlohy presunu

Body p2,p4 – viditeľné kontrolné body

Body p3,p5 – neviditeľné body, nachádzajú sa na rozhraní spojníc s rôznymi povrchmi

Spojnice j1 – j5 – plánovaná trasa

91

Page 103: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

obr. 28 Preplánovanie udalosti

92

Page 104: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.8.3 Diagram tried modulu TaskNasledujúci obrázok znázorňuje diagram významných tried z pohľadu triedy úloh CTask. Od

abstraktnej triedy CTask sú odvodené dva hlavné typy úloh. Prvý tvoria úlohy presunu

CMovementTask a druhý úlohy bez presunu horolezcov CDurationTask.

obr. 29 Diagram tried modulu Task a Group

93

Page 105: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

CTask

Predstavuje abstraktnú triedu modulu úloh. Obsahuje čisto virtuálne metódy Execute,

Recalculate, EstimateDTime, ktoré treba prekonať v odvodených triedach.

Atribúty

Public:

enum TASK_TYPE { BUILD_CAMP_TASK, WAIT_TASK, MOVE_TASK, REST_TASK,

FIXED_ROPES_TASK }; – každá úloha ma svoj identifikátor, možnosti vyjadruje pomenovaný

typ pre úlohy.

static const float MIN_HEIGHT; – dolné ohraničenie pre výpočet odhadu času podľa pozície.

static const float MAX_HEIGHT; – horné ohraničenie pre výpočet odhadu času podľa pozície.

static const float TASK_HEIGHT_MIN[]; - dolné ohraničenie času podľa typu úlohy.static const float TASK_HEIGHT_MAX[]; - horné ohraničenie času podľa typu úloh.

Protected:

CGroup* group; – smerník na skupinu horolezcov ktorí vykonávajú úlohu.

TASK_TYPE task_type; – typ úlohy špecifikovaný vymenovaným typom

Metódy

Public:

bool Reschedule(float actual_time, int prior,const string& u_inf); )

– preplánovanie úlohy pri neočakávanej situácii. Treba

prekonať v odvodených triedach v konkrétnej úlohy. Používateľ

rozhoduje či sa má v úlohe ďalej pokračovať alebo sa má

naplánovať návrat do predchádzajúceho bodu. Popis situácie

vyjadruje reťazec u_inf . Priorita úlohy zostáva rovnaká.

virtual void Recalculate(float dtime) = 0; – prepočítanie podľa typu úlohy.

Napríklad pri kladení fixných lán sa označia úseky, na ktorých

boli položené laná do aktuálneho času. Okrem toho sa za čas

dtime prepočíta v každej úlohe energia, zdravie a inventár

horolezcov.

virtual void Execute() = 0; – metóda určuje čo sa má stať po vykonaní úlohy -

v ideálnom prípade. (napríklad v prípade úlohy položenia

fixných lán budú na úseku položené laná).

virtual float EstimateDTime() = 0; – odhad ideálneho čas trvania úlohy pri jej

plánovaní, prepočítanie podľa typu úlohy, vybraných

horolezcov.

TASK_TYPE GetTaskType(); – vráti typ úlohy.

94

Page 106: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Private:

float computeTaskTimeForHeight(int task_type, float height); – odhad

času typu úlohy podľa nadmorskej výšky. Používa ju metóda

EstimateDTime.

CGroup

Definuje skupinu horolezcami ktorí vykonávajú špecifikovanú úlohu. Poskytuje metódu pre

naplánovanie úlohy a presun horolezcov na novú pozíciu.

Atribúty

Private:

string name; – názov skupiny ako identifikátor

CControlPoint* current_position – súčasná (posledná) pozícia skupiny

MOUNTAINEER_LISTmountaineer_list; – zoznam horolezcov v skupine

Protected:

CTask* group_task; – úloha ktorú horolezci vykonávajú, alebo NULL

Public:

static const int TASK_EVENT_PRIORITY = 20; – konštanta priority vykonania úlohy

pre plánovač udalostí.

Metódy

Public:

string GetName() – vráti meno skupiny

void SetName(string name) – nastaví meno skupiny

CControlPoint* GetPosition() – vráti pozíciu skupiny horolezcov (posledný bod na

ktorom sa nachádzali)

string GetName() – vráti meno skupiny

bool HasTask() – zisťuje, či má skupina definovanú úlohu

CTask* GetTask() - vráti meno aktuálnu úlohu

void SetTask(CTask *task) – nastavenie úlohy

void AddMountaineer(CMountaineer* mountaineer) – pridanie horolezca do skupiny

void RemoveMountaineer(string name) – odobratie horolezca podľa mena zo skupiny

void Init() – inicializuje skupinu pridaním horolezcov na aktuálnu pozíciu a po odhade času

dokončenia úlohy naplánuje nastavenú úlohu.

void Relocate(CControlPoint *destination) – presunie horolezcov z aktuálnej

pozície na novú pozíciu určenú parametrom

95

Page 107: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

CGroupManager

Zabezpečuje správu skupín, poskytuje metódy pre vytvorenie, získanie zoznamu skupín a stará sa

o zrušenie skupiny po dokončení úlohy uvoľnením alokovanej pamäti.

Atribúty

Private:

GROUP_LIST group_list; – zoznam skupín

Metódy

Public:

void Recalculate(float dtime) - prepočítanie energie, zdravia a inventáru horolezcov

vo všetkých skupinách.

void InsertGroup(CGroup *group) – pridanie vytvorenej skupiny horolezcov do

zoznamu všetkých skupín v simulácii

GROUP_LIST GetGroupList() – vráti ukazovateľ na zoznam skupín simulácii.

CEventTaskFinish

Udalosť v plánovači ktorá vykoná definuje. čo sa má stať po ukončení úlohy, volá metódy pre

prepočítanie hodnôt po ukončení úlohy.

Atribúty

Private:

GROUP_LIST group_list; – zoznam skupín

Metódy

Public:

CEventTaskFinish(void* owner); - konštruktor s parametrom úlohy, ktorá je vlastníkom

naplánovanej udalosti.

void Execute(); - prepočítanie hodnôt po ukončení úlohy a následné zrušenie skupiny

horolezcov, ktorá ju vykonávala

96

Page 108: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.9 Návrh reprezentácie terénu a trasy expedície v simulácii

5.9.1 Reprezentácia trasy expedícieHorolezci budú mať obmedzené možnosti pohybu po hore, vymedzené preddefinovanými trasami

expedície. Tieto možné trasy definuje tvorca modelu pri vytváraní modelu hory (prípad použitia

UC09). Trasy (postupnosti lokácií) sú definované kontrolnými bodmi (UC12) a spojnicami medzi

týmito bodmi (UC13). Na hore sú definované dva špeciálne body:

počiatočný bod expedície (UC10), v ktorom všetci horolezci začínajú expedíciu. Na tomto

mieste sa nachádza aj základný tábor;

cieľový bod expedície (UC11), kde sa končí výstup horolezcov a podľa nastavenia cieľov

expedície tu môže začínať následný zostup horolezcov do základného tábora.

Typickú trasu expedície znázorňuje obrázok obr. 30.

obr. 30 Grafické znázornenie možných trás expedície

97

Page 109: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.9.1.1 Kontrolné bodoyKontrolný bod je miesto na hore, ktoré je možné zvoliť ako cieľ pohybu. Kontrolný bod nemá dĺžku,

a teda prechod kontrolným bodom netrvá žiadny čas. Pozícia kontrolného bodu je určená súradnicami

v 3-rozmernom pravouhlom súradnicovom systéme, relatívne k začiatku mapy hory (okrem súradnice

reprezentujúcej výšku – tá je určená absolútne, podľa modelovanej skutočnosti).

Niektoré kontrolné body majú za úlohu iba rozdeliť spojnicu na dve s cieľom zmeniť terén

spojnice. Takéto „nevýznamné“ body, resp. body, ktoré nemajú byť možnými cieľmi pohybu, môže

tvorca modelu hory označiť ako „neviditeľné“ pre používateľa.

Vybrané kontrolné body môžu umožňovať stavbu tábora (miesto slúžiace na regeneráciu

a odpočinok horolezcov). Na iných miesta nie je stavba táboru umožnená.

5.9.1.2 Spojníce bodovSpojnica spája práve dva kontrolné body. Tieto dva body zároveň určujú pozíciu spojnice. Má

definovanú dĺžku a uhol sklonu, teda parametre významne vplývajúce na časové trvanie a energetickú

náročnosti prechodu cez túto lokáciu.

Pre zrýchlenie pohybu terénom je možné na spojnicu klásť fixné laná.

5.9.2 Reprezentácia terénuNáročnosť a rýchlosť pohybu horolezcov je do značnej miery ovplyvnená terénom, po ktorom

prechádzajú. Navrhli sme 5 základných typov terénu lokácie odvíjajúcich sa od typu podkladu terénu.

Horolezci môžu vlastniť a používať vybavenie, ktoré im uľahčuje (resp. umožňuje) pohyb v danom

type terénu (napr. obuv „snežky“ uľahčuje prechod cez zasnežený terén).

Keďže však členinosť terénu sa môže značne líšiť aj pri dvoch zhodných základných typoch

terénu, rozhodli sme sa, že tvorca modelu hory bude explicitne uvádzať aj náročnosť konkrétnej

lokácie číslom v rozsahu 0,01 (najmenšia náročnosť) až 1,0 (najväčšia náročnosť). Táto náročnosť sa

potom použije napr. pri výpočte časového trvania a energetickej náročnosti prechodu cez lokáciu

s daným terénom.

Nasledujúca tabuľka uvádza popis základných typov terénu, ich názvy používané v simulácii

a typické rozsahy náročnosti týchto terénov.

Názov terénu Náročnosť terénu PopisSnow 0,4 – 0,9 Zasnežený terén. Náročnosť stúpa priamo úmerne s hĺbkou

snehu.Rock 0,3 – 0,7 Skalnatý terén. Náročnosť je ovplyvnená sklonom

a členitosťou terénu.Ice 0,5 – 1,0 Zľadovatelý terén. Náročnosť je závislá na sklone terénu.Ground 0,01 – 0,3 Bežná suchá pôda vyznačujúca sa nízkou členitosťou.

Náročnosť stúpa priamo úmerne so sklonom terénu.Mud 0,2 – 0,5 Blato. Vzniká najmä počas dažďa a pri topení snehu a ľadu.

Náročnosť stúpa priamo úmerne so sklonom terénu.

Tabuľka 4 Reprezentácia terénu

98

Page 110: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.9.3 Diagram tried terénu a trasy expedícieNa nasledovnom obrázku je znázornený diagram tried terénu a trasy expedície, ktorý zabezpečuje:

načítanie a uchovávanie informácií o lokáciách definovaných na hore, uchovávanie pozície horolezcov

a táborov, definovanie počiatočného a cieľového bodu expedície.

obr. 31 Diagram tried terénu a trasy expedície

99

Page 111: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

CSimulation

Trieda implementujúca celkový mechanizmus simulácie a poskytujúca sprístupnenie jednotlivých

podsystémov systému.

V tomto diagrame je dôležitý jej účel v súvislosti so sprístupňovaním objektu hory (inštancia

triedy CMountain) a odkazov na počiatočný a cieľový bod expedície.

Bližšie je popísaná v kapitole 5.1.1.

Atribúty

Protected:

CMountain* mountain – smerník na objekt hory.

CControlPoint* start_point – smerník na počiatočný bod expedície.

CControlPoint* end_point – smerník na cieľový bod expedície.

Metódy

Public:

CMountain* GetMountain() – poskytnutie smerníka na objekt hory.

CControlPoint* GetStartPoint() – poskytnutie smerníka na počiatočný bod expedície.

CControlPoint* GetEndPoint() – poskytnutie smerníka na cieľový bod expedície.

bool IsStartPoint(CControlPoint* test_point) – testuje, či je daný bod počiatočným

bodom expedície.

bool IsStartPoint(CControlPoint* test_point) – testuje, či je daný bod cieľovým bodom

expedície.

SetStartPoint(CControlPoint* point) – nastaví počiatočný bod expedície.

SetEndPoint(CControlPoint* point) – nastaví cieľový bod expedície.

CShedule

Trieda implementujúca rozvrh naplánovaných udalostí. Vyvoláva vykonanie udalostí, ktoré sú uložené

v prioritnom rade podľa času výskytu.

Bližšie je popísaná v kapitole 5.4.2.

CEvent

Trieda implementuje akúkoľvek naplánovanú udalosť. Z pohľadu plánovania zmeny počasia je

zaujímavá iba jej čisto virtuálna metóda Execute().

Bližšie je popísaná v kapitole 5.4.2.

Metódy

Public:

Execute() – čisto virtuálna metóda pre vykonanie naplánovanej udalosti.

100

Page 112: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

CAvalanche

Trieda zdedená z CEvent. Implementuje udalosť pádu lavíny, ktorá sa vykoná vyvolaním virtuálnej

metódy Execute(). Pád lavíny sa vzťahuje ku konkrétnej lokácii.

Atribúty

nemá

Metódy

Public:

Execute() – virtuálna metóda pre vyvolanie pádu lavíny. Pád lavíny spôsobí smrť horolezcov

a zničenie tábora na mieste dopadu.

CTask

Trieda CTask predstavuje abstraktnú triedu modulu úloh.

Bližšie je popísaná v kapitole 5.8.3.

CEntity

Trieda CEntity predstavuje abstraktnú triedu pre entity, ktorými sú tábor a horolezec.

CCamp

Trieda entity pre horolezecký tábor.

CMountaineer

Trieda entity pre horolezca.

Bližšie je popísaná v kapitole 5.7.2.

CMountain

Trieda CMountain predstavuje model hory. Jej hlavnou úlohou je načítavanie a uchovávanie lokácií

a plánovanie lavín.

Atribúty

Private:

string name – názov hory.

string mountain_config_file_path – cesta k súboru nastavení "mountain.cfg".

LOCATIONS_VECTOR locations – vektor všetkých lokácií na hore.

Metódy

Public:

Init(const string& locations_file_path) – inicializácia hory. Prebehne načítanie lokácií

zo zadaného XML súboru, vytvorenie základného tábora

101

Page 113: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

a umiestnenie všetkých horolezcov na počiatočný bod

expedície.

LOCATIONS_VECTOR_ITERATOR GetLocationsIterator() – vráti iterátor nastavený na

začiatok vektora lokácií.

LOCATIONS_VECTOR_CONST_ITERATOR GetLocationsIteratorEnd() – vráti konštatný

iterátor s  hodnotou konca vektora lokácií.

ScheduleAvalanches() – naplánuje lavíny na začiatku simulácie.

CLocationSerializer

Trieda CLocationSerializer slúži na serializáciu a deserializáciu údajov o lokáciách do/z XML súboru.

Metódy

Public:static Unserialize(const string& file_path, vector<CMountainLocation*>&

locations_out) – parsuje XML súbor určený prvým

parametrom a vráti vektor lokácií ako druhý parameter.

CMountainLocation

Abstraktná trieda, ktorá reprezentuje miesto na hore.

Atribúty

Private:

string id – identifikátor používaný v XML súbore.

MOUNTAINEER_LIST mountaineers – zoznam horolezcov na danej lokácii.

auto_ptr<CTerrain> terrain – smerník na terén.

Metódy

Public:

MOUNTAINEER_LIST_ITERATOR GetMountaineersIterator() – vráti iterátor nastavený na

začiatok zoznamu horolezcov.

MOUNTAINEER_LIST_CONST_ITERATOR GetMountaineersIteratorEnd() – vráti konštatný

iterátor s  hodnotou konca zoznamu horolezcov.

AddMountaineer(CMountaineer* mountaineer) – pridá horolezca na lokáciu.

RemoveMountaineer(CMountaineer* mountaineer) – odoberie horolezca z lokácie.

AfterAvalanche() – metóda volaná po spadnutí lavíny.

CControlPoint

Trieda CControlPoint je odvodená od triedy CMountainLocation a reprezentuje kontrolný bod trasy.

102

Page 114: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Atribúty

Private:

bool visible – či je kontrolný bod viditeľný pre používateľa.

bool camp_allowed – či terénne podmienky dovoľujú postaviť tu tábor.

bool camp_established – či je tu postavený tábor.

auto_ptr<CCamp> camp – smerník na tábor postavený na tejto lokácii, ak je postavený.

JOIN_VECTOR joins – vektor spojníc, ktoré tu začínajú (resp. končia).

Metódy

Public:

CCamp* EstablishCamp(bool base_camp) – vytvorí inštanciu nového tábora.

AfterAvalanche() – metóda volaná po spadnutí lavíny. Prekonaná metóda umožňuje zároveň aj

zrušiť tábor, keďže rodičovská trieda nemá na tábor odkaz.

CJoin

Trieda CJoin je odvodená od triedy CMountainLocation a reprezentuje spojnicu trasy.

Atribúty

Private:

float length – dĺžka spojnice v metroch.

float slope_angle – sklon spojnice v stupňoch (0 až 89,9).

bool has_fixed_ropes – či sú na spojnici fixné laná.

CControlPoint* points[2] – kontrolné body, ktoré táto spojnica spája.

Metódy

Public:

CControlPoint* GetCommonPoint(CJoin* other_join) – vráti spoločný bod dvoch spojníc

(ak taký je).

CTerrain

Trieda CTerrain reprezentuje terén konkrétnej lokácie na hore.

Atribúty

Private:

string name – názov terénu.

float difficulty – náročnosť terénu (0,01 az 1,0).

CPoint3D

Trieda CPoint3D vyjadruje 3-rozmernú pozíciu bodu na hore.

103

Page 115: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Atribúty

Private:

float x – súradnica x.

float y – súradnica y.

float z – súradnica z.

104

Page 116: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.9.4 Štruktúra súborov s definíciami lokáciíSúbor s definíciami lokácií je uložený vo formáte XML. Na zabezpečenie kontroly štruktúry používa aplikácia validáciu XML dokumentu pomocou DTD.

Nasleduje DTD popis pre súbor s lokáciami („mountainlocations.dtd“).

<!ELEMENT MountainLocations (ControlPoint|Join)*><!ATTLIST MountainLocations start IDREF #REQUIRED><!ATTLIST MountainLocations end IDREF #REQUIRED>

<!ELEMENT ControlPoint (Position,Terrain)><!ATTLIST ControlPoint id ID #REQUIRED><!ATTLIST ControlPoint visible (true|false) "true"><!ATTLIST ControlPoint camp_allowed (true|false) #REQUIRED><!ATTLIST ControlPoint camp_established (true|false) "false">

<!ELEMENT Join (Terrain)><!ATTLIST Join id ID #REQUIRED><!ATTLIST Join length CDATA #REQUIRED><!ATTLIST Join slope_angle CDATA #REQUIRED><!ATTLIST Join has_fixed_ropes (true|false) "false"><!ATTLIST Join starts_at IDREF #REQUIRED><!ATTLIST Join ends_at IDREF #REQUIRED>

<!ELEMENT Position EMPTY><!ATTLIST Position x CDATA #REQUIRED><!ATTLIST Position y CDATA #REQUIRED><!ATTLIST Position z CDATA #REQUIRED>

<!ELEMENT Terrain EMPTY><!ATTLIST Terrain name CDATA #REQUIRED><!ATTLIST Terrain difficulty CDATA #REQUIRED>

Nasleduje príklad zápisu XML súboru s definíciou lokácií.

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE MountainLocations SYSTEM "mountainlocations.dtd"><MountainLocations start="ControlPoint:1" end="ControlPoint:4"> <ControlPoint id="ControlPoint:1" visible="true" camp_allowed="true" camp_established="false"> <Position x="15.4" y="13.2" z="36.7" /> <Terrain name="ground" difficulty="0.1" /> </ControlPoint> <ControlPoint id="ControlPoint:2" visible="true" camp_allowed="false" camp_established="false"> <Position x="15.7" y="13.8" z="42.6" /> <Terrain name="rock" difficulty="0.4" /> </ControlPoint> <ControlPoint id="ControlPoint:3" visible="true" camp_allowed="false" camp_established="false"> <Position x="15.1" y="14.5" z="45.9" /> <Terrain name="rock" difficulty="0.6" /> </ControlPoint> <ControlPoint id="ControlPoint:4" visible="true" camp_allowed="true" camp_established="false"> <Position x="16.4" y="14.3" z="47.2" /> <Terrain name="snow" difficulty="0.9" /> </ControlPoint> <Join id="Join:1" length="14.5" slope_angle="15.6" has_fixed_ropes="false" starts_at="ControlPoint:1" ends_at="ControlPoint:2"> <Terrain name="mud" difficulty="0.3" /> </Join>

105

Page 117: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

<Join id="Join:2" length="18.2" slope_angle="8.3" has_fixed_ropes="false" starts_at="ControlPoint:2" ends_at="ControlPoint:3"> <Terrain name="rock" difficulty="0.5" /> </Join> <Join id="Join:3" length="19.4" slope_angle="9.6" has_fixed_ropes="false" starts_at="ControlPoint:2" ends_at="ControlPoint:4"> <Terrain name="ice" difficulty="0.8" /> </Join></MountainLocations>

106

Page 118: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.10Návrh modelu inventára

5.10.1 Parametre predmetovKaždý predmet, ktorý bude aplikácia používať je charakterizovaný množstvom parametrov. Pre

konkrétny predmet nemusia byť všetky parametre významné, ale daný model bol zvolený, aby bol

jednotný pre všetky predmety. Toto je aktuálny úplný zoznam parametrov predmetov:

meno

popis

účel

hmotnosť

typ

cesta k obrázku

indikátor pasívneho predmetu

indikátor vyžadovaného predmetu

počet použití

trvanlivosť (kapacita)

podmienky použitia

faktor vplyvu na zdravie

faktor vplyvu na vplyv zrážok

faktor vplyvu na vplyv vetra

faktor vplyvu na vplyv hmly

faktor vplyvu na vplyv teploty

faktor vplyvu na náročnosť zasneženého terénu

faktor vplyvu na náročnosť skalnatého terénu

faktor vplyvu na náročnosť obyčajného terénu (pevná zem)

faktor vplyvu na náročnosť mäkkého blatového terénu

faktor vplyvu na náročnosť zľadovateného terénu

indikátor umožnenia dýchania vo vysokých polohách

indikátor umožnenia regenerujúceho spánku

indikátor umožnenia prípravy jedál

indikátor umožnenia pohybu

Parametre faktory a indikátory sa používajú v simulácii pri výpočtoch vplyvu terénu a počasia

na úbytok energie horolezcov pri pohybe, alebo pri prepočítavaní zdravia horolezcov. Ostatné

parametre sú informatívne.

107

Page 119: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Aplikácia bude rozlišovať nasledovných šesť typov predmetov:

šaty

vybavenie

nástroje

jedlo

lieky

ostatné

Jedlo a lieky budú mať špeciálne postavenie, pretože u nich bude mať trvanlivosť alternatívny

význam. Nebude znamenať časovú trvanlivosť, ale energetickú hodnotu jedla, alebo liečiaci účinok

liekov.

108

Page 120: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.10.2 Diagram tried Model inventáruNa nasledovnom obrázku je znázornený diagram tried modelu inventáru, ktorý má na starosti celý

manažment inventárov horolezcov a táborov. Poskytuje možnosti na získavanie nových predmetov (v

základnom tábore), pohyb predmetov medzi jednotlivými inventármi a používanie predmetov. Triedy

modelu inventáru sú označené v diagrame modrou farbou.

obr. 32 Diagram tried Model Inventáru

109

Page 121: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

CEntity

Abstraktná trieda, ktorá reprezentuje entitu na hore pri expedícii. Základnými entitami sú horolezci a

tábory. Z hľadiska inventáru je dôležitá, pretože entity sú majiteľmi svojho inventáru.

CCamp

Trieda reprezentujúca tábor. Je to odvodená trieda od triedy CEntity. Jej špecialitou hľadiska inventáru

je to, že slúži iba ako úložisko predmetov – predmety zaradené do inventáru tábora budú

deaktivované. Špeciálne postavenie má základný tábor, ktorý slúži aj ako zdroj nových predmetov.

CSimulation

Trieda implementujúca celkový mechanizmus simulácie a poskytujúca sprístupnenie jednotlivých

podsystémov systému.

Bližšie je popísaná v kapitole 5.1.1.

CShedule

Trieda implementujúca rozvrh naplánovaných udalostí. Vyvoláva vykonanie udalostí, ktoré sú uložené

v prioritnom rade podľa času výskytu.

Bližšie je popísaná v kapitole 5.4.2.

CEvent

Trieda implementuje akúkoľvek naplánovanú udalosť.

Bližšie je popísaná v kapitole 5.4.2.

Metódy

Execute() – čisto virtuálna metóda pre vykonanie naplánovanej udalosti.

CItemDepleted

Trieda zdedená z CEvent. Implementuje udalosť vyčerpania kapacity (trvanlivosti) predmetu. Vykoná

sa vyvolaním virtuálnej metódy Execute().

Metódy

Execute() – virtuálna metóda pre deaktiváciu predmetu a jeho následné vyňatie z inventáru

a vyvolanie aktualizácií od inventáru závislých naplánovaných úloh.

CInventory

Trieda reprezentujúca inventár entity. Skaldá sa z dvoch častí – deaktiovaných predmetov

a aktivovaných predmetov.

110

Page 122: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Atribúty

CEntity* owner – entita, ktorá vlastní inventár

ITEM_LIST deactivated – zoznam všetkých neaktivovaných predmetov v inventári

ITEM_LIST activated – zoznam všetkých aktivovaných predmetov v inventári

float actual_weight – celková aktuálna hmotnosť inventáru

float max_weight – maximálna povolená hmotnosť inventáru

Metódy

CEntity* GetOwner() { return owner; } – vráti smerník na vlastníka inventáru

bool AddItem(CItem* item, float* gain_out) – metóda, pomocou ktorej pridávame

predmety do inventára

bool RemoveItem(CItem* item) – metóda, pomocou ktorej odoberáme predmety z

inventára

CItem* GetItem(const string& item_name) – metóda, ktorá nájde predmet v inventári

a vráti naň odkaz

bool UseItem(CItem* item, CEntity* subject, float* gain_out) – metóda,

ktorá vykonáva činnosti pri použití predmetu

bool DeactivateItem(CItem* item) – metóda, ktorá deaktivuje používaný predmet

void DeactivateAll() – metóda, ktorá deaktivuje všetky používané predmety v inventári (je

volaná pri skončení úlohy)

void Update(float time) – metóda, ktorá aktualizuje hodnoty parametrov aktivovaných

predmetov pri zmene stavu

ITEM_LIST& GetDeactivatedItemsList() – metóda, ktorá vráti smerník na zoznam

neaktivovaných predmetov

ITEM_LIST& GetActivatedItemsList() – metóda, ktorá vráti smerník na zoznam

aktivovaných predmetov

CItem

Trieda reprezentujúca konkrétny predmet, ktorý sa pohybuje v simulácii. Odkazuje sa na triedu

CItemData, ktorá obsahuje jeho nemenné parametre.

Atribúty

CItemData* data – smerník na objekt CItemData, ktorý poskytuje všetky nemenné parametre

CInventory* owner – smerník na inventár, v ktorom je daná CItem uložená

bool activated – indikátor aktivovaného predmetu

int times_used – počet vyčerpaných použití predmetu

float durability_used – doba, počas ktorej sa predmet používal

111

Page 123: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

float last_update – čas, kedy prebehla posledná aktualizácia parametrov predmetu

Metódy

void Update(float time) – metóda, ktorá aktualizuje použitie spotreby predmetu

void Deactivate()–metóda, ktorá nastaví indikátor použitia na false (volá sa na konci použitia)

void SetOwner(CInventory* item_owner) – metóda, ktorá nastaví rodičovský inventár

pre predmet

int GetTimesUsed()–metóda, ktorá vráti aktuálnu hodnotu počtu použití predmetu

float GetDurabilityUsed()–metóda, ktorá vráti aktuálnu hodnotu spotrebovanej výdrže

predmetu

CItemData* GetItemData()–metóda, metóda, ktorá vráti smerník na objekt s prislúchajúcimi

informáciami

CInventory* GetOwner()–metóda, ktorá vráti smerník na rodičovský inventár

bool Use(CEntity* subject, float* gain_out) – metóda, ktorá reprezentuje

použitie predmetu

float GetLastUpade()–metóda, ktorá vráti čas poslednej aktualizácie parametrov

bool IsActivated()–metóda, ktorá zisti aktuálny stav použitia predmetu

void ItemInfo(string& value_out) – metóda, ktorá vráti reťazec so súhrnnými

informáciami o predmete

CInventoryManager

Trieda reprezentujúca manažér inventáru. Je zdrojom nových predmetov. V simulácii je dovolené iba

základnému táboru poskytovať túto funkcionalitu.

Atribúty

ITEM_DATA_MAP inventory – informácie o všetkých predmetoch, ktoré sú známe aplikácii,

zatriedené podľa mena súboru, v ktorom sa nachádzajú

Metódy

CItem* GetNewItem(const string& item_key) – metóda vytvorí novu inštanciu

predmetu pomocou triedy CItem a vráti smerník

CItemData

Trieda reprezentujúca typ predmetu. Obsahuje všetky informácie o ňom a slúži ako podklad pre

vytváranie konkrétnych inštancií predmetov (trieda CItem) pre simuláciu.

Atribúty

bool passive – Indikátor, či je vec pasívna - nie je nutné ju aktivovať, stačí ju mať v inventári.

bool required – Indikátor, či je daná vec vyžadovaná.

112

Page 124: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

string name – Meno veci.

string purpose – Účel, na ktorý vec slúži.

string image – Cesta k obrázku, ktorý sa zobrazí v hre.

string description – Podrobnejší popis veci.

ITEM_TYPE type – Typ veci.

float weight – Hmotnosť veci, ovplyvňuje spotrebu energie horolezca.

int use_count – Maximálny počet použiti. (0 = neobmedzene).

float durability – Maximálna dĺžka použitia v hodinách. (0 = neobmedzene). Pre jedlo

a lieky predstavuje kapacitu – energetickú hodnotu.

ITEM_USAGE usage – Podmienky, kedy a kde je možné vec použiť.

float health_factor – Faktor, ktorým vec ovplyvňuje zdravie horolezca.

float precip_factor – Faktor, ktorým vec ovplyvňuje vplyv zrážok na horolezca.

float wind_factor – Faktor, ktorým vec ovplyvňuje vplyv vetra na horolezca.

float fog_factor – Faktor, ktorým vec ovplyvňuje vplyv hmly na horolezca.

float temp_factor – Faktor, ktorým vec ovplyvňuje vplyv teploty na horolezca.

float snow_factor – Faktor, ktorým vec ovplyvňuje náročnost snehového terénu.

float rock_factor – Faktor, ktorým vec ovplyvňuje náročnost skalnatého terénu.

float ice_factor – Faktor, ktorým vec ovplyvňuje náročnost zladovateného terénu.

float ground_factor – Faktor, ktorým vec ovplyvňuje náročnost obyčajného pevneho terénu.

float mud_factor – Faktor, ktorým vec ovplyvňuje náročnost blatového terénu.

bool enable_breathe Indikátor, či vec umožnuje dýchanie vo vysokých polohách.

bool enable_sleep – Indikátor, či vec umožnuje vydatný spánok.

bool zenable_cook – Indikátor, či vec umožnuje prípravu jedál.

bool enable_move – Indikátor, či vec umožnuje pohyb.

int ref_count – Počet inštancií triedy CItem, ktoré referencujú danú položku.

Metódy

GetAttribute() – abstraktná metóda predstavujúca množinu všetkých Get() metód vracajúcich

hodnoty atribútov triedy. Pre boolovské atribúty sa metódy volajú

IsAttribute() a ENablesAttribute().

IncreaseRefCount– inkrementuje počítadlo referencií na danú položku.

DecreaseRefCount– dekrementuje počítadlo referencií na danú položku.

string ItemInfo() – informácia o predmete. Metóda vracia formátovaný reťazec znakov

obsahujúci väčšinu parametrov predmetu (cesta k súboru s obrázkom nie je zahrnutá).

113

Page 125: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.11Návrh používateľského rozhrania

5.11.1 Všeobecné informácie

Používateľské rozhranie bude vytvorené pomocou knižnice CEGUI. V základnom móde bude

pracovať v celoobrazovkovom režime. Všetky okná pre vizualizáciu a riadenie aplikácie a simulácie

budú ako plávajúce okná.

Používateľské rozhranie bude pozostávať zo samostatných modulov, tzv. observerov. Každý

observer bude predstavovať jedno plávajúce okno. Tieto sa budú špecializovať na rôzne funkcie.

V základnej verzii budú nasledovné observery:

Hlavné menu

Inicializácia simulácie

3D zobrazovač

Textový log

Riadiaci panel

Pred spustením samotnej aplikácie sa zobrazí ešte jedno dialógové okno, kde si môže

používateľ zvoliť konfiguráciu grafického módu a jeho parametrov (napríklad rozlíšenie, farebnú

hĺbku, vyhladzovanie hrán,...). Ak sa raz konfigurácia nastaví, obrazovka sa už nebude zobrazovať.

Zobrazí sa až po výskyte nejakej chyby pri inicializácii grafického režimu.

obr. 33 Obrazovka Konfigurácia

114

Page 126: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

5.11.2 Hlavné menuHlavné menu bude poskytovať možnosti pre začatie simulácie, získanie informácií o aplikácii.

Bude viditeľné počas celej simulácie a bude umožňovať spúšťať novú simuláciu a ukončovať

ju a taktiež ukončiť celý program. Bude sa skladať zo štyroch plávajúcich tlačidiel, ktoré sa budú

nachádzať po celý čas v ľavom hornom rohu obrazovky.

Ovládacie prvky:

Tlačidlo Nová simulácia – zastaví simuláciu a spustí inicializáciu novej simulácie

Tlačidlo O aplikácii – zobrazí informácie o aplikácii a jej autoroch

Tlačidlo Koniec – ukončí program

obr. 34 Obrazovka Hlavné menu

5.11.3 Obrazovka pre inicializáciu simuláciePri voľbe štartu novej simulácie sa otvorí okno, ktoré nastaví niektoré parametre pre simuláciu. Sú to:

Výber expedície

Výber horolezcov

Ostatné činnosti (vytvorenie potrebných štruktúr v pamäti, načítanie inventáru, načítanie

modelu hory,...) sa vykonajú automatizovane.

Ovládacie prvky:

Tlačidlo ŠTART – spustí novú simuláciu

Tlačidlo – presunie vybratého horolezca v zozname voľných horolezcov do

zoznamu vybratých horolezcov

Tlačidlo – presunie vybratého horolezca v zozname vybratých horolezcov do

zoznamu voľných horolezcov

ListBox Expedície – zoznam všetkých expedícií, ktoré sú známe aplikácii

ListBox Voľní horolezci – zoznam všetkých horolezcov, ktorí sú známi aplikácii

ListBox Vybratí horolezci – zoznam horolezcov, ktorí sa majú zúčastniť expedície

Okrem týchto ovládacích prvkov sa na obrazovke nachádzajú aj prvku, ktoré sú schopné

poňať informáciu a zobraziť ju. Ide o textové aj obrazové údaje o horolezcoch a expedíciách.

115

Page 127: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

obr. 35 Obrazovka Inicializácia simulácie

5.11.4 Obrazovky pre kontrolu simulácie

Obrazovky pre kontrolu simulácie sú implementované triedami podľa návrhových vzorov observer

a state (5.1.2). Jednotlivé obrazovky sa zobrazujú v určených stavoch simulácie, ktoré boli definované

v kapitole 5.2.3.

Informácie o skupine horolezcov

Obrazovka vypisuje v každom stave simulácie informácie o existujúcej skupine horolezcov, ktorý boli

označený kliknutím myšou na grafický model postavy. V obrazovke sa zobrazí zoznam horolezcov

v skupine, nim pridelená úloha, prípadne miesto ich aktivity alebo čas trvania aktivity.

116

Page 128: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

obr. 36 Obrazovka Informácie o skupine horolezcov

Informácie o horolezcoch

Obrazovka vypisuje v každom stave simulácie informácie o horolezcovi, ktorý bol vybraný

prostredníctvom ovládacieho prvku combobox umiestneného vo vrchnej časti obrazovky. Informácie

sa vypisujú do zoznamu umiestnenom pod týmto prvkom.

obr. 37 Obrazovka Informácie o horolezcoch

Aktuálne počasie

Obrazovka sa zobrazuje v každom stave simulácie. Zobrazujú sa v nej informácie o aktuálnom počasí.

117

Page 129: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

obr. 38 Obrazovka Aktuálne počasie

Lokalita

Obrazovka sa zobrazuje v každom stave simulácie. Po kliknutí myšou na niektorú lokalitu modelu

hory sa v obrazovke zobrazia informácie o zvolenej lokalite a o horolezcoch a táboroch, ak sú na nej

umiestnené.

obr. 39 Obrazovka Lokalita

Vytvorenie skupiny

Obrazovka sa zobrazuje po selekcii lokality, na ktorej sa nachádzajú horolezci bez priradenej úlohy.

Na ľavej strane sa nachádza zoznam voľných horolezcov a na pravej zoznam horolezcov v práve

vytváranej skupine horolezcov. Po stlačení tlačidla OK sa vytvorí nová skupinka.

118

Page 130: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

obr. 40 Obrazovka Vytvorenie skupiny

Pridelenie materiálu horolezcom

Obrazovka sa zobrazí bezprostredne po vytvorení novej skupiny horolezcov. V ľavej časti sa nachádza

zoznam dostupného materiálu. V pravej časti obrazovky si horolezec zvolí pomocou comboboxu

horolezca a priradí mu materiál. Materiál horolezca sa zobrazuje v zozname umiestnenom na pravej

strane obrazovky bod voľbou horolezca. Tlačidlom OK sa potvrdzuje pridelenie materiálu.

obr. 41 Obrazovka Pridelenie materiál horolezcom

Zadanie úlohy pre skupinu horolezcov

Obrazovka sa zobrazuje bezprostredne po pridelení materiálu skupine horolezcov. Obsahuje

combobox, pomocou ktorého je možné zvoliť úlohu pre skupinu. Voľba úlohy sa potvrdzuje stlačením

tlačidla OK.

119

Page 131: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

obr. 42 Obrazovka Zadanie úlohy pre skupinu horolezcov

Vytvorenie trasy

Obrazovka sa zobrazuje po zvolení úlohy, ktorá si vyžaduje zadanie trasy. V ľavej časti obrazovky sa

zobrazuje postupnosť lokalít tvoriaca trasu. V pravej časti sa zobrazujú susedné lokality posledne

zvolenej časti trasy. Tieto lokality je možné pridať ku trase stlačením tlačidla pridať. Stlačením

tlačidla Zmazať poslednú sa vymaže posledná časť trasy, tlačidlom OK sa potvrdzuje zadanie trasy.

obr. 43 Obrazovka Vytvorenie trasy

Nastavenie času úlohy

Obrazovka sa zobrazuje po zvolení úlohy, ktorá si vyžaduje zadanie času. Čas sa zadáva v hodinách

do editboxu a potvrdzuje sa tlačidlom OK.

120

Page 132: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

obr. 44 Obrazovka Nastavenie času úlohy

Informácie o úlohePo zadaní všetkých potrebných údajov o úlohe sa zobrazí okno so súhrnnou informáciou o úlohe.

V obrazovke sa zobrazí zoznam horolezcov v skupine, nim pridelená úloha, prípadne miesto ich

aktivity alebo čas trvania aktivity. Po stlačení tlačidla OK sa ukončí proces zadávania úlohy.

obr. 45 Obrazovka Informácie o úlohe

Viewport

Obrazovku predstavuje okno, v ktorom sa počas celej simulácie zobrazuje grafický model hory

a ostatných objektov (horolezci, tábory, ...). V okne sa zobrazuje priebeh simulácie a slúži pre

interakciu používateľa s objektmi.

Úspech

121

Page 133: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Obrazovka sa zobrazuje po úspešnom konci horolezeckej výpravy. Zobrazuje oznam o úspechu

horolezeckej výpravy. Po stlačení tlačidla OK sa ukončí simulácia.

Neúspech

Obrazovka sa zobrazuje po neúspešnom konci horolezeckej výpravy. Zobrazuje oznam o neúspechu

horolezeckej výpravy. Po stlačení tlačidla OK sa ukončí simulácia.

5.11.5 MessageBoxPočas simulácie môže dôjsť k rôznym udalostiam. Používateľ bude o týchto udalostiach informovaný

pomocou MessageBox-u.

Bude to informatívne okno, ktoré zobrazí informáciu o udalosti, opýta sa používateľa na ďalší

postup a bude čakať na potvrdenie. Používateľ zodpovie otázku stlačením jedného z tlačidiel. Otázky

budú formulované tak, aby bolo možné na ne odpovedať áno alebo nie.

Ovládacie prvky:

Tlačidlo Áno – kladne odpovie na položenú otázku

Tlačidlo Nie – záporne odpovie na položenú otázku

obr. 46 Obrazovka MessageBox

5.11.6 O aplikáciiPlávajúce okienko, ktoré bude zobrazovať informácie o aplikácii. Vyvolané bude z hlavného menu

stlačením tlačidla O aplikácii.

Ovládacie prvky:

žiadne – zatvárať sa bude tlačidlom X vpravo hore

122

Page 134: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

obr. 47 Obrazovka O aplikácii

123

Page 135: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

6 Zmeny špecifikácie, priority riešenia

6.1 Zmeny v špecifikáciiŠpecifikácia zostala viac menej bez zmeny. Zmenilo sa iba nasledujúce.

Pri implementácii nebude využitá knižnica MFC pre tvorbu okien s ovládacími prvkami pre

vstupno-výstupné operácie používateľa. Aplikácia bude vykresľovať aj používateľské rozhranie

s využitím funkcií grafickej knižnice OpenGl.

Ďalšou zmenou je fakt, že stav simulácie nebude možno ukladať, načítavať a ani vracať späť

kroky simulácie. Od týchto funkcií systému sme upustili vzhľadom na potrebu vytvorenia

komplikovaného a rozsiahleho modulu, ktorý by bol schopný vytvoriť konzistentný záznam o stave

simulácie a takisto tento záznam načítať a inicializovať potrebné štruktúry pre korektné nastavenie

uloženého stavu simulácie. Ako problém sa ukázali predovšetkým náhodné veličiny, ktoré nezaručujú

zopakovanie udalostí po opätovnom načítaní stavu simulácie a následného pokračovania simulácie.

Tento modul je možné dorobiť v budúcnosti.

124

Page 136: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

6.2 Priority riešeniaVzhľadom na rozsah projektu, jeho charakter a to, že je vytváraný ako pilotná aplikácia takpovoediac

od základov, je nevyhnutné stanoviť priority pri riešení projektu, hlavne čo sa týka implementácie

produktu.

Charakteristické pre simulačné systémy je to, že ich vnútorné spracovanie je veľmi zložité,

pomerovo oveľa zložitejšie vzhľadom ku spracovaniu vstupov a výstupov. Preto sú stanovené tieto

priority pri vytváraní produktu:

1. Implementácia vnútornej simulačnej logiky – reprezentácia objektov a plánovanie udalostí

2. Vytvorenie jednoduchého, ale s realitou konzistentného modelu fyzikálnych apektov systému

3. Vytvorenie zapisovača údajov do externého log súboru – výpis informácii o vykonávaní

programu pre jednoduchšie spozorovanie a ladenie chýb

4. Zápis vstupných údajov do súborov a implementácia manipulácie so súbormi vstupných

údajov (pomocou XML)

5. Implementácia grafickej reprezentácie interaktívneho používateľského rozhrania

6. Vytvorenie testovacieho modelu hory pre simulovanie horolezeckého výstupu

7. Vytvorenie dokumentácie inžinierskeho diela, používateľskej príručky a diela o riadení

projektu

8. Vytvorenie aplikácie pre vytváranie modelov hôr pre simulácie horolezeckých výstupov

9. Implementácia textového informačného modulu – informácie o priebehu simulácie

a vyhodnotenie priebehu horolezeckého výstupu

10. Obohatenie simulácie o zvukové efekty

11. Obohatenie simulácie o multimediálne informácie – zobrazenie videí a animácií

125

Page 137: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

7 Implementácia

7.1 Výber implementačného jazyka a prostredia Vzhľadom na využívané knižnice bol ako implementačný jazyk zvolený jazyk C++. Systém bol

implementovaný v prostredí Microsoft Visual Studio .NET 2005 Team Suite so Service Pack 1, pod

operačným systémom Windows XP Professional SP2.

7.2 Opis realizácie Pri realizácii implementácie navrhnutej aplikácie boli využité nasledovné knižnice:

OGRE 1.4.0 – grafický engine pre vykresľovanie scén

CEGUI 0.5 – knižnica pre vytváranie „windows-like“ okienok a kontrolných prvkov pod

OpenGl

Xerces 2.7.0 – knižnica pre parsovanie, generovanie, manipulovanie a validáciu XML 1.0

dokumentov

Tieto uvedené knižnice v niesli do návrhu rôzne špecifiká (hlavne knižnica OGRE), pričom však

značne uľahčili implementáciu navrhnutej aplikácie.

Aplikácia bola navrhnutá tak, že ju bolo možné rozdeliť do určitých celkov, ktoré sú opisované

v jednotlivých kapitolách podrobného návrhu. To umožnilo, aby každú časť implementovali členovia

tímu viac-menej samostatne a nezávisle na sebe.

Implementácia jednotlivých tried je podrobne opísaná v technickej dokumentácii.

7.3 OhraničeniaSoftvér

Vzhľadom na to, že aplikácia využíva funkcie windows.h, a to hlavne pre prácu v systéme súborov,

aplikáciu je možné spustiť iba pod operačným systémom Windows. Kvôli nainštalovaným súčastiam

sa odporúča systém Windows XP a novšie.

Pre prípadnú úpravu a rozširovanie aplikácie je nutné mať nainštalovanú knižnice Ogre 1.4.0 a CEGUI

0.5.

Hardvér

Minimálna konfigurácia PC:

procesor – 2400MHz Pentium 3 alebo AMD Athlon XP a lepsie

operačná pamäť – 512 MB

miesto na disku – 120 MB

grafická karta – GeForce4 alebo ATI 7200, 32MB pamäte

zvuková karta DX9 kompatibilná

126

Page 138: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

Odporúčaná konfigurácia PC:

procesor – 1800MHz Pentium 4 alebo AMD Turion a lepsie

operačná pamäť – 1024 MB

miesto na disku – 120 MB

grafická karta – GeForce6200 alebo ATI 9200, 64MB pamäte

zvuková karta DX9 kompatibilná

127

Page 139: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

8 Technická dokumentáciaOpis jednotlivých komponentov a tried systému je uvedený v elektronickej podobe na priloženom

médiu v súbore technicka_dokumentacia.chm.

128

Page 140: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

9 ZhodnotenieVzhľadom na rozsah a charakter projektu, a vzhľadom na to, že predmetom tvorby bola novo –

vytváraná aplikácia, sme nestihli vytvoriť produkt v rozsahu, v ktorom bol špecifikovaný.

Podarilo sa nám vytvoriť funkčnú aplikáciu simulujúcu horolezeckú výpravu v rozsahu,

danom prioritami v kapitole 6.2, po prioritu č. 7 (vrátane).

Najväčším nedostatkom je, že sa nám nepodarilo splniť prioritu č. 8 a vytvoriť tak aplikáciu

pre vytváranie modelov hôr pre simuláciu horolezeckých výstupov. Tento nedostatok obmedzuje

používanie vytvoreného produktu, nakoľko je prácne vytárať tieto modely „ručne“. Pozitívom však je,

že sa jedná o samostatnú aplikáciu a jej vytvorenie môže byť predmetom ďalšieho rozširovania

systému.

Čo sa týka obohatenia systému a multimediálne informácie (textové informácie, videá,

animácie, zvuky), ich neimplementovanie systému nijako nevplýva na funkčnosť systému. Ich budúca

implementácia vhodným spôsobom môže zvýšiť atraktivitu aplikácie.

Pri tvorbe softvérového systému v tíme sa jednotlivý členovia naučili pracovať v tíme, hlavne

čo sa týka koordinácie úsilia jednotlivcov a dôležitosti komunikácie. Pri riešení projektu hlavne

v druhom semestri členovia tímu narazili na problém vzájomného pochopenia myšlienok a pochopenia

častí systému iných členov tímu. Takisto narazili na problém pri integrácií jednotlivých subsystémov.

Tu sa ukázalo, že absencia sekvenčných diagramov robila problémy pri podrobnom návrhu systému,

hlavne rozhraní tried.

Ukázalo sa, že rozsah podrobného návrhu systému a jeho následnej implementácie je pomerne

veľký na to, aby bolo možné podrobne implementovať špecifikovaný systém za dodržania všetkých

postupov pri vývoji softvérového produktu v etape návrhu a implementácie. Týka sa to hlavne

používania metód a techník štruktúrovaného zápisu (UML), sledovania kvality a testovania.

Taktiež sa ukázalo resp. potvrdilo, že pre tento typ aplikácie nie je vhodné využívať procesy

RUP, oveľa vhodnejšie je postupovať podľa metodológie evolučného vývoja softvéru. Dôvodom je

hlavne fakt, že takýto systém nie je funkčný dovtedy, pokiaľ nie je vytvorený v podstate celý systém.

Pri evolučnom prístupe možno tento systém vytvárať postupne rozširovaním požiadaviek

a zvyšovaním podrobnosti realizácie jednotlivých častí. Ďalším dôvodom je vlastnosť tohto systému,

a to veľmi komplikované testovanie systému. Pri tomto type aplikácii možno logickú správnosť

simulácie otestovať až potom, čo je vytvorený celý systém – vnútorné spracovanie (logická vrstva) aj

rozhranie. Navyše pri simulácii obvykle vzniká obrovské množstvo stavov, možností a situácií, čo sa

dá len sotva pokryť testovaním, ak vôbec.

Napriek všetkým negatívam si členovia tímu odniesli s tímového projektu veľa cenných

skúseností a predstavu o tvorbe softvérového systému v tíme. Podstatné bolo hlavne uvedomenie si

nedostatkov v práci tímu.

129

Page 141: SLOVENSKÁ TECHNICKÁ UNIVERZITAlabss2.fiit.stuba.sk/TeamProject/2006/team04/public_html/... · Web viewSLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií

V závere možno povedať, že sa podarilo vytvoriť funkčný produkt a do veľkej miery splniť

požiadavky uvedené v špecifikácii systému.

130