ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály...

70
ÍRTA Katona Éva Elektromágneses Terek Laboratórium 2009. január KONZULENS Dr. Kuczmann Miklós, PhD Egyetemi docens TANULMÁNYOK Széchenyi István Egyetem Műszaki Tudományi Kar Jedlik Ányos Gépész-, Informatikai és Villamosmérnöki Intézet Távközlési Tanszék Mérnök Informatikus (BSc) III. évfolyam Villamosmérnöki (BSc) I. évfolyam E-MAIL [email protected] WEB http://maxwell.sze.hu/~vica KATONA ÉVA ANA ADVANCED NETWORK ANALYSIS KIRCHHOFF –TÍPUSÚ HÁLÓZATOK ÉS JELFOLYAMHÁLÓZATOK ANALÍZISE JAVA NYELVEN IMPLEMENTÁLT ALKALMAZÁSSAL

Transcript of ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály...

Page 1: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ÍRTA Katona Éva Elektromágneses Terek Laboratórium 2009. január

KONZULENS Dr. Kuczmann Miklós, PhD Egyetemi docens

TANULMÁNYOK Széchenyi István Egyetem Műszaki Tudományi Kar

Jedlik Ányos Gépész-, Informatikai és Villamosmérnöki Intézet Távközlési Tanszék

Mérnök Informatikus (BSc) III. évfolyam Villamosmérnöki (BSc) I. évfolyam

E-MAIL [email protected] WEB http://maxwell.sze.hu/~vica

KATONA ÉVA

ANA – ADVANCED NETWORK ANALYSIS

KIRCHHOFF –TÍPUSÚ HÁLÓZATOK ÉS JELFOLYAMHÁLÓZATOK ANALÍZISE JAVA NYELVEN IMPLEMENTÁLT ALKALMAZÁSSAL

Page 2: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 2 -

TARTALOMJEGYZÉK 1. BEVEZETÉS ................................................................................ 4

2. VÁLTOZÁSOK A PROGRAM STRUKTÚRÁLIS FELÉPÍTÉSÉBEN .................... 6

2.1. ANACOMPONENTPROTOTYPE CSOMAG ................................... 7

2.2. ANADOCUENT CSOMAG ..................................................... 8

2.3. ANALYSIS CSOMAG ............................................................. 8

2.4. DATA CSOMAG ................................................................. 10

2.5. GUI (GRAPHICAL USER INTERFACE) CSOMAG ........................ 10

2.6. HELPERS CSOMAG ............................................................ 14

2.7. LOADER CSOMAG ............................................................. 20

2.8. SETTINGS CSOMAG ........................................................... 20

2.9. WORKSHEET CSOMAG ....................................................... 21

2.10. XMLTOOLS CSOMAG ...................................................... 28

3. ÚJRATERVEZÉS (REFACTORING) ................................................... 29

3.1. KOMPONENS – HIERARCHIA ................................................ 29

3.1.1. ANACOMPONENT ................................................. 31

3.1.2. NODE ................................................................. 32

3.1.3. CONNECTION ....................................................... 34

3.2. INTERACTION MANAGMENT ................................................ 35

3.3. TRANSZFORMÁCIÓK .......................................................... 39

4. TERVEZÉSI MINTÁK (DESIGN PATTERNS) ........................................ 42

4.1. SINGLETON TERVEZÉSI MINTA ............................................. 42

4.2. REGISTRY PATTERN .......................................................... 43

4.3. MVC (MODEL VIEW CONTROLLER) PATTERN ........................ 43

Page 3: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 3 -

5. HÁLÓZATOK SZERKESZTÉSE ........................................................ 44

5.1. KOMPONENSEK BESZÚRÁSA, SZELEKCIÓK ............................. 44

5.2. VEZETÉKEZÉS, KOMPONENSEK ÖSSZEKÖTÉSE ....................... 46

5.3. KOMPONENSEK ÉRTÉKEINEK BEÁLLÍTÁSA .............................. 47

6. ANALÍZIS .................................................................................. 48

6.1. BESZÚRHATÓ KOMPONENSEK, KARAKTERISZTIKÁK .................. 48

6.1.1. KIRCHHOFF – TÍPUSÚ HÁLÓZATOK KOMPONENSEI ........ 48

6.1.2. JELFOLYAMHÁLÓZATOK KOMPONENSEI ...................... 54

6.2. CSOMÓPONTI POTENCIÁLOK MÓDSZERE ................................ 57

6.2.1. CSOMÓPONTI POTENCIÁLOK, MÁTRIXEGYENLET ........... 57

6.2.2. EGY PÉLDA MEGOLDÁSÁNAK LEVEZETÉSE .................. 61

7. KONKLÚZIÓ .............................................................................. 68

BIBLIOGRÁFIA ............................................................................... 69

Page 4: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 4 -

1. BEVEZETÉS

A dolgozat témája egy JAVA nyelven írt hálózatanalízis program, ami rendelkezik egy felhasználóbarát grafikus felülettel (1.1. ÁBRA), és megvalósítja az összes olyan megszokott kényelmi funkciót, amit a többi hálózatanalizáló program is implementál. Továbbá az objektum-orientált fejlesztésnek köszönhetően kihasználja a JAVA nyelv optimális tulajdonságait, a forráskód logikailag szétkülöníthető csomagokra és osztályokra bontását, valamint a nyelv hordozhatóságából és architektúra- függetlenségéből következő platformfüggetlenséget, amiből következően a program az összes, a JAVA által támogatott operációs rendszer alatt használható.

Az programot ANA (Advanced Network Analysis) névre kereszteltem. Fejlesztését 2008. februárjában kezdtem. Azóta a grafikus felhasználói felület jelentős része és a legtöbb kényelmi funkció implementálása, továbbá az első analízis pont, a csomóponti potenciálok, a komponenseken eső feszültségek és folyó áramok, valamint a teljesítményeik számításának integrálása is befejeződött.

A dolgozat a 2008 tavaszi ANA 1.0 – Advanced Network Analysis című dolgozat folytatása. Az előző dolgozat témája a program felhasználói, szakterületi, funkcionális és nem funkcionális követelményeinek feltárása, valamint a felhasználói felület alapjainak bemutatása [23].

A nyár folyamán a program struktúrája újratervezés és átalakítás alá került. A régi megvalósítás helyett számos területen optimálisabb

1.1. ÁBRA: A PROGRAM GRAFIKUS FELHASZNÁLÓI FELÜLETE

Page 5: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 5 -

megoldások implementációja történt [20–22, 24]. Változások történtek a komponensek felépítésében, megjelenítésében és tárolásában, valamint a transzformációkban és a szerkesztőfelület eseménykezelésben. A dolgozat első fele ezeket az újításokat tárja fel, majd a második rész az első integrált analízis pontok alapjait és implementációját.

Page 6: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 6 -

2. VÁLTOZÁSOK A PROGRAM STRUKTURÁLIS FELÉPÍTÉSÉBEN

Egy nagyobb program elkészítésekor törekedni kell az áttekinthető, könnyen módosítható, és továbbfejleszthető kód előállítására. Ennek eléréséhez a programokat megfelelően tagolni kell. A tagolásnak már az objektumorientált modellezés és a programtervezés szintjén meg kell nyilvánulnia. Az összetartozó osztályokat ezért – a modell és a működés szerint – csomagokba kell szervezni. A csomagokból képezhető egy magas szintű zárt egység.

Minden csomag egy önálló névteret vezet be, amelyben egyedivé teszi a benne található osztályok szerkezetét. A csomag alkalmas a hozzáférési kategóriák kezelésére, és a csomagszintű hozzáférési kategóriával definiált osztályok, interfészek, metódusok csak a csomagon belül lesznek elérhetőek.

A csomagoknak nyelvi szinten a fordítási egységek (osztályok, interfészek) adnak konkrét tartalmat. Egy csomaghoz tartozó fordítási egységben található a csomag forráskódja. Ez a csomagszerkezet hierarchikus – hasonlóan az állományok könyvtárszerkezetben való elhelyezéséhez – így a csomagok között logikai alá-fölérendeltségi viszony is előfordulhat. Ekkor alcsomagnak nevezzük a csomagban található másik csomagot. Minden csomag tetszőleges számú alcsomagot tartalmazhat [13].

Az újratervezés során megváltoztak az osztályok feladatai és felépítése. Számos osztály új vagy kiegészített tevékenységet lát el az előző verzióban szereplő osztályokhoz képest, továbbá számos nagyobb terjedelmű osztály, kisebb logikailag elkülöníthető osztályok létrehozását indokolta. Ennek köszönhetően megváltoztak az osztályok közötti logikai összefüggések és kapcsolatok, ezért a forráskód csomagokra tagolását is át kellett alakítani új, a jelenlegi logikai egységeknek megfelelő modulok hierarchiájára [8].

Ez a fejezet az új csomag-hierarchia fő egységeit írja le (2.1. ÁBRA) a program UML osztály - diagramjainak illusztrálásával, továbbá az osztályok által megvalósított legfontosabb funkciókat foglalja össze [10 - 16], [19].

2.1. ÁBRA: AZ ÚJ CSOMAG-HIERARCHIA FŐ EGYSÉGEI

Page 7: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 7 -

2.1. ANACOMPONENTPROTOTYPE CSOMAG

A programban a hálózatok minden komponenséhez tartozik egy prototípus, ami tartalmazza a komponens tulajdonságait (pl. azonosító, név, ikon), beállításait (pl. típus, érték, láthatóság) és a felhasználói felületen megjelenő grafikus képét. Különböző XML (Extensible Markup Language) fájlok tárolják a komponensek ezen attribútumait.

A fejlesztés során az XML használat mellett szólt, hogy az XML dokumentumok közönséges szöveges állományok, melyek könnyen, akár egy egyszerű szövegszerkesztővel is szerkeszthetőek, továbbá a programon belül önálló, külön egységeket alkotnak (LÁSD 2.4. FEJEZET), így az általuk tárolt adatok könnyen, a programba való belenyúlás nélkül módosíthatóak. Ez azért volt fontos, mert a komponenseken kívül, a grafikus felhasználói felület főbb komponensei (menük, eszköztárak) is XML fájlokban tárolt attribútumok alapján épülnek fel (LÁSD 2.6. FEJEZET), így például egy új menüpont hozzáadása a program módosítása nélkül megtehető.

Az XML fájlokban tárolt prototípus listát és a prototípusokat az ’ANAComponentPrototypeStore’ osztály validálja, és ha megfelelő a szintaktika akkor az alábbi osztályok meghívásával betölti a komponenseket.

A tulajdonságok, beállítások és a grafikus képek az ’ANAComponentPrototype’ osztály metódusain keresztül érhetők el. Minden prototípus – objektum ezen osztály egy példánya. Az objektumok felépítése az alábbi osztályok segítségével történik.

Az ’ANAComponentShapeFactory’ osztály felépíti a megadott alakzatokból a komponensek grafikus képeit. Az ’ANAComponentPrototypeFactory’ osztály pedig felépíti az egyes prototípusok objektumait, beállítja a tulajdonságaikat és az attribútumaikat az XML fájlokban tároltak alapján, valamint az előző osztály hívásával létrehozza és tárolja a grafikus objektumaikat (2.1.1. ÁBRA).

2.1.1. ÁBRA: ANACOMPONENTPROTOTYPE CSOMAG

Page 8: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 8 -

