Ana səhifə

Objektový návrh 1 Návrhové vzory


Yüklə 178 Kb.
tarix27.06.2016
ölçüsü178 Kb.

Objektový návrh

1 Návrhové vzory


Návrhové vzory predstavujú všeobecné riešenia problémov, ktoré sa využívajú pri návrhu programov.
V tejto aplikácií budú použité nasledujúce návrhové vzory:

  • Model-View-Controller

  • Singleton

  • Abstract Factory

1.1 Model-View-Controller


Popis: Model-View-Controller rozdeluje aplikáciu na 3 oddelené časti:


  • Model

- je reprezentáciou dát aplikácie. Určuje aké dáta budú zobrazené na výstupe

aplikácie.



  • View

- zobrazuje dáta pre používateľa vo vhodnej grafickej podobe. Dáta dostáva z modelu a transformuje ich na vhodný grafický výstup. Nemá priamy prístup k dátam.

  • Controller

- ovláda stav modelu. Reprezentuje ovládanie aplikácie užívateľom. Zmenou stavu

modelu sa zabezpečí, že sa zobrazia správne dáta.


1.2 Singleton


Popis: Zabezpečenie, že môže byť vytvorená iba jedna inštancia triedy, ktorá je vytvorená podľa tohto návrhového vzoru.
Tento návrhový vzor je obzvlášť vhodný pre triedy konfigurácie, databázy a všade tam, kde je požadované, aby bol prístup k dátam určitého typu iba z jedného miesta.

1.3 Abstract Factory


Popis: Poskytuje rozhranie pre vytváranie súvisiacich rodín alebo závislých objektov bez uvedenia ich konkrétnej triedy.
Použitie tohto vzoru umožňuje striedať konkrétne implementácie tried bez zmeny kódu, ktorý ich používa, a to aj za behu aplikácie.

2 Objektový návrh systému ako celku



Obrázok 1: Objektový diagram, zobrazujúci prepojenie objektov systému


2.1 Objektový diagram


Objektový diagram znázorňuje kompletnú aplikáciu, aj vrátane používateľského rozhrania.

Hlavným objektom je main, čo je vlastne samotná aplikácia. Pod ňou sa v grafe nachádza používateľské rozhranie. Všetky jeho komponenty sú už predpripravené triedy vývojového prostredia (Visual Studio). Konkretizované sú ovládacie prvky, pre žiadanosť ich vlastností. Používateľské prostredie obsahuje aj množstvo vizuálnych komponentov. Napravo sa v grafe od main-u nachádzajú konfiguračné triedy merac a myChannel, ktoré združujú nastavenia pre zariadenie a z neho namerané dáta.


2.2 Komponenty vývojového prostredia


Všetky konkretizované komponenty vývojového prostredia zobrazené v objektovom diagrame sú Controller-mi z návrhového vzoru Model-View-Controller. Je teda požadované aby mali očakávané vlastnosti. Týmito vlastnosťami sú nasledovné:


  • Button (tlačidlo)

- metóda Click

- jednorazovo spúšťa istú akciu. V našom prípade sú týmito akciami

spustenie a ukončenie merania a zobrazenie tabuľky či grafu.


  • TextBox (textové pole)

- metóda TextChanged

- reaguje na zmenu v textovom poli komponentu. Kedže náš program pracuje iba s

číslami, je v tejto metóde nutné zabezpečiť aby komponent ignoroval akékoľvek

písmo, a pri zmene číselnej hodnoty ju poslal komponentu merac.



  • RadioButton (výberové tlačidlo)

- metóda CheckedChanged

- reaguje na vyznačenie/odznačenie komponentu. Pri zmene má komponent

odoslať tento parameter komponentu merac.


  • CheckedListBox (zoznam zaškrtávacích polí)

- metóda ItemCheck

- reaguje na zaškrtnutie jedného z polí. Pri zmene má komponent

odoslať tento parameter komponentu merac.

- metóda SelectedIndexChanged

- reaguje na zmenu vyznačeného poľa. Pri zmene má komponent

odoslať tento parameter komponentu merac.



  • ComboBox (vyskakovacie menu s možnosťami)

- metóda SelectedIndexChanged

- reaguje na zmenu vyznačeného poľa. Pri zmene má komponent

odoslať tento parameter komponentu merac.
Konkrétne použitie týchto komponentov v používateľskom prostredí obsahuje časť 3.5 Trieda MainForm.

3 Objektový návrh jednotlivých komponentov

Nasledujúci diagram zobrazuje už iba nami vytvorené triedy a ich premenné a metódy.


Obrázok 2: Triedny diagram


3.1 Trieda MyChannel


Popis: Abstraktná trieda predstavújuca základné parametre všetkých kanálov zariadenia.
Premenné

  • name - názov (označenie) kanálu určené zariadením

  • enabled - či je kanál aktívny, teda či sa má kanál použiť pri meraní

3.2 Trieda MyOutputChannel


Popis: Konkretizovaná trieda pre výstupné kanály zariadenia odvodená z abstraktnej triedy MyChannel. Trieda je Modelom z návrhového vzoru Model-View-Controller.
Premenné (navyše k triede MyChannel):

  • minVoltage - nastavenie minimálneho napätia pre daný kanál

  • maxVoltage - nastavenie maximálneho napätia pre daný kanál

