Ez a dokumentum egy előző változata!
Tartalomjegyzék
Szakdolgozat: Véges automaták és reguláris nyelvek kapcsolata
Szoftver felépítése, környezete
A szoftver nem igényel speciális beállításokat, alap webszerveren elfuttatható. Tárterület igénye alig haladja meg az 500 kB-ot. Működtetéshez szükséges a web kiszolgáló rendszer mivel tartalmaz php elemeket, így statikus weboldalként nem működik.
A grafikus elemek CSS3-as formázásokat tartalmaznak, amelyeket sajnos nem minden böngésző tud jelenleg rendesen megjeleníteni. Tesztelés során Google Chrome, Opera és Safari böngészőknél (Win XP környezetben) találtam teljesen működésképesnek az oldalt. Ezért ezeket a böngészőket ajánlom, amelyre a rendszer figyelmezteti is a felhasználót.
Az adatok mentéséhez kliens oldali HTML5-ös 'localStore' adattároló rendszer használ a web oldal. A tesztek során kiderült, hogy ennek a tárolási módszernek már széles körű támogatottsága van. Ennek ellenére a rendszer ellenőrzi az adattároló motor működésének lehetőségét, és ha nem találja, akkor figyelmezteti a felhasználót erre, és nem engedi használni az olyan modulokat, funkciókat, amelyekhez erre lenne szükség.
Böngészők tesztelése
A következő böngészőkben vizsgáltam a szoftver működését
| Böngésző | Verzió szám | Operációs rendszer | localStorage | Grafikus megjelenés |
|---|---|---|---|---|
| Google Chrome | 44.0.2403.155 | Debian linux | Ok | Ok |
| Iceweasel | 38.2.0 | Debian linux | Ok | Nyilak rosszak |
| Google Chrome | 48.0.2564.103 m | Win XP | Ok | Ok |
| Opera | 35.0.2066.37 | Win XP | Ok | Ok |
| Safari | 5.1.7 (7534.57.2) | Win XP | Ok | Ok |
| Mozilla Firefox | 44.0.1 | Win XP | Ok | Nyilak rosszak |
| Internet Explorer | 8.0.6001.18702 | Win XP | Ok | Nyilak és körök is rosszak |
| Google Chrome | 48.0.2564.109 m | Win7 | Ok | Ok |
Tesztelési folyamat:
- 'Véges automata modul' menüpont kiválasztása.
Eredmény: Megjelenik a modul felülete. - Húzzon le 4 db 'Új állapot' (kör) objektumot a szerkesztő felületre.
Eredmény: minden lehúzáskor ott marad a felületen egy állapot objektum amely más-más azonosítót kap (S,A,B,C) - A szerkesztő felületen egy állapot objektumra (körre) tegye rá az egeret.
Eredmény: Meg kell jelenjen egy kék pötty. A pöttyből nyilat lehet húzni egy másik állapot objektumhoz. - Kösse össze a következőket: S→A; A→B; S→C; C→A; A→A (Önmagára mutató kapcsolat).
Eredmény: Húzáskor megjelenik a nyíl, és ahogyan mozgatjuk az egeret szépen követi azt a kiinduló állapot objektum körül. Ha egy másik állapot objektumon engedjük el, akkor létrehoz a két objektum közé egy kapcsolat nyilat (átmenet objektum). Fel is címkézi a nyilat a következő lehetséges karakterrel. - Kattints a 'B' jelű állapot objektumra. Majd a szerkesztő alatt kapcsolja be az 'elfogadó állapot'-ot.
Eredmény: Dupla körös állapot objektum - Kattint a C→A átmenet objektumra (nyílra) és szerkesztő alatt adjon hozzá plusz egy átmenetet.
Eredmény: Két betű ','-vel elválasztva jelenik meg az állapot objektumon, pl.: a,b - Tesztelje le az automata működését, indítsa el a 'Automata működésének bemutatása'-t.
Eredmény: Vizuálisan és szövegesen bemutatja az automata működését. - Mentse el az automatát valamilyen néven.
Eredmény: Az 'Eltárolt automaták' között megjelenik a mentett anyag. - Konvertálja át nyelvtanná az automatát: 'Automata konvertálása nyelvtanná'.
Eredmény: Átvált a rendszer a 'Reguláris nyelv modul'-ra és ott megjelenik a nyelvtan. - A nyelvtan fülön található anyagot konvertálja vissza automatává ('Szabály konvertálása automatává' kiválasztása és 'Feldolgozás indítása' gomb aktiválása).
Eredmény: 'Az automata elkészült, lépjen át az automata modulhoz!' szöveg megjelenik. - Nézze meg az automata képét.
Eredmény: Az átalakított automata megjelenik (szerkezete ugyanaz mint amit korábban szerkesztettünk, csak más elrendezésben van!) - Betöltés tesztelés. Töltse vissza az elmentett anyagot.
Eredmény: Visszaáll az eredeti elrendezés.
Könyvtárszerkezet, fájlok
| Könyvtár/File | Leírás |
|---|---|
| index.php | Kezelő keretprogram |
| favicon.ico | Program ikonja |
| include | Kezelő felületek könyvtára |
| include/automata.php | Véges automata modul felülete |
| include/impresszum.php | Impresszum menüpont felülete |
| include/nyelvtan.php | Reguláris nyelv modul felülete |
| js | JavaScript rutinok könyvtára |
| js/index1.js | A rendszer kezelő JavaScript függvényei |
| js/jquery.js | JQuery segéd függvénytár |
| js/jqueryui.js | JQueryUI segéd függvénytár |
| language | Nyelvi fájlok könyvtára |
| language/hu_hu.lng | Magyar nyelvi fájl |
| language/en_gb.lng | Angol nyelvi fájl |
| language/de_de.lng | Német nyelvi fájl |
| style | Formázási fájlok könyvtára |
| style/style1.css | A rendszer formázási fájlja |
| style/smoothness | A JQueryUI formázási könyvtára |
| picture | A képi elemek könyvtára |
Képi anyagok
Képi anyagok és használatuk (az összes fájl saját szerkesztésű képi anyag)
| Minta | Fájl neve | Használata |
|---|---|---|
![]() | allapot.png | Állapot objektum alap állapotban |
![]() | allapotp.png | Állapot objektum kijelölt állapotban |
![]() | allapotj.png | Állapot objektum bemutatókor kijelölt állapotban |
![]() | allapotz.png | Elfogadó állapotú állapot objektum alap állapotban |
![]() | allapotzp.png | Elfogadó állapotú állapot objektum kijelölt állapotban |
![]() | allapotzj.png | Elfogadó állapotú állapot objektum bemutatókor kijelölt állapotban |
![]() | vonal3.png | Átmenet objektum rajzolásához a nyíl vonala alap állapotban |
![]() | vonal3p.png | Átmenet objektum rajzolásához a nyíl vonala kijelölt állapotban |
![]() | vonal3j.png | Átmenet objektum rajzolásához a nyíl vonala bemutatókor kijelölt állapotban |
![]() | vonal3b.png | Átmenet objektum rajzolásához a nyíl vonala bemutatókor véglegesen kiválasztott állapotban |
![]() | vonal4.png | Átmenet objektum rajzolásához a nyíl feje alap állapotban |
![]() | vonal4p.png | Átmenet objektum rajzolásához a nyíl feje kijelölt állapotban |
![]() | vonal4j.png | Átmenet objektum rajzolásához a nyíl feje bemutatókor kijelölt állapotban |
![]() | vonal4b.png | Átmenet objektum rajzolásához a nyíl feje bemutatókor véglegesen kiválasztott állapotban |
![]() | vonal5.png | Önmagára mutató átmenet objektum alap állapotban |
![]() | vonal5p.png | Önmagára mutató átmenet objektum kijelölt állapotban |
![]() | vonal5j.png | Önmagára mutató átmenet objektum bemutatókor kijelölt állapotban |
![]() | vonal5b.png | Önmagára mutató átmenet objektum bemutatókor véglegesen kiválasztott állapotban |
![]() | nyilk2.png | Állapot objektum rajzolás indításának jelzése ill. állapot objektum forgatásának jelzése |
![]() | hu_hu.png | Magyar nyelv jelzéséhez zászló Forrás: https://commons.wikimedia.org/wiki/File:Flag_of_Hungary.svg |
![]() | en_gb.png | Angol nyelv jelzéséhez zászló Forrás: https://commons.wikimedia.org/wiki/File:Flag_of_the_United_Kingdom.svg |
![]() | de_de.png | Német nyelv jelzéséhez zászló Forrás: https://commons.wikimedia.org/wiki/File:Flag_of_Germany.svg |
| favicon.ico | Az oldal ikonja Készítéséhez „Révész György: Bevezetés a formális nyelvek elméletébe”[7] című könyvének borítója adta az ötletet |






