2.2. ANADOCUMENT CSOMAG

A program által szerkesztett hálózatok mentését segítik elő az ’ANADocument’ csomag osztályai (2.2.1. ÁBRA). A hálózatok tulajdonságait XML file-ok tárolják és egy zip file-ba lesz kimenthető a szerkesztett hálózat ’*.ana’ file kiterjesztéssel. Ez a csomag és az általa megvalósítandó funkciók jelenleg is fejlesztés alatt állnak.

2.3. ANALYSIS CSOMAG

Az analízis funkciók implementálása a grafikus felhasználói felület újratervezése és átalakítása után kezdődött idén szeptemberben. Az ’Analysis’ csomag tárolja az analízis pontok logikailag különválasztható csomagjait és ezekben a megvalósító osztályokat (2.3.1. ÁBRA).

A hierarchiában a gyökérkönyvtárban található az ’Analysis’ absztrakt osztály, mely szülő osztálya az összes analízis osztálynak. A leszármaztatott osztályok ezen osztály ’start()’ és ’finish()’ metódusát definiálják felül, melyek segítségével a program tudja, hogy mely tevékenységeket kell megvalósítania egy analízis pont elindításakor és befejezésekor.

Az objektumorientált fejlesztés során az öröklődés és a többalakúság nagyon fontos szempont. Az ősosztályok összehangolják a leszármazott osztályok működését, vagyis definiálják a közös műveleteket és megadják a szabványos üzenetek prototípusait. Ezzel egy egységben kezelhető osztályhierarchiát adhatnak a programozó kezébe. Az osztályhierarchia legtetején szereplő osztályok szerepe általában az, hogy a leszármazottaknak előírja, hogy milyen üzenetekre válaszoljon. A leszármazott osztályokból létrehozott példányok a „keresd az őst” elvnek megfelelően megkeresik a hozzájuk tartozó üzenet végrehajtásának definícióját. Sokszor azonban az osztályszerkezet tetején álló osztály – a fejlesztendő feladatból kifolyólag – csak egy elméleti fogalom, vagyis csak teljesen általános fogalmakkal írható le, azaz hiányoznak belőle a konkrétumok.

Az ilyen általános érvényű osztályokhoz absztrakt osztályokat definiálunk. Az absztrakt osztályokban – és csakis itt – megadhatunk absztrakt metódusokat is. Az absztrakt metódusok törzs nélküli metódus

2.2.1. ÁBRA: ANADOCUMENT CSOMAG

Page 9: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 9 -

deklarációk. A metódusokat a leszármazott osztályokban kötelező felüldefiniálni, megvalósítani [13].

Minden analízis pont alcsomagában található egy ’Interactions’ alcsomag (2.3.1. ÁBRA), mely a szerkesztői felület adott analízis ponthoz tartozó interakcióit valósítja meg (pl. csomóponti potenciáloknál a különböző értékek megjelenítése a dialógusablakban, a felületen történő egérkattintás esemény célja (komponens vagy vezeték) alapján). Az interakció-kezelés az egyik legfontosabb újratervezett modul, melyet a 3.2. FEJEZET egy külön tárgyal.

2.3.1. ÁBRA: ANALYSIS CSOMAG

Page 10: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 10 -

2.4. DATA CSOMAG

A ’Data’ csomag (2.4.1. ÁBRA) logikailag szétválasztható alcsomagokra osztottan tárolja a programhoz tartozó XML file-okat.

Az ’ANAComponents’ alcsomag tartalmazza a komponensek XML file-jainak szintaktikai deklarációját tartalmazó ’ANAComponent.dtd’ file-t, valamint a komponens listát tartalmazó ’ANAComponents.xml’ file-t, valamint a jelfolyam-, és a Kirchhoff – típusú hálózatok komponenseinek XML file-jait tartalmazó ’Network’ és ’System’ alcsomagokat.

A ’*.dtd’ kiterjesztésű fájlok dokumentum típus deklarációk (Document Type Declarations).

Egy XML dokumentum elején megadható, hogy az adott dokumentum milyen típusú, vagyis milyen elemek és entity-hivatkozások szerepelhetnek benne. A DTD-kben vannak felsorolva az elemtípusok, megadva az elemek tartalmára vonatkozó szabályokat, és az entity deklarációk.

A DTD segítségével a dokumentum ellenőrizhető, a benne leírt szabályokat egy XML editor segítségével be lehet tartatni.

A ’Dialogs’ alcsomag a dialógusablakok adatait és összetevőit tartalmazó XML file-okat tárolja, az ’Images’ mappa a menük és az eszköztárak felépítéséhez szükséges képeket, végül az utolsó két alcsomag a ’Menus’ és ’ToolBars’ alcsomag a menük és eszköztárak metaadatait tartalmazza.

2.5. GUI (GRAPHICAL USER INTERFACE) CSOMAG

A ’GUI’ csomag tárolja a grafikus felhasználói felület objektumait logikailag szétválasztható alcsomagokra osztottan (2.5.1. ÁBRA).

2.4.1. ÁBRA: A DATA CSOMAG ÉS ALCSOMAGJAI

Page 11: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 11 -

A ’Dialogs’ alcsomag tárolja a különböző dialógusablakok objektumait (2.5.2. ÁBRA). Az objektumokat az XML file-okból a ’DialogFactory’ osztály (LÁSD 2.6 FEJEZET) építi fel.

A ’MainWindow’ alcsomag (2.5.3. ÁBRA) a program főablakának legnagyobb összetevőit tartalmazza, az objektumok draggeléséhez (egérrel való vonszolás) szükséges felületet megvalósító ’ComponentDragPane’ osztályt, a program betöltésekor megjelenő felületet megvalósító ’WelcomePanel’ osztályt, valamint a főablak összes objektumát példányosító ’MainWindow’ osztályt.

2.5.1. ÁBRA: A GUI CSOMAG ALCSOMAGJAI

2.5.2. ÁBRA: GUI/DIALOGS CSOMAG

Page 12: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 12 -

A ’Menus’ (2.5.4. ÁBRA), ’ToolBars’ (2.5.5. ÁBRA) és ’StatusBar’ (2.5.6. ÁBRA) alcsomagok tárolják a program különböző eszköztárait, menüit és az állapotsort megvalósító osztályokat. Végül a ’Worksheets’ alcsomag (2.5.7. ÁBRA) tárolja a programon belül futó összes munkalap kezelését irányító ’Worksheets’ osztályt.

2.5.3. ÁBRA: GUI/MAINWINDOW CSOMAG

Page 13: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 13 -

2.5.4. ÁBRA: GUI/MENUS CSOMAG

2.5.5. ÁBRA: GUI/TOOLBARS CSOMAG

2.5.6. ÁBRA: GUI/STATUSBAR CSOMAG

Page 14: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 14 -

2.6. HELPERS CSOMAG

A program számos segéd osztályt használ futás közben. Ezek az osztályok találhatóak a ’Helpers’ csomagban az adott funkcióknak megfelelően logikailag elkülönítetten (2.6.1. ÁBRA).

Az ’Analysis’ (2.6.2. ÁBRA) alcsomag reprezentálja az analízis pontok futtatásához szükséges segédfunkciókat. Itt találhatóak meg a matematikai segédeszközök, a mátrixműveleteket (szorzás, konjugált képzés, inverz mátrix képzés, Gauss – Jordan – elimináció) végző osztályok, valamint a hálózat felépítését és a csomópontok létrehozását segítő ’LogicalNode’ és ’NodeModel’ osztályok.

2.5.7. ÁBRA: GUI/WORKSHEETS CSOMAG

2.6.1. ÁBRA: HELPERS CSOMAG ALCOMAGJAI

Page 15: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 15 -

A ’GUI’ csomag tartalmazza az ’Adapters’ (2.6.3. ÁBRA), ’Factories’ (2.6.4. ÁBRA), ’Graphics’ (2.6.5. ÁBRA) és ’Wrappers’ (2.6.6. ÁBRA) alcsomagokat.

Az ’Adapters’ (2.6.3. ÁBRA) alcsomag tartalmazza többek között azt az osztályt, amely a ’Swing’ eseménykezelését segíti oly módon, hogy számos ’listener’ interfészt implementál üres metódusokkal. A specifikus eseménykezelő osztályok pedig ezen metódusok közül definiálják felül azokat amelyeket az adott feladat megkíván.

2.6.2. ÁBRA: HELPERS/ANALYSIS CSOMAG

Page 16: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 16 -

2.6.3. ÁBRA: HELPERS/GUI/ADAPTERS CSOMAG

Page 17: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 17 -

A ’Wrappers’ (2.6.4. ÁBRA) alcsomag osztályai a grafikus felület elemeinek (menü, eszköztár) nyújtanak egy olyan interfészt, amelyen keresztül azok egyszerűen, futási időben módosíthatóak.

A ’Factories’ alcsomag (2.6.5. ÁBRA) azokat az osztályokat tartalmazza, melyek az XML fájlokból felépítik a fájloknak megfelelő objektumokat, végül a ’Graphics’ csomag (2.6.6. ÁBRA) pár interfészt és absztrakt osztályt foglal egységbe, amik a különböző grafikus funkciókat (pl. komponensek transzformációi) segítik.

2.6.5. ÁBRA: HELPERS/GUI/FACTORIES CSOMAG

2.6.4. ÁBRA: HELPERS/GUI/WRAPPERS CSOMAG

Page 18: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 18 -

2.6.6. ÁBRA: HELPERS/GUI/GRAPHICS CSOMAG

Page 19: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 19 -

Végül a ’Utilities’ alcsomag (2.6.7. ÁBRA) tárolja a program egyéb segítő funkcióit végző osztályokat, mint például az időkezelést végző ’DateTimeUtils’ osztályt, a képek betöltését egyszerűen lehetővé tevő ’ImageLoader’ osztályt, vagy az ’ObjectConverter’ osztályt, ami a beállítások XML file-ban való tárolásához szükséges objektumokat alakítja sztringgé, illetve betöltéskor a sztringeket objektumokká.

Az ’OSDetector’ osztály az operációs rendszer detektálásában vállal szerepet, konstansai között vannak generikus és specifikált operációs rendszer típust jelölő konstansok (pl. OS_MAC_OS, OS_MAC_OS_X), amelyek úgy vannak definiálva, hogy a specifikus konstansok a generikus konstansokkal bitszintű “és” művelettel összekapcsolva ’true’ értéket adnak.

A ’ResourceLoader’ osztály bármilyen erőforrás betöltésére képes a JAR (Java ARchieve) file-ból. A JAR fájl egy olyan ZIP fájl, amely a java osztályokat és a hozzájuk tartozó meta adatokat tartalmazza.

2.6.6. ÁBRA: HELPERS/UTILITIES CSOMAG

Page 20: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 20 -

A program nagyobb és fontosabb objektumainak referenciáit a ’Refs’ osztály szolgáltatja, ami segíti ezen objektumok egyszerűbb elérését.

2.7. LOADER CSOMAG

A ’Loader’ csomag (2.7.1. ÁBRA) tartalmazza a program futtatható osztályát, az ’ANA’ osztályt, ami betölti és megjeleníti a grafikus felhasználói interfészt, majd betölti a hálózati elemeket.

2.8. SETTINGS CSOMAG