3.3 Trieda MyInputChannel


Popis: Konkretizovaná trieda pre vstupné kanály zariadenia odvodená z abstraktnej triedy MyChannel. Trieda je Modelom z návrhového vzoru Model-View-Controller.
Premenné (navyše k triede MyChannel):

  • continuous - či čítanie dát z tohto kanála má prebiehať počas celého intervalu merania

3.4 Trieda Merac


Popis: Trieda predstavujúca jadro projektu. Obsahuje údaje využívané aplikáciou a taktiež metódy na komunikáciu so zariadením. Trieda je Modelom z návrhového vzoru Model-View-Controller.
Premenné:

  • device - pointer na ovládače zariadenia

  • channels - konfiguračné triedy pre jednotlivé kanály zariadenia

  • inputsNum - počet vstupných kanálov

  • outputsNum - počet výstupných kanálov

  • steps - nastavenie počtu krokov merania

  • repetitions - nastavenie počtu meraní ktoré sa majú vykonať

  • interval - dĺžka jedného kroku merania

  • frequency - počet prečítaní dát počas jedného intervalu pri kontinuálnom čítaní

  • actualMeassurement - číslo momentálne prebiehajúceho merania

  • actualStep - číslo momentálne prebiehajúceho kroku merania

  • saveFile - základ názvu súboru pre jednotlivé súbory na uloženie

  • runningMeassurement - či prebieha meranie

  • scale - pomer rozdielu nastaveného a reálneho rozpätia napätia zariadenia

  • data - data prečítané zo zariadenia



Konfiguračné metódy:

  • setOutputChannel - aktivuje zvolený výstupný kanál

  • setOutputChannelMinV - nastaví zvolenému kanálu určené minimálne napätie

  • setOutputChannelMaxV - nastaví zvolenému kanálu určené maximálne napätie

  • getOutputChannel - vráti nastavenia zvoleného kanála

  • getOutputEnabled - vráti, či je zvolený kanál aktívny

  • disableOutput - deaktivuje zvolený kanál

  • setInputChannel - aktivuje zvolený vstupný kanál

  • getInputChannel - vráti nastavenia zvoleného kanála

  • getInputEnabled - vráti, či je zvolený kanál aktívny

  • disableInput - deaktivuje zvolený kanál



Akčné metódy:

  • setDevice - metóda volaná pri vytvorení triedy. Nastaví si zariadenie a uloží si potrebné informácie o ňom

  • startMeassure - skontroluje či používateľom zadané nastavenia sú korektné. Ak áno, začne odosielať požiadavky s potrebnými nastaveniami zariadeniu

  • stopMeassure - ukončí odosielanie požiadaviek zariadeniu

  • inputRead - metóda odchytávajúca prichádzajúce dáta zo zariadenia. Dané dáta podľa potreby preškáluje a uloží do premennej data. Podľa premenných actualMeassurement a actualStep ukončuje meranie

  • saveData - po korektnom ukončení merania (prebehli všetky očakávané merania) ukladá prečítané dáta zo zariadenia ako súbory na disk

  • drawGraph - z prečítaných dát zo zariadena vygeneruje a vykreslí graf

3.5 Trieda MainForm


Popis: Trieda predstavujúca používateľské rozhranie. Komponenty tejto triedy sú View a Controllermi z návrhového vzoru Model-View-Controller.
Controller komponeny:

  • start - volá metódu startMeassure komponentu Merac

  • stop - volá metódu stopMeassure komponentu Merac

  • showData - zobrazí tabuľku s nameranými datami

  • showGraph - zobrazí graf s nameranými datami

  • outMinVoltInput - nastavuje premennú minVoltage komponentu MyOutputChannel

  • outMaxVoltInput - nastavuje premennú maxVoltage komponentu MyOutputChannel

  • intervalInput - nastavuje premennú interval komponentu Merac

  • stepsInput - nastavuje premennú steps komponentu Merac

  • freqInput - nastavuje premennú frequency komponentu Merac

  • repsInput - nastavuje premennú repetitions komponentu Merac

  • contRadio - nastavuje premennú continuous komponentu MyInputChannel

  • singleRadio - nastavuje premennú continuous komponentu MyInputChannel

  • outChannels - nastavuje premennú enabled komponentu MyOutputChannel

  • inChannels - nastavuje premennú enabled komponentu MyInputChannel

  • graphX - nastavenie priradenia kanála k x-ovej osi

  • graphY - nastavenie priradenia kanála k y-ovej osi


View komponenty:

  • table - vizuálny komponent tabuľky

  • graph - vizuálny komponent grafu


Metódy:

  • load - metóda volaná pri spustení aplikácie. Zistí či je k PC pripojené zariadenie, ak nie je, aplikácia to oznámi a ďalej nepokračuje. Ak je, inicializuje triedu Merac a vytvorí v komponentoch outChannels a inChannels CheckBox, pre všetky výstupné a vstupné kanály zariadenia.


Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©atelim.com 2016
rəhbərliyinə müraciət