A ’Settings’ csomag (2.8.1. ÁBRA) a beállítások eltárolásáért és betöltéséért felelős osztályokat tartalmazza, az alapbeállítások a ’Settings’ osztály statikus ’Setting’ típusú ’defaultSettings’ tömbjében tároltak szerint jönnek létre.

A program beállításait az ’ANASettings’ osztály kezeli, amely a ’SetingsManager’ osztály leszármazottja. Az ’ANASettings’ azzal a funkcióval bővíti ki a ’SettingsManager’ osztályt, hogy képes betölteni és elmenteni a beállításokat egy XML fájlba.

Minden megnyitott munkalaphoz külön ’SettingsManager’ példány tartozik, amely a munkalap aktiválásakor szinkronizálja az ’ANASettings’ objektumot. Ha a program egy beállítását megváltoztatjuk, pl. menüből vagy egy eszköztárból, akkor az adott beállítás először az ’ANASettings’ objektumban változik meg, majd a GUI szinkronizálja az aktív munkalap ’SettingsManager’ példányát is.

A Settings osztály tárolja a program alapértelmezett beállításait (’Setting’ objektumait). Minden egyes ’Setting’ objektum tartalmaz egy flaget arra vonatkozóan, hogy őt kell-e szinkronizálni, vagy sem.

2.7.1. ÁBRA: LOADER CSOMAG

Page 21: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 21 -

2.9. WORKSHEET CSOMAG

A ’Worksheet’ csomag (2.9.1. ÁBRA) a munkalapok összetevőit és felépítését megvalósító osztályokat tartalmazza, továbbá egy munkalap minden elemét összefogó ’Worksheet’ osztályt.

2.8.1. ÁBRA: SETTINGS CSOMAG

2.9.1. ÁBRA: WORKSHEET CSOMAG CSOMAGJAI

Page 22: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 22 -

Ezen belül a ’Graph’ csomag (2.9.2. ÁBRA) tartalmazza a hálózat gráfjának felépítését reprezentáló ’Graph’ osztályt és tartalmazza a ’Components’ alcsomagot (2.9.2. ÁBRA), amiben a gráf komponenseit reprezentáló osztályok találhatóak.

2.9.2. ÁBRA: WORKSHEET/GRAPH CSOMAG

Page 23: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 23 -

Az absztrakt ’GraphComponent’ osztály tárolja a gráf-komponensek alaptípusait, melyek a következők lehetnek: PIN (a komponensek kivezetései), COMPONENTGRAPHIC (a komponensek grafikus képei), ANACOMPONENT (komponensek elemeit összefogó osztály), JUNCTION (csomópont), CONNECTION (vezeték) és LABEL (címke). A ’GraphComponent’ osztály leszármazottja a ’InteractiveComponent’ osztály, mely tartalmazza a komponensek egymással szembeni prioritásait egy hálózatban, továbbá az ebből származó objektumok képesek a grafikus felületen interakciókat kiváltani (LÁSD 3.2. FEJEZET). Ebből az osztályból származik le a ’GraphicalComponent’ osztály mely a transzformálhatóságot és a megjeleníthetőséget biztosítja. A csomag tartalmazza továbbá a ’Subscription’ osztályt, melynek segítségével az interaktív komponensek feliratkozhatnak interakciók kiváltására. A ’Subscription’ osztály példányai prioritásokkal rendelkeznek és tárolják a megfelelő komponensek geometriai tulajdonságait, amelyek az interakciók detektálására szolgálnak. A komponens hierarchia felépítése és a ’Subscription’-ök is az újratervezett modulok közé tartoznak, így ezekkel a témákkal is külön fejezetek foglalkoznak.

A ’Graph’ csomagon belül, az ’ANAComponent’ csomagban (2.9.4. ÁBRA) találhatóak meg a program komponenseit reprezentáló osztályok (LÁSD 3.1.1. FEJEZET). A ’Connection’ (2.9.3. ÁBRA) és a ’Node’ (2.9.5. ÁBRA) csomagokban pedig a vezetékeket és a csomópontokat előállító és kezelő osztályok (LÁSD 3.1.2. ÉS 3.1.3. FEJEZET).

2.9.3. ÁBRA: WORKSHEET/GRAPH/COMPONENTS/CONNECTION CSOMAG

Page 24: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 24 -

2.9.4. ÁBRA: WORKSHEET/GRAPH/COMPONENTS/ANACOMPONENT CSOMAG

Page 25: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 25 -

A ’Graphics’ csomag (2.9.6. ÁBRA) tárolja a ’DrawArea’ osztályt, ami a rajzfelületet és a rajzfelületre való rajzolást biztosítja, a ’Grid’ osztályt, mely megvalósítja a rácsfelület kirajzolását a szerkesztő felületre, valamint az egérmutató illesztését a rácspontokra, végül a ’Transformer’ osztályt, mely a komponensek transzformációit hajtja végre.

2.9.5. ÁBRA: WORKSHEET/GRAPH/COMPONENTS/NODE CSOMAG

Page 26: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 26 -

A ’GUI’ csomag (2.9.7. ÁBRA) osztályai megvalósítják a szerkesztő felület egérrel való görgethetőségét, valamint a ’Logger’ ablakot, ami a program számos tevékenységét jeleníti meg.

2.9.6. ÁBRA: WORKSHEET/GRAPHICS CSOMAG

2.9.7. ÁBRA: WORKSHEET/GUI CSOMAG

Page 27: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 27 -

Az ’Interactions’ csomag (2.9.8. ÁBRA) tartalmazza a szerkesztő felület interakció kezelését segítő osztályokat. Ezek az osztályok is az újratervezett részekhez tartoznak, így a részleteit külön fejezet tárgyalja.

2.9.8. ÁBRA: WORKSHEET/INTERACTIONS CSOMAG

Page 28: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 28 -

2.10. XMLTOOLS CSOMAG

Az ’XMLTools’ csomag (2.10.1. ÁBRA) az XML file-ok betöltésének feladatát látja el. A Java API (Application Programming Interface) alapértelmezett XML feldolgozóját (’Parser’) használja. Ez a ’Parser’ validáló típusú, azaz csak olyan XML file-ok feldolgozását végzi el, amelyek tökéletesen megfelelnek az XML szabványainak és az opcionálisan jelenlévő doctype deklarációnak.

A használt XML file-okhoz saját készítésű doctype deklarációk tartoznak, melyek a JAR-ban találhatóak. Ezek eléréséhez saját entitás feloldó (entity resolver) osztály létezik (’DTDResolver’).

A ’Parser’ osztály az XML file-okat a ’TreeFactory’ ’DefaultHandler’ osztályt felüldefiniáló osztály segítségével dolgozza fel, és egy ’Tag’ és ’PCData’ objektumokból álló fát készít, amely reprezentálja az XML dokumentumot. Ez a fa később a ’Child’ ősosztály és ennek leszármazottjainak (’Tag’,’PCData’) metódusaival könnyen bejárható.

A ’Tag’ osztály egy XML taget, a ’PCData’ osztály pedig szöveges adatot reprezentál [9].

2.10.1. ÁBRA: XMLTOOLS CSOMAG

Page 29: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 29 -

3. ÚJRATERVEZÉS (REFACTORING)

Az újratervezés (refactoring) az a folyamat, amelynek során úgy változtatunk meg egy szoftverrendszert, hogy nem változik meg a kód viselkedése, de javul annak belső szerkezete. Ez a kód kitisztításának olyan fegyelmezett módja, ami minimálisra csökkenti a programhibák bekerülésének esélyét. Lényegében az újratervezés során egy már megírt kód felépítését javítjuk.

Újratervezés nélkül előbb-utóbb elkerülhetetlenül romlik a program szerkezete. Ahogy a programozók megváltoztatják a kódot – rövid távú célok megvalósítása érdekében, vagy a kód szerkezetének teljes átalakítása nélkül -, a kód elveszíti eredeti szerkezetét, és nehezebb lesz felismerni azt a kódot olvasva. Az újratervezés a kód rendbetétele: azért végezzük, hogy eltávolítsunk olyan darabokat, amelyek nem megfelelő helyen vannak. A kód szerkezetének összekuszálódása halmozott károkkal jár: minél nehezebb átlátni a kód szerkezetét, annál nehezebb módosítani a programot, és annál gyorsabban romlik. A rendszeres újratervezés segít formában tartani a kódot.

Az újratervezésnél megváltozik a munkafolyamatok egyensúlya: tervezést nem kizárólag a munka elején végzünk, hanem a fejlesztés során folyamatosan. A rendszer építése során jövünk rá, hogyan javítható a szerkezet, és ez olyan felépítéshez vezet, ami a további fejlesztés során is megfelelő marad [18 (3.1. ábra)].

Az alábbi fejezet tárgyalja az újratervezett csomagokat.

3.1. KOMPONENS - HIERARCHIA

A komponens - hierarchia újratervezését azért kellett véghezvinni, mert a program korábbi verziója kezdetleges megoldásokat használt, melyek sok később felmerülő igényt technikailag nem tudtak kielégíteni.

Az új komponens – hierarchia egy konzisztensen felépített jól strukturált modell (3.1.1. ÁBRA).

3.1. ÁBRA: MARTIN FOWLER: REFACTORING

Page 30: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 30 -

A ’GraphComponent’ osztály minden hálózatban szereplő komponens vagy egyéb objektum ősosztálya. Egyedi azonosítókért felelős, valamint különböző objektumokat megkülönböztető típus konstansokat tartalmazza. Ebből az osztályból közvetlenül származik az ’ANAComponent’ osztály.

Az ’InteractiveComponent’ osztály a ’GraphComponent’ osztály leszármazottja. Deklarálja a különböző objektumok interakciós prioritását és lehetővé teszi ennek lekérdezését, valamint tárol egy ’Subscription’ osztály referenciát (lásd később). Összefoglalva tehát a leszármazottjai számára lehetővé teszi interakciók kiváltását.

3.1.1. ÁBRA: A KOMPONENSEK HIERARCHIÁJA

Page 31: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 31 -

A ’GraphicalComponent’ osztály az ’InteractiveComponent’ osztályból származik és egyetlen absztrakt metódust vezet be, amely egy ’Transformable’ interfészt (LÁSD 3.3. FEJEZET) megvalósító osztály elérését teszi lehetővé. Az ebből az osztályból származó osztályok megjelennek a rajzfelületen.

3.1.1. ANACOMPONENT

A ’Graph’ csomagon belüli ’ANAComponent’ csomag (3.1.1.1. ÁBRA) fűzi össze azokat a logikailag szorosan összetartozó osztályokat, amelyekből a hálózatokban felhasználható komponensek állnak.

3.1.1.1. ÁBRA: AZ ‘ANACOMPONENT’ CSOMAG ÉS OSZTÁLYAI

Page 32: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 32 -

Az ’ANAComponent’ osztály az alapvető adatokat és refernciákat tartalmazza egy adott komponensről. A teljesség igénye nélkül, az attribútumokat, a prototípus referenciáját, a címke tartalmát és a komponens grafikáit (’ANAComponentGraphic’).

Az ’ANAComponentGraphic’ osztály megvalósítja a ’Transformable’ interfészt, amely olyan metódusokat deklarál, amely a célobjektum geometriai transzformációit teszi lehetővé. Mivel egy komponens több grafikát is tartalmazhat (pl. vezérelt források primer és szekunder kapuja) és minden grafikához egyedi alkatrészlábak (’Pin’ objektumok, LÁSD 3.1.2. FEJEZET) tartoznak, ezért az alkatrészlábak nyilvántartását is ez az osztály végzi.

A komponens grafikák alakzatokból (’ANAComponentShape’) épülnek fel, amelyek szintén megvalósítják a ’Transformable’ interfészt. Az ’ANAComponentGraphic’ osztály ezeket az alakzatokat együttesen transzformálja.

Az ’ANAComponentShape’ a ’TransformableShape’ osztályból származik, ami lehetővé teszi a JAVA alap alakzatainak egyszerű saját középponthoz és egy tetszőleges ponthoz viszonyított transzformációját (LÁSD 3.3 FEJEZET). Minden ’ANAComponentShape’ rendelkezik egyéni kitöltő színnel, vonalszínnel, vonalvastagsággal, stb.

A komponensek attribútumait az ’ANAComponentAttribute’ osztály kezeli. Az attribútumok beállítása és lekérdezése ezen az osztályon keresztül történik. Minden attribútum rendelkezik típussal, azonosítóval, névvel és értékkel.

3.1.2. NODE

A ’Node’ csomagban (2.9.5. ÁBRA) azok az osztályok találhatóak amelyek logikailag és/vagy grafikailag csomópontokat reprezentálnak a gráfban vagy a rajzfelületen. Minden ilyen osztály őse a ’Node’ osztály, amely egy logikai csomópontot reprezentál, nyilvántartja a hozzá kapcsolódó vezetékeket, valamint definiál három absztrakt metódust, amelyek lehetővé teszik a csomópont rajzfelületen lévő pozíciójának lekérdezését, valamint lekérdezését is, hogy a csomópont megfelelően van-e csatlakoztatva a hálózathoz. A ’Node’ osztály a ’GraphicalComponent’ leszármazottja, tehát képes interakciókat kiváltani és elkérhető tőle egy transzformálható komponens.

A ’Junction’ osztály a ’Node’ osztály leszármazottja és a vezetékek közti töréspontokat reprezentálja.

A ’Pin’ absztrakt osztály szintén a ’Node’ osztály leszármazottja és a komponensek lábait reprezentálja. Azért absztrakt, mert ez az osztály még nem definiálja a pin alakját, ami lehet pontszerű, vagy egyéb alakzat (’NodePoint’ és ’NodeShape’). A ’Pin’ osztály polaritással és egyéni címkével

Page 33: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 33 -

rendelkezik, valamint két belső, belőle származó osztályt definiál (3.1.2.1. ÁBRA).

A ’Pin.Point’ belső osztály egy pontszerű alkatrészlábat ír le, amelynek a ’Transformable’ adattagja egy ’NodePoint’ objektum. A ’NodePoint’ objektum egy olyan ’TransformablePoint’ (LÁSD 3.3. FEJEZET) leszármazott, amelyen ha transzformációkat hajtunk végre, invalidálja a csomóponthoz kapcsolódó vezetékek grafikus leírását. Erre azért van szükség, mert a programban a rajzolás gyorsításának érdekében gyorsítótárazza a vezetékek alakzatát, amelyet érvényteleníti kell, ha a vezeték valamely végpontját például eltoljuk a rajzfelületen.

A ’Pin.Circle’ belső osztály egy kör alakú alkatrészlábat reprezentál, amire a jelfolyam hálózatok bizonyos komponenseinél van szükség (pl. összegző -, és szorzócsomópont) amelyekhez előre nem meghatározott számú vezeték kapcsolódhat (3.1.2.2. ÁBRA). Ennek a ’Transformable’ adattagja a ’NodeShape’, amely az előbb leírt okok miatt szükséges.

3.1.2.1. ÁBRA: A ‘PIN’ OSZTÁLY ÉS BELSŐ OSZTÁLYAI

3.1.2.2. ÁBRA: PÉLDA AZ ÖSSZEGZŐCSOMÓPONTOKRA

Page 34: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 34 -

3.1.3. CONNECTION

A ’Connection’ osztály (3.1.3.1. ÁBRA) egy vezetéket reprezentál amely két ’Node’ objektum között teremt logikai kapcsolatot. Ez az osztály felelős a vezeték grafikájának legenerálásáért is, továbbá tárolja a végpontjainak referenciáját és egyéb metódusokat is biztosít, mint például a ’getSnappingPoint()’ metódus, amelyet egy koordináta paraméter megadásával meghívva, visszakapjuk azt a pontot, amely eleme a vezeték egyenesének és legközelebb esik az argumentum koordinátájához. Ez a metódus például a vezetékezéshez szükséges, amikor egy vezetéket szeretnénk bekötni egy másik vezetékbe.

3.1.3.1. ÁBRA: A ‘PIN’ OSZTÁLY ÉS BELSŐ OSZTÁLYAI

Page 35: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 35 -

3.2. INTERACTION MANAGMENT

A második programrész, amit teljesen újra kellett tervezni, az a szerkesztőfelület interakcióinak kezelése. Erre azért volt szükség, mert rengeteg komplex interakciót kell kezelni (mint például komponensek kijelölése, draggelése, törlése, összekötése) és a korábbi megközelítés ezt nem tette lehetővé. Moduláris, könnyen bővíthető interakciók kezelésére volt szükség.

E gondolkodásmd eredménye lett az ’Interaction’ (3.2.1. ÁBRA), az ’InteractionManager’ (3.2.2. ÁBRA), az ’InteractionMode’ (3.2.4. ÁBRA), az ’InteractionConstants’ (3.2.5. ÁBRA), az ’InteractionTrigger’ és a ’Subscription’ osztály, valamint az ’Implementations’ csomag (3.2.6. ÁBRA) és osztályai, melyek az ’Interaction’ osztályt kiterjesztve, interakciókat implementálnak.

Az ’InteractionManager’ osztály (3.2.2. ÁBRA) kezeli a ’Swing’ (a JAVA egy alapértelmezett osztálykönyvtára, amely tartalmazza a grafikus felhasználói felület előállítására alkalmas osztályokat, melyekkel gazdag grafikai megoldások és interaktivitások vihetők a fejlesztendő alkalmazásokba) nyers eseményeit, valamint a komponensek által beregisztrált ’Subscription’ osztályt. Egy-egy nyers esemény érkezésekor végigiterál a beregisztrált ’Subscription’ osztályokon, és megállapítja, hogy az adott eseményre bekövetkező interakciót melyik ’Subscription’ által képviselt objektumon kell végrehajtani. Minden ’Subscription’ biztosít az ’InteractionManager’ számára egy geometriai alakzatot. Egérkattintás esetén például, az ’InteractionManager’ megvizsgálja, hogy a kattintás koordinátája mely ’Subscription’-ök geometriai formájába esik bele. Ha több ilyen is van, akkor a ’Subscription’-ök prioritása (LÁSD ’INTERACTIVECOMPONENT’, 3.1. FEJEZET) dönti el, hogy melyik ’Subscription’ továbbítódik az ’Interaction’ felé.

3.2.1. ÁBRA: AZ ‘INTERACTION’ OSZTÁLY

Page 36: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 36 -

A cél ’Subscripton’ megahatározása után a nyers esemény és egyéb aktuális változók értéke (például interakciós mód (3.2.4. ÁBRA), vagy triggerek) alapján az ’InteractionManager’ összeállít egy bitvektort, ami a végrehajtandó interakciók kiválasztásához szükséges.

Ezután az ’InteractionManager’ végigiterál a beregisztrált ’Interaction’ objektumokon, és megnézi (’matches()’ metódus segítségével), hogy azok előredefiniált szignatúrája illik-e az előbb felépített bitvektorra. Amennyiben igen, akkor az aktuális szignatúrát, a nyers eseményt, valamint a cél ’Subscription’-t átadva meghívja az ’Interaction’ osztály ’excecute()’ metódusát.

Egy konkrét interakció implementációja a következő módon történik. Egy új osztályt létrehozva az ’Interaction’ osztályt kell leszármaztatni és a konstruktorban az ’Interaction’ osztály metódusainak segítségével meg kell határozni az interakciók futtatásához szükséges feltételeket.

3.2.1. ÁBRA: AZ ‘INTERACTIONMANAGER’ OSZTÁLY

Page 37: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 37 -

Egy interakció akkor futhat le, ha minden szükséges feltétel teljesül (’addNecessaryConditions()’ metódus) és legalább egy elégséges feltétel is teljesül (’addSufficientConditions()’ metódus) valamint a szükséges kizáró feltételek (’addNecessaryExclusiveConditions()’ metódus) közül legalább egy nem teljesül és végül az elégséges kizáró feltételek (’addSufficientExclusiveConditions()’ metódus) közül egyik sem teljesül (3.2.1. ÁBRA).

Az interakció által végrehajtandó feladatokat az ’excecute()’ metódus felüldefiniálásával deklarálhatjuk.

Egy konkrét példa a programból:

public ClickSelect() { addNecessaryCondition(EVENT_MOUSE_CLICK); addNecessaryCondition(MOUSE_BUTTON_LEFT); addNecessaryCondition(MODE_CLICK_SELECTION); addSufficientExclusiveCondition(DESTINATION_EMPTY); }

A fenti példa (3.2.3. ÁBRA) a komponensek kijelölésére szolgáló interakció feltételeit állítja be, melyek a következők:

− szükséges feltétel: egérkattintás esemény − szükséges feltétel: az esemény a bal gombbal történjen − szükséges feltétel: az aktuális interakciós mód legyen

‘CLICK_SELECTION’ − kizáró elégséges feltétel: a kattintás üres terülteten történik

A fenti példa alapján jól látható, hogy a különböző feltételek azonosításához konstansokat definiál a program, ezek tárolására szolgál az ’InteractionConstants’ (3.2.5. ÁBRA) osztály. Bizonyos interakciók csak akkor hajtódhatnak végre, ha az ’InteractionManager’ a megfelelő interakciós módban van. Ezek reprezentálására szolgál az ’InteractionMode’ enum osztály (3.2.4. ÁBRA). Ez a megoldás lehetővé teszi az interakciók kategorizálását (pl. kijelölés, vezetékezés, analízis).

3.2.3. ÁBRA: EGY INTERAKCIÓ PÉLDÁJA

3.2.4. ÁBRA: ‘INTERACTIONMODE’ ENUM OSZTÁLY

Page 38: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 38 -

Léteznek olyan interakciók is, amelyek kiváltásához összetett eseménysorozat bekövetkezése szükséges (3.2.6. ÁBRA). Ennek lehetővé tételére szükséges az ’InteractionTriggers’ enum osztály. Az előkészítő esemény beállítja az adott triggert, majd a kiváltó esemény a trigger jelenléte esetén kiváltja az interakciót magát.

3.2.4. ÁBRA: ‘INTERACTIONCONSTANTS’ KONSTANSAI

3.2.6. ÁBRA: ‘IMPLEMENTATIONS’ CSOMAG ÉS OSZTÁLYAI

Page 39: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 39 -

3.3. TRANSZFORMÁCIÓK

Az előző implementáció során kiderült, hogy a JAVA alaposztályai (’AffineTransform’) nem tesznek lehetővé közvetlen módon tetszőleges pont körül végzett transzformációkat és az egymás után lévő transzformációk sorrendje nem konzisztens. Azaz, ha például forgatás után végzünk eltolást, akkor az eltolás az eredeti koordináta-rendszer szerint történik. Ez a működés természetesen nem hibás, csak a program elképzelt struktúrájába nem illett bele.

Ezért történt az alábbi osztályok létrehozása, melyek a ’Transformable’ interfész (3.3.1. ÁBRA) és azt ezt implementáló ’TransformablePoint’ és ’TransformableShape’ osztályok.

Az interface rögzíti a transzformációs metódust, például forgatás (’rotate()’), tükrözés (’flip()’), valamint tartalmaz pár ezekhez kapcsolódó konstanst is.

3.3.1. ÁBRA: TRANSFORMABLE INTERFÉSZ

Page 40: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 40 -

A ’TransformablePoint’ osztály (3.3.2. ÁBRA) egy szabadon transzformálható pontot reprezentál, mely a JAVA beépített ’Point2D.Double’ osztályából származik és természetesen megvalósítja a ’Transformable’ interfészt. Működése a következő. Egy ’TransformablePoint’ objektum öt fontos adatot tárol egyszerre, az eredeti pont és eltolás koordinátáját, a valaha végzett összes transzformáció összesített mátrixát, valamint az ennek megfelelő gyorsítótárazott aktuális pozíciót és eltolást.

3.3.2. ÁBRA: TRANSFORMABLEPOINT OSZTÁLY

Page 41: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 41 -

A ’TransformablePoint’ osztályból származik a ’TransformableShape’ osztály (3.3.3. ÁBRA), ami ennél fogva szintén megvalósítja a ’Transformable’ interfészt. Működése annyiban egészíti ki a ’TransformablePoint’ osztályt, hogy eltárol egy eredeti és egy aktuális alakzatot is.

3.3.3. ÁBRA: TRANSFORMABLESHAPE OSZTÁLY

Page 42: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 42 -

4. TERVEZÉSI MINTÁK (DESIGN PATTERNS)

Az optimális fejlesztés érdekében a program felhasznál számos tervezési mintát (design pattern), melyek gyakran felmerülő problémák megoldására szolgáltatnak jól bevált, széles körben alkalmazott megoldásokat [17].

4.1. SINGLETON TERVEZÉSI MINTA

A ’Singleton’ tervezési minta olyan objektumok létrehozását teszik lehetővé, melyek az egész programon belül egyetlen-egy példányban léteznek. A programon belül ilyen például a ’MainWindow’, az ’ANASettings’ (4.1.1. ÁBRA) és az ’ANAComponentPrototypeStore’ osztályok.

Ennek a mintának többféle megoldása létezik. A program az ún. privátkonstruktoros implementációt használja (4.1.2. ÁBRA), melynek lényege, hogy az egyetlen objektumot az osztályban lévő statikus metóduson keresztül érhetjük el, melyet egy statikus adattag tárol. Az egyetlen objektum létrehozása, a statikus metódus első hívásakor történik a privát konstruktoron keresztül, mely által így az osztály kívülről nem példányosítható.

// SINGLETON DESIGN PATTERN STUFF private static class SingletonHolder { private final static ANASettings instance = new ANASettings(); } public static ANASettings getInstance() { return SingletonHolder.instance; }

4.1.1. ÁBRA: ‘ANASETTINGS’ OSZTÁLY

4.1.2. ÁBRA: ‘ANASETTINGS’ SINGLETON DESIGN PATERN

Page 43: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 43 -

4.2. REGISTRY PATTERN

Ez a tervezési minta részben magába foglalhatja a ’Singleton’ tervezési mintát is, hiszen bizonyos esetekben a ’Registry’ tervezési mintának pont az a szerepe, hogy egy az egész programon belül elérhető beállítás jegyzéket biztosítson. A beállítás jegyzékben írhatóak és lekérdezhetőek az adatok.

A programban példa erre a pattern-re az ’ANASettings’ osztály, mely biztosítja a beállítás jegyzéket és megvalósítja a ’Singleton’ tervezési mintát. További ’Registry’ objektumokat használ a program a munkalapok lokális tulajdonságainak tárolására. Ezek nyilvánvalóan nem ’Singleton’ osztályok.

4.3. MVC (MODEL VIEW CONTROLLER) PATTERN

Az MVC minta az adatmodell, a felhasználói interfész, illetve a program logika elszeparálásában nyújt segítséget.

Ennek megvalósítása a programon belül a ’Swing’ használatával teljesül, illetve egy magasabb absztrakciós szintet képvisel a felhasználói interfész elemeinek betöltése XML file-okból.

Page 44: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 44 -

5. HÁLÓZATOK SZERKESZTÉSE

Ez a fejezet a hálózatok szerkesztését mutatja be a program segítségével. A programban szerkeszthetők jelfolyam-, és Kirchhoff - típusú hálózatok egyaránt. A program indítása után választható ki egy dialógusablakban, hogy milyen típusú munkalapot szeretnénk létrehozni.

5.1. KOMPONENSEK BESZÚRÁSA, SZELEKCIÓK

A munkalap megnyitása után a komponenseket beszúrhatjuk menüből és eszköztárból is. Mindkét munkalapon a komponensek típusai a munkalap típusától függően dinamikusan változnak a menüben és az eszköztárban is (5.1.1. ÁBRA, 5.1.2. ÁBRA).

Az eszköztárból való beszúrás draggeléssel (egérrel való vonszolás) történik. Egérkattintás után a beszúrandó komponens képén az eszköztáron, a komponens képe megjelenik az eszköztár felett és az egér segítségével húzható le a szerkesztő felületre (5.1.3. ÁBRA).

Ha az ’alt’ billentyűt nyomva tartjuk a komponens draggelése alatt, akkor a komponens nem fog illeszkedni a grid rácspontokhoz, ha nem volt vezérlőbillentyű input, akkor automatikusan illeszkedik a komponens kivezetése az elengedéshez számított legközelebbi grid rácsponthoz.

5.1.1. ÁBRA: KIRCHHOFF - TÍPUSÚ HÁLÓZAT KOMPONENSEK BESZÚRÁSA MENÜBŐL

5.1.2. ÁBRA: JELFOLYAM - HÁLÓZAT KOMPONENSEK BESZÚRÁSA MENÜBŐL

Page 45: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 45 -

A program alapvetően három logikai módot tartalmaz, a kijelölés (’SELECTING’), a vezetékezés (’WIRING’) és az analízis (’ANALYZING’) módokat.

Az alapértelmezett mód a kijelölés mód. Egy komponens kijelölhető egy szimpla bal egérklikkeléssel. Több komponenst lépésről - lépésre a ’ctrl’ billentyű nyomva tartása közben jelölhetünk ki, továbbá az összes komponenst az egér bal gombjának nyomva tartása és húzása közben keletkező téglalap segítségével jelölhetünk ki (5.1.4. ÁBRA).

Továbbá ha egy komponens, egy vezeték, egy csomópont, vagy egy pin fölé visszük az egérkurzort, akkor a megfelelő komponens körül megjelenik egy vörös, szaggatott vonalú kijelölés, amíg az egér fölötte tartózkodik (5.1.5. ÁBRA).

5.1.3. ÁBRA: KOMPONENS DRAGGELÉSE MENÜBŐL

5.1.4. ÁBRA: AZ EGÉSZ HÁLÓZAT KIJELÖLÉSE

5.1.5. ÁBRA: PILLANATNYI KIJELÖLÉS AZ EGÉRREL

Page 46: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 46 -

5.2. VEZETÉKEZÉS, KOMPONENSEK ÖSSZEKÖTÉSE

Ha befejeztük a komponensek elhelyezését a szerkesztő felületen, akkor a komponensek vezetékkel való összekötése következik. Ezt két helyről tehetjük meg, vagy bekapcsoljuk az eszköztáron szereplő vezetékezés gombot, így ’wiring’ módba jutunk a programon belül, vagy a hálózaton belül egy komponens lábára kattintva ’instant wiring’ módba kerülünk.

A két opció között az alapvető különbség, hogy míg ’wiring’ módban bárhonnan indíthatunk vezetékezést, addig ’instant wiring’ módban csak a komponensek pinjeiből, továbbá csomópontokból indíthatunk. Továbbá míg a ’wiring’ mód kikapcsolása az eszköztáron ismételt kattintással történik és futása alatt az összes többi szerkesztő opció tiltott, addig az ’instant wiring’ mód a vezetékezés befejeztével, vagy a rajzfelületen való kattintással automatikusan kikapcsol.

Az egérmutató alatt vörös, szaggatott vonallal kiemelődnek azok a területek, amelyekből vezeték indítható (5.2.1. ÁBRA). Ha először kattintunk a kiindulásként szánt pontra, szaggatott vonalként megjelenik a vezeték a kurzor és a kezdőpont között. Második kattintással tehetjük le a vezetéket a kívánt helyre (szintén vörös, szaggatott), vagy létrehozhatunk egy töréspontot a kattintás helyén, amely új kiindulópontként is funkcionálhat a továbbiakban.

A vezetékezés más programokkal ellentétben nem csak függőleges és vízszintes irányban történhet, hanem bármelyik irányba rajzolható vezeték.

5.2.1. ÁBRA: VEZETÉKEZÉS

Page 47: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 47 -

A szerkesztő felületen opcionálisan bekapcsolható az egérkurzor pozícióját követő két nagy egymást keresztező szaggatott vonal, melyek keresztmetszete, az egér aktuális pozíciója (5.2.1. ÁBRA).

5.3. KOMPONENSEK ÉRTÉKEINEK BEÁLLÍTÁSA

A vezetékezés befejezése után következik a komponensek értékeinek beállítása. Ezt egy pop-up ablakban tehetjük meg, amely a megfelelő komponens képén való dupla bal kattintás után jelenik meg a szerkesztő felület felett (5.3.1. ÁBRA).

Minden komponens rendelkezik alapértelmezett értékkel, amit az ’ANAComponentAttribute’ osztály tárol. Az alapértelmezett érték megváltoztatása után az új értéket eltárolja az ’ANAComponentAttribute’ és ezután már a megváltoztatott értéket láthatjuk a dialógusablakban.

Az értékek beállítása után a kiválasztott analízis pontra kattintva az analízis mód automatikusan elindul.

5.3.1. ÁBRA: EGY KOMPONENS ÉRTÉKÉNEK BEÁLLÍTÁSA

Page 48: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 48 -

6. ANALÍZIS

Ez a fejezet bemutatja a hálózatokba integrálható komponenseket, továbbá az első implementált analízis csomagot, és ennek alapjait, melynek segítségével Kirchhoff – típusú hálózatokban kiszámolhatók a csomóponti potenciálok, a komponenseken folyó áramok és a rajtuk eső feszültségek, továbbá az egyes komponensek teljesítményei is.

6.1. BESZÚRHATÓ KOMPONENSEK, KARAKTERISZTIKÁK

6.1.1. KIRCHHOFF – TÍPUSÚ HÁLÓZATOK KOMPONENSEI

A koncentrált paraméterű hálózatok generátort, ellenállást, induktivitást, kapacitást és ágak közötti csatolást tartalmaznak. Ahhoz, hogy a hálózatban áramok folyjanak, feszültségek lépjenek fel az szükséges, hogy a hálózatban egy, vagy több energiaforrás legyen [2].

A FESZÜLTSÉGFORRÁS olyan kétpólus (6.1.1.1. ÁBRA), amelynek feszültsége az ismert

( )s su u t= (6.1.1-1)

forrásfeszültség, az ÁRAMFORRÁS pedig olyan kétpólus (6.1.1.1. ÁBRA), amelynek árama az ismert

( )s si i t= (6.1.1-2)

forrásáram, tehát karakterisztikájuk:

su u= (6.1.1-3)

és

si i= . (6.1.1-4)

A források által (a hálózat többi részéből) felvett teljesítmény (itt u és ireferenciairánya azonos)

sp u i= (6.1.1-5)

ill.

sp i u= (6.1.1-6)

lehet pozitív is és negatív is, a források vagy fogyasztanak vagy termelnek, ezek aktív komponensek [4].

Page 49: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 49 -

A RÖVIDZÁR olyan kétpólus, amelynek feszültsége nulla, a SZAKADÁS pedig olyan kétpólus, amelynek árama nulla, karakterisztikájuk:

rövidzár:

0u = , (6.1.1-7)

szakadás:

0i = . (6.1.1-8)

A rövidzár és a szakadás a feszültség-, és áramforrások elfajuló esetei. A rövidzár tekinthető speciális feszültségforrásnak ( 0)su = , vagy speciális ellenállásnak ( 0)R = . A szakadás tekinthető speciális áramforrásnak ( 0)si =vagy speciális ellenállásnak ( 0)G = . Így a programban, ha rövidzárat vagy szakadást szeretnénk a hálózatba integrálni, akkor ezt egy 0 Vsu = értékű feszültségforrással vagy egy 0 Asi = értékű áramforrással tehetjük meg.

A rövidzár és a szakadás által felvett teljesítmény

0p = , (6.1.1-9)

ezek passzív és ezen belül non energikus kétpólusok.

A lineáris ELLENÁLLÁS olyan kétpólus (6.1.1.2. ÁBRA), amelynek feszültsége és árama arányos (Ohm törvénye):

u Ri= , (6.1.1-10)

vagy

i Gu= , (6.10.1-11)

ahol R az ellenállás rezisztanciája, G pedig a konduktanciája, és

1GR

= . (6.10.1-12)

6.1.1.1. ÁBRA: FESZÜLTSÉG-, ÉS ÁRAMFORRÁS KÉPE A PROGRAMBAN

Page 50: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 50 -

A lineáris ellenállás által felvett teljesítmény

2p Ri= (6.1.1-13)

vagy

2p Gu= , (6.1.1-14)

a felvett teljesítmény pozitív, ha > 0R , vagyis a (pozitív) ellenállás mindig fogyasztó, tehát passzív kétpólus [4].

Elemi komponensek összekapcsolásával egyszerű kétpólusokhoz juthatunk. A két legfontosabb a FESZÜLTSÉGGENERÁTOR vagy THÉVENIN - GENERÁTOR (6.1.1.3. ÁBRA), amelynek karakterisztikája

su Ri u= + (6.1.1-15)

és az ÁRAMGENERÁTOR vagy NORTON – GENERÁTOR (6.1.1.4. ÁBRA), amelynek karakterisztikája

si Gu i= + . (6.1.1-16)

Az 1: n áttételű IDEÁLIS TRANSZFORMÁTOR (IT) két csatolt lineáris rezisztív kétpólus, amelynek egyik karakterisztikája

1 2u nu= , (6.1.1-17)

2 1i ni= − . (6.1.1-18)

6.1.1.2. ÁBRA: ELLENÁLLÁS KÉPE A PROGRAMBAN

6.1.1.3. ÁBRA: THÉVENIN - GENERÁTOR KÉPE A PROGRAMBAN

6.1.1.4. ÁBRA: NORTON - GENERÁTOR KÉPE A PROGRAMBAN

Page 51: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 51 -

Az n áttétel lehet pozitív vagy negatív. Az IT (6.1.1.5. ÁBRA) passzív, sőt non energikus komponens, ugyanis az IT által a hálózatból felvett teljesítmény

1 1 2 2 2 1 2 1( ) ( ) 0p u i u i nu i u ni= + = + − = . (6.1.1-19)

A VEZÉRELT FORRÁSOK olyan csatolt kétpólusok, amelyek egyik kapujának (primer vagy szekunder) feszültsége vagy árama meghatározza a másik kapu (primer vagy szekunder) feszültségét vagy áramát.

A FESZÜLTSÉGVEZÉRELT FESZÜLTSÉGFORRÁS (6.1.1.6. ÁBRA) jellemzője aµfeszültségforrási tényező. Ennek karakterisztikája

1 0i = , (6.1.1-20)

2 1u uµ= . (6.1.1-21)

A FESZÜLTSÉGVEZÉRELT ÁRAMFORRÁS (6.1.1.7. ÁBRA) jellemzője a g átviteli konduktancia. Ennek karakterisztikája

1 0i = , (6.1.1-22)

2 1i gu= . (6.1.1-23)

6.1.1.5. ÁBRA: IDEÁLIS TRANSZFORMÁTOR KÉPE A PROGRAMBAN

6.1.1.6. ÁBRA: FESZÜLTSÉGVEZÉRELT FESZÜLTSÉGFORRÁS KÉPE A PROGRAMBAN

6.1.1.7. ÁBRA: FESZÜLTSÉGVEZÉRELT ÁRAMFORRÁS KÉPE A PROGRAMBAN

Page 52: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 52 -

Az ÁRAMVEZÉRELT FESZÜLTSÉGFORRÁS (6.1.1.8. ÁBRA) jellemzője az r átviteli rezisztancia. Ennek karakterisztikája

1 0u = , (6.1.1-24)

2 1u ri= . (6.1.1-25)

Az ÁRAMVEZÉRELT ÁRAMFORRÁS (6.1.1.9. ÁBRA) jellemzője az αáramerősítési tényező. Ennek karakterisztikája

1 0u = , (6.1.1-26)

2 1i iα= . (6.1.1-27)

A vezérelt források aktív komponensek. A µ , g , r és α vezérlési paraméterek pozitív vagy negatív állandók, invariáns esetben az idő függvényei [3].

A vezérelt forrás (FF, FÁ, ÁF, ÁÁ) által felvett teljesítmény

1 1 2 2 1 2 1 2 1 2 1 2, , , ip u i u i u i g uu ri i uµ α= + = . (6.1.1-28)

Az IDEÁLIS (MŰVELETI) ERŐSÍTŐ (6.1.1.10. ÁBRA) a feszültségvezérelt feszültségforrás határesete végtelen feszültségerősítés esetén. Az ideális erősítő egyetlen karakterisztikája

1 0u = , (6.1.1-29)

1 0i = . (6.1.1-30)

Az ideális erősítő aktív komponens.

6.1.1.8. ÁBRA: ÁRAMVEZÉRELT FESZÜLTSÉGFORRÁS KÉPE A PROGRAMBAN

6.1.1.9. ÁBRA: ÁRAMVEZÉRELT ÁRAMFORRÁS KÉPE A PROGRAMBAN

Page 53: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 53 -

A GIRÁTOR (6.1.1.11. ÁBRA) két karakterisztikája

1 2 2 1, u ri u ri= − = ; (6.1.1-31)

vagy

1 2 2 1, i gu i gu= = − ; (6.1.1-32)

ahol r a girációs rezisztancia, g a girációs konduktancia és

1gr

= . (6.1.1-33)

A girátor non energikus, tehát a hálózatból felvett teljesítménye azonosan nulla.

A lineáris invariáns KONDENZÁTOR egy olyan kétpólus (6.1.1.12. ÁBRA), amelynek karakterisztikája

C Ci Cu= , (6.1.1-34)

azaz

( )( ) CC

du ti t Cdt

= , (6.1.1-35)

ahol C a kondenzátor időben állandó kapacitása.

6.1.1.10. ÁBRA: AZ IDEÁLIS ERŐSÍTŐ KÉPE A PROGRAMBAN

6.1.1.11. ÁBRA: AZ IDEÁLIS ERŐSÍTŐ KÉPE A PROGRAMBAN

6.1.1.12. ÁBRA: A KONDENZÁTOR KÉPE A PROGRAMBAN

Page 54: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 54 -

A lineáris invariáns TEKERCS egy olyan kétpólus (6.1.1.13. ÁBRA), amelynek karakterisztikája

L Lu Li= , (6.1.1-36) azaz

( )( ) LL

di tu t Ldt

= , (6.1.1-37)

ahol L a tekercs időben állandó induktivitása.

A lineáris invariáns kondenzátor, ill. tekercs által felvett teljesítmény

212C C C C C C

dp u i Cu u Cudt = = =

, (6.1.1-38)

212L L L L L L

dp u i Li i Lidt = = =

. (6.1.1-39)

6.1.2. JELFOLYAMHÁLÓZATOK KOMPONENSEI

Egy hálózat komponensek összekapcsolásából áll. Minden komponensnek (hálózati elemnek) egy vagy több bemenete és egy vagy több kimenete lehet. A bemenet(ek) és a kimenet(ek) közti kapcsolatot a komponens karakterisztikája adja meg, ami egy függvénykapcsolat a komponens bemeneti változója (változói) és kimeneti változója (változói) között, pl. megadja a kimeneti változót a bemeneti változó függvényében. A hálózat bemenetére a gerjesztést kapcsoljuk, kimenetén pedig a választ várjuk [1].

A programban a jelfolyam – hálózatokba a következő jellegzetes komponensek integrálhatók.

A FORRÁS (6.1.2.1. ÁBRA) a hálózat bemenetét, gerjesztését reprezentálja, egyetlen változója az

( )s s t= (6.1.2-1)

folytonos idejű jel, illetve

[ ]s s k= (6.1.2-2)

diszkrét idejű jel, bemenete nincs.

6.1.1.13. ÁBRA: A TEKERCS KÉPE A PROGRAMBAN

Page 55: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 55 -

A NYELŐ (6.1.2.2. ÁBRA) a hálózat kimenetét, válaszát reprezentálja, bemeneti változója a keresett

( )y y t= (6.1.2-3)

folytonos idejű jel, illetve

[ ]y y k= (6.1.2-4)

diszkrét idejű jel, kimenete nincs.

Az ÖSSZEGZŐCSOMÓPONT (6.1.2.3. ÁBRA) kimenetén a bemenetére érkező jelek összessége jelenik meg, azaz

( ) ( )i

iy t s t=∑ , (6.1.2-5)

vagy

[ ] [ ]i

iy k s k=∑ . (6.1.2-6)

Tetszőleges számú bemenete lehet és egyetlen kimenete van. Az összegzőcsomópontoknál tehát összekapcsolási kényszer áll fenn, melynek teljesülni kell.

A LINEÁRIS ERŐSÍTŐ (6.1.2.4. ÁBRA) olyan lineáris komponens, amelynek karakterisztikája

( ) ( )y t Ks t= , (6.1.2-7)

vagy

[ ] [ ]y k Ks k= , (6.1.2-8)

6.1.2.1. ÁBRA: A FORRÁS KÉPE A PROGRAMBAN

6.1.2.2. ÁBRA: A NYELŐ KÉPE A PROGRAMBAN

6.1.2.3. ÁBRA: AZ ÖSSZEGZŐCSOMÓPONT KÉPE A PROGRAMBAN

Page 56: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 56 -

ahol K egy időtől független konstans (erősítés), tehát az erősítő invariáns elem. Ha <1K , akkor csillapításról beszélünk. Ha K az idő ismert függvénye ( ( ) vagy [ ])K t K k , akkor variáns erősítőről van szó.

A KÉSLELTETŐ (6.1.2.5. ÁBRA) olyan diszkrét idejű hálózati elem, amely a bemenetére érkező diszkrét idejű jelet egy ütemmel késlelteti, de a kimeneti jel és a bementi jel értéke megegyezik. Ez memóriával bíró, ún. dinamikus elem.

Az INTEGRÁTOR (6.1.2.6. ÁBRA) olyan folytonos idejű hálózati elem, amelynek kimenetén a bemenetén érkező folytonos idejű jel integrálja jelenik meg. Az integrátor a folytonos idejű hálózatok dinamikus eleme.

Az NEMLINEÁRIS ERŐSÍTŐ (6.1.2.7. ÁBRA) olyan komponens, melynek karakterisztikája nemlineáris, bemenete és kimenete között az

{ }η φ ξ= (6.1.2-9)

kapcsolat áll fenn, ahol ξ a nemlineáris erősítő bemeneti jele, η pedig a kimeneti jele, {}φ ⋅ pedig egy nemlineáris függvénykapcsolat.

6.1.2.5. ÁBRA: AZ KÉSLELTETŐ KÉPE A PROGRAMBAN

6.1.2.6. ÁBRA: AZ INTEGRÁTOR KÉPE A PROGRAMBAN

6.1.2.7. ÁBRA: A NEMLINEÁRIS ERŐSÍTŐ KÉPE A PROGRAMBAN

6.1.2.5. ÁBRA: AZ ERŐSÍTŐ KÉPE A PROGRAMBAN

Page 57: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 57 -

A SZORZÓCSOMÓPONT (6.1.2.8. ÁBRA) kimenetén a bemenetére érkező jelek szorzata jelenik meg

, ( ) ( )i

iy t s t=∏ (6.1.2-10)

vagy [ ] [ ]i

iy k s k=∏ . (6.1.2-11)

6.2. CSOMÓPONTI POTENCIÁLOK MÓDSZERE

Ez a fejezet bemutatja az első implementált hálózat analízis opciót, a csomóponti potenciálok számításának módszerét, melynek segítségével kiszámolhatók egy hálózat komponensein folyó áramok, eső feszültségek és a teljesítmények. A fejezet egy, a programmal megoldott illusztrált példával zárul.

6.2.1. CSOMÓPONTI POTENCIÁLOK, MÁTRIXEGYENLET

Egy Kirchhoff - típusú hálózat b számú csatolatlan, vagy csatolt kétpólus összekapcsolásából áll. A csomópontok számát 1r + jelöli, a csomópontok sorszáma 0, 1, 2, . . ., i r= ; az 0r = sorszámú a báziscsomópont.

A k -adik kétpólushoz ki áram és ku feszültséget rendelünk( 1, 2, . . ., )k b= , referenciairányukat egyezőnek választjuk: az irány mindig a kétpólus első pinjétől a második pinjéig mutat. Egy hálózat valamennyi kétpólusának áramát, ill. feszültségét egy-egy b - dimenziós i ill. uvektorban tároljuk.

A kétpólusok árama és feszültsége között azok karakterisztikája teremt kapcsolatot (LÁSD 6.1. FEJEZET). Csatolatlan kétpólusok mindegyikére egy egyenlet vonatkozik, m számú csatolt kétpólusra pedig m számú független egyenlet. A kétpólusokra vonatkozó karakterisztikák összessége b számú független egyenletet jelent [4].

A hálózat struktúráját egyértelműen jellemzi A csomóponti mátrixa. Ennek j - edik sora megfelel a j - edik csomópontnak ( 1, 2, . . ., )j r= , k - adik oszlopa megfelel a k - adik kétpólusnak ( 1, 2, . . ., )k b= .

6.1.2.8. ÁBRA: A SZORZÓCSOMÓPONT ERŐSÍTŐ KÉPE A PROGRAMBAN

Page 58: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 58 -

Az jkA mátrixelem értéke 1+ , 1− vagy 0 lehet, ha a j - edik

csomóponthoz, a k - adik kétpólus:

− első pinje csatlakozik 1jkA = + ,

− második pinje csatlakozik 1jkA = − , (6.2.1-1)

− egyik pólusa sem csatlakozik 0jkA = ,

tehát a 1+ a „honnan”, a 1− a „hova” referenciának felel meg, a 0j =sorszámú báziscsomópontnak nem felel meg sor.

Az A mátrix minden oszlopában mindig egy 1+ és egy 1− áll, a többi

elem értéke nulla. Ha a kétpólus valamelyik pinje a báziscsomóponthoz kapcsolódik, akkor abban az oszlopban csak egyetlen elem értéke nem nulla (hiszen a bázis-csomópontoknak nem felel meg sor a mátrixban). A csomóponti mátrix ismeretében a hálózat struktúrája már rekonstruálható [5-6].

Partícionáljuk a csomóponti mátrixot a kétpólusok jellege szerint:

U I R C LA A A A A A = , (6.2.1-2)

ahol UA a feszültségforrás(ok) csomóponti mátrixa,

IA az áramforrás(ok)

csomóponti mátrixa, RA

az ellenállás(ok) csomóponti mátrixa, CA

a kondenzátor(ok) csomóponti mátrixa és LA végül a tekercs(ek) csomóponti mátrixa.

A hálózatra vonatkozó áramtörvények egy fundamentális rendszere, ill. a feszültségek kifejezése a csomóponti potenciálokkal

0Ai = , (6.2.1-3)

Tu A ϕ= (6.2.1-4)

alakban fogalmazható meg a csomóponti mátrix ismeretében.

A folyamatos idejű (FI) lineáris invariáns hálózatra az állapotváltozós leírás normálalakja:

' ,x A x Bs

y C x Ds= +

= +

. (6.2.1-5)

Az itt szereplő A mátrixot vesszővel különböztetjük meg az A csomóponti mátrixtól [4].

Page 59: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 59 -

Az x állapotvektor a kondenzátorok Cku feszültségéből és a tekercsek Lki áramából alkotott Cu és Li vektorok összessége, az s forrásvektor az sku

forrásfeszültségekből és az ski forrásáramokból alkotott su és si vektorok összessége:

c

L

ux

i

=

, (6.2.1-6)

s

s

us

i

=

. (6.2.1-7)

A kondenzátorok és a tekercsek karakterisztikáinak összessége

C Ci Cu= , (6.2.1-8)

L Lu Li= (6.2.1-9)

alakban foglalható össze.

A lineáris rezisztív komponensek összessége admittancia -karakterisztikával jellemezhető, amely a következő alakban írható fel:

R Ri Gu= . (6.2.1-10)

Írjuk fel a (3) és (4) egyenleteket a karakterisztikák behelyettesítésével:

0U s R C LU I R C LA i A i A Gu A Cu A i+ + + + = , (6.2.1-11)

Ts Uu A ϕ= , (6.2.1-12)

TI Iu A ϕ= , (6.2.1-13)

TR Ru A ϕ= , (6.2.1-14)

TC Cu A ϕ= , (6.2.1-15)

TL Lu A ϕ= . (6.2.1-16)

Ezekből adódik a programban felhasznált és implementált mátrixegyenlet:

1

0 0 0 0 0 1 00 0 0

1 0 0 00 0 00 0 0 00 0

TU U U

TscU R R C L I

TsLCcC

TLL

A iA A G A A C A A uu

iiuAiA L

ϕ

− − = + −

Page 60: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 60 -

(6.2.1-17)

A lineáris egyenletrendszer megoldásával megkapjuk Cu és Li kifejezését Cu és Li , valamint su és si függvényeként, vagyis az állapotegyenlet normálalakját.

Ha az egyenletrendszer nem megoldható, a hálózat nem reguláris. Kiadódik Ui és ϕ normálalakja is. A választ jelentő más változók (pl. Ri vagy

Iu ) normálalakja a (11) alapján már könnyen kifejezhető [4].

Page 61: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 61 -

6.2.2. EGY PÉLDA MEGOLDÁSÁNAK BEMUTATÁSA

Ez a fejezet egy a programból kiemelt példa levezetését mutatja be. A példa bemutatja a programba integrált példa hálózatban a kiszámolt és levezetett csomóponti potenciálokat, továbbá a hálózat komponensein eső feszültségeket és folyó áramokat, valamint a komponensek teljesítményeit.

Továbbá betekintést ad az analízis pont implementációjába, melyhez az ’Analysis’ (2.3. FEJEZET, 6.2.2.2. ÁBRA) és a ’Helpers/Analysis’ (2.6. FEJEZET, 6.2.2.1. ÁBRA) csomagokban található osztályok kapcsolódnak.

6.2.2.1. ÁBRA: A ‘HELPERS/ANALYSIS’ CSOMAG ÉS OSZTÁLYAI

Page 62: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 62 -

6.2.2.2. ÁBRA: AZ ‘ANALYSIS’ CSOMAG ÉS OSZTÁLYAI

Page 63: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 63 -

A következő rezisztív hálózaton keresztül vezetjük végig a fejezet a csomóponti potenciálok, a kétpólusokon eső feszültségek és folyó áramok kiszámítását [7].

Az analízis pont elindítása után a program felépíti a hálózat csomóponti mátrixát, ami a következő alakban néz ki a behelyettesített értékekkel:

2 3 4 1

1

2

3

1 1 0 0 0 10 1 1 1 0 0 1 0 0 1 1 0

R R R R I U

Aϕϕϕ

− = − − −

A csomópontok meghatározása a ’NodeModel’ és a ’LogicalNode’ osztály

segítségével történik.

A gráf vizsgálata előtt szükséges az integritás vizsgálata, vagyis annak ellenőrzése, hogy nincsenek-e bekötetlen kétpólusok. Ez a ’Graph’ osztály ’checkIntegrity()’ metódusa segítségével történik, amely a gráfban szereplő összes ’Node’ objektum ’isProperlyConnected()’ metódusát hívja meg és végül csak akkor ad vissza ’true’ értéket, ha minden megelőző függvényhívás is ’true’ értéket adott. Az ’isProperlyConnected()’ metódus működése a ’Node’ implementációjától függ, például ’Pin’ esetén csak egy, ’Junction’ esetén viszont legalább két ’Connection’ kapcsolódását igényli.

6.2.2.3. ÁBRA: A PROGRAMMAL SZERKESZTETT PÉLDA HÁLÓZAT

RA IA UA

Page 64: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 64 -

Az integritás ellenőrzése után a gráf vizsgálata következik, a hálózat csomópontjainak felépítése érdekében. Ez a ’NodeModel’ osztály ’reBuild()’, ’discoverPins()’, ’discoverTree()’ metódusaival történik.

A ’reBuild()’ metódus sorra veszi a gráfban szereplő komponenslábakat (pin), és meghívja rájuk a ’discoverPins()’ metódust, a logikailag az komponenslábhoz kapcsolódó egyéb komponenslábak felderítésének érdekében. A ’discoverTree()’ metódus bejárja a lábakhoz kapcsolódó vezetékeket, és összegyűjti a bejárt komponenslábakat. Végül a discoverPins() metódus visszatér egy listával, amely az összegyűjtött komponenslábakat tartalmazza. A ’reBuild()’ metódus ezen istából egy új ’LogicalNode’ objektumot hoz létre, amely így az egy logikai csomóponthoz kapcsolódó komponenslábakat tartalmazza, és rendelkezhet potenciállal, valamint egy logikai értékkel, ami azt mutatja meg, hogy az adott csomópont a földpotenciál 0( 0 V)ϕ = vagy sem. Ezután a reBuild()’ függvény veszi a következő komponenslábat és megnézi, hogy az eddig létrehozott csomópontok tartalmazzák-e már azt. Amennyiben nem, úgy új ’LogicalNode’ objektumot hoz létre.

A kapcsolódási mátrixok a felépített ’NodeModel’ segítségével a (6.2.1-1) alapján töltődnek fel.

Ezek meghatározása után az ellenállások rezisztanciáiból a program kiszámítja a diagonális konduktancia mátrixot, ahol

1G R−= ,

vagyis

1ij

ij

GR

= .

Az adott példában szereplő ellenállások konduktancia mátrixa a következő:

2

3

4

1

0.05 0 0 00 0.33 0 0

0 0 0.1 00 0 0 0.1

RR

GRR

=

.

A kondunktancia mátrix felépítése után a feszültségforrások forrásfeszültségeiből és az áramforrások forrásáramaiból a program felépíti a forrásvektorokat:

2 AsI =

és

100 VSU = .

Page 65: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 65 -

Mivel a példa hálózat csak ellenállásokat, feszültségforrásokat és áramforrásokat tartalmaz, ezért (6.2.1-17) - ből csak a

0 1 0

0

TU sU E

TsIU R R

A i uA iA A RA ϕ

= −

komponenseknek megfelelő sorokat és oszlopokat használjuk. A rész-mátrixegyenlet a példában szereplő értékek behelyettesítésével az

1

2

3

0 1 0 0 1 01 0.083 0.033 0.05 0 0 100

0 0.033 0.233 0.1 0 0 20 0.05 0.1 0.15 0 1

Uiϕ

ϕ

ϕ

− − = − − − −

mátrixegyenletet adja. Melyből Gauss – Jordan – elimináció segítségével számíthatjuk ki az ismeretlen potenciálokat és a feszültségforrások ismeretlen áramait.

A program saját Gauss – Jordan – eliminációs metódussal és mátrix kezelő osztályokkal rendelkezik (LÁSD 2.6. FEJEZET, 6.2.2.2. ÁBRA).

A behelyettesített egyenletből a csomóponti potenciálok vektoraként

1

2

3

10048 V

78.66

ϕϕ ϕ

ϕ

= =

és a feszültségforrás (több feszültségforrásnál egy vektor) ismeretlen áramaként

2.8 AUI = −

eredményt kapjuk.

(6.2.1-13) alapján az áramforrás ismeretlen feszültsége a példában:

78.66 VIU = −

(6.1.1-5) alapján kiszámolható a feszültségforrás teljesítménye, (6.1.1-6) alapján pedig az ármaforrás teljesítménye (több forrásnál mindkét esetben vektorok), melyek a példa hálózatban szereplő értékek behelyettesítésével:

280 WUP = −

és

Page 66: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 66 -

157.36 WJP = − .

A (6.2.1-10) és (6.2.1-14) és (6.1.1-13) egyenletek alapján megkapjuk az ellenállásokon folyó áramok, eső feszültségek valamint a teljesítmények vektorát, melyek értéke itt:

2

3

4

1

21.3352

V48

30.66

R

RR

R

R

U

UU

U

U

− = =

,

2

3

4

1

1.061.73

A4.8

3.06

R

RR

R

R

I

II

I

I

− = =

és

2

3

4

1

22.6189.96

W230.493.82

R

RR

R

R

P

PP

P

P

= =

.

Az analízis eredményei két dialógusablakban és a logger ablakban is nyomon követhetők a felhasználói felületen (6.2.2.4. ÁBRA).

Page 67: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 67 -

Egy komponensre való kattintás után a felső dialógusablakban megjelenik az aktuális komponens áramának, feszültségének és teljesítményének az értéke.

Egy vezetékre, vagy csomópontra való kattintás után az alsó dialógus mutatja a csomópont potenciáljának az értékét.

A logger ablakban (6.2.2.5 ÁBRA) az analízis pont lépései, továbbá a mátrixok eredményei követhetők nyomon.

6.2.2.4. ÁBRA: CSOMÓPONTI POTENCIÁLOK SZERKESZTŐ FELÜLET

6.2.2.5. ÁBRA: MÁTRIX EREDMÉNYEK A LOGGER ABLAKON

Page 68: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 68 -

7. KONKLÚZIÓ

A fejlesztés kezdete után 11 hónappal a program grafikus felhasználói felületének nagy része elkészült.

Az első analízis pont, a csomóponti potenciálok módszerének integrációja befejeződött. Ezt a mátrixegyenlet első részének implementációja és megoldása adja, továbbá eredményül kapjuk még a kétpólusokon eső feszültségeket és folyó áramokat, valamint ezek teljesítményeit egy Kirchhoff – típusú hálózatban.

Az első analízis pont implementációja után, a fő mátrixegyenlet második felének megoldása adja a következő analízis pontot, az állapotváltozós leírás számítását és a válaszjelek ábrázolását.

Jelenleg a differenciálegyenlet-rendszer megoldásának, és a megoldás ábrázolásának implementációjával és tesztelésével foglalkozom. A program az egyenlet megoldásához, és a válaszjelek ábrázolásához saját megoldó és megjelenítő osztályokat használ.

A második analízis pont, és a grafikus megjelenítők integrálása után, a következő két évben a további analízis pontok implementációja következik.

A további analízispontok a következők:

− rendszeregyenlet felírása, konvertációja állapotváltozós leírásba, − adott gerjesztésre (egységugrásjel, Dirac-impulzus, szinuszos-, és

koszinuszos jel, négyszög-, és háromszögjel), adott válasz számítása és ábrázolása,

− átviteli karakterisztika felírása, − átviteli függvény felírása, − alakhű jelátvitel vizsgálata, − gerjesztés-válasz stabilitás vizsgálata, − Fourier – transzformáció és spektrum analízis, − Laplace – transzformáció, − Z – transzformáció, − végül Bode-, és Nyquist – diagram ábrázolása.

Page 69: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 69 -

BIBLIOGRÁFIA

[1] DR. KUCZMANN MIKLÓS: Jelek és rendszerek, UNIVERSITAS – GYŐR KHT, GYŐR, 2005.

[2] DR. STANDEISKY ISTVÁN: Villamosságtan, UNIVERSITAS – GYŐR KHT, GYŐR,

2005. [3] SIMONYI KÁROLY, ZOMBORY LÁSZLÓ: Elméleti villamosságtan, MŰSZAKI

KÖNYVKIADÓ, BUDAPEST, 2000. [4] DR. FODOR GYÖRGY: Hálózatok és rendszerek analízise I-III,

MŰEGYETEMI KIADÓ, BUDAPEST 1997. [5] GÉHER KÁROLY, SOLYMOSI JÁNOS: Lineáris áramkörök tervezése,

TANKÖNYVKIADÓ, BUDAPEST, 1992 [6] SZÉKELY VLADIMIR, POPPE ANDRÁS: Áramkör-szimuláció a PC-n,

COMPUTERBOOKS, BUDAPEST, 1996. [7] DR. FODOR GYÖRGY: Villamosságtan példatár, NEMZETI TANKÖNYVKIADÓ,

BUDAPEST, 1998. [8] IAN SOMMERVILLE: Szoftver-rendszerek fejlesztése, PANEM KÖNYVKIADÓ,

BUDAPEST, 2002. [9] NEIL BRADLEY: Az XML - kézikönyv, SZAK KIADÓ, VESZPRÉM, 2005.

[10] ROGERS CADENHEAD: Tanuljuk meg a Java programozási nyelvet 24

óra alatt, KISKAPU KFT, BUDAPEST, 2006.

[11] DIRK LOUIS, PETER MÜLLER: Java, PANEM KÖNYVKIADÓ, BUDAPEST, 2002.

[12] ANGSTER ERZSÉBET: Objektumorientált tervezés és programozás II. AKADÉMIAI NYOMDA, MARTONVÁSÁR, 2002.

[13] VARJASI NORBERT: Programozás III. – Objektumorientált programozás JAVA nyelven, UNIVERSITAS – GYŐR KHT, GYŐR, 2005.

[14] NYÉKINÉ G. JUDIT: JAVA 2 Útikalauz programozóknak 1.3 - A kávé, ELTE TTK HALLGATÓI ALAPÍTVÁNY, BUDAPEST, 2001.

[15] NYÉKINÉ G. JUDIT: JAVA 2 Útikalauz programozóknak 1.3 - A hab, ELTE TTK HALLGATÓI ALAPÍTVÁNY, BUDAPEST, 2001.

[16] NYÉKINÉ G. JUDIT: JAVA 2 Referencia 1.3 - A csésze, ELTE TTK HALLGATÓI ALAPÍTVÁNY, BUDAPEST, 2001.

Page 70: ATONA VA ANA A N K JAVA N I A - maxwell.sze.humaxwell.sze.hu/docs/l18.pdf · program UML osztály diagramjainak illusztrálásával- továbbá az , osztályok által megvalósított

ANA – ADVANCED NETWORK ANALYSIS

- 70 -

[17] ERICH GAMMA, RICHARD HELM, RALPH JOHNSON, JOHN VLISSIDES: Programtervezési minták, Újrahasznosítható elemek objektumközpontú programokhoz, KISKAPU KFT, BUDAPEST, 2004.

[18] MARTIN FOWLER, KENT BECK, JOHN BRENT, WILLIAM OPDYKE, DON ROBERTS: Refactoring – Kódjavítás újratervezéssel, KIASKAPU KFT, BUDAPEST, 2006.

[19] MARTIN FOWLER, JIM RUMBAUGH, GRADY BOOCH, IVAR JACOBSON, CRIS KOBRYN: UML Distilled – A Brief Guide to the Standard Object Modelling Language, ADDISON – WESLEY, 2003.

[20] É. KATONA, M. KUCZMANN: ANA – Advenced Network Analysis Java

Software Package for Analizing, Designing, and Real Time Testing Networks and System, PROCEEDINGS OF THE 2ND SYMPOSIUM ON APPLIED ELECTROMAGNETICS, SAEM’08, ZAMOŚĆ, POLAND, JUNE 1 – 4, 2008, PP. 83-86, CD PROCEEDINGS

[21] É. KATONA, M. KUCZMANN: JAVA Software for Analyzing, Editing, and

Real-Time Testing Networks and Systems, PROCEEDINGS OF THE 13TH INTERNATIONAL IGTE SYMPOSIUM ON NUMERICAL FIELD CALCULATION IN ELECTRICAL ENGINEERING AND EUROPEAN TEAM WORKSHOP, GRAZ, AUSTRIA, SEPTEMBER 21-24, 2008, CD PROCEEDINGS

[22] É. KATONA, M. KUCZMANN: JAVA Application for Editing and Analyzing, Electronical and Signal Flow Networks, POLLACK PERIODICA (MEGJELENÉS ALATT)

[23] KATONA ÉVA: ANA 1.0 – Advanced Network Analysis, HÁZI TMDK

DOLGOZAT, SZÉCHENYI ISTVÁN EGYETEM, GYŐR, 2008. ÁPRILIS

[24] KATONA ÉVA: ANA 2.0 – Advanced Network Analysis, HÁZI TMDK DOLGOZAT, SZÉCHENYI ISTVÁN EGYETEM, GYŐR, 2008. NOVEMBER