„Rendszermodellezés” változatai közötti eltérés
a autoedit v2: fájlhivatkozások egységesítése, az új közvetlenül az adott fájlra mutat |
|||
74. sor: | 74. sor: | ||
== Segédanyagok == | == Segédanyagok == | ||
* Tanszéki jegyzet: [[ | * Tanszéki jegyzet: [[Media:Remo_jegyzet_20160720.pdf|pdf]] - [http://docs.inf.mit.bme.hu/remo-jegyzet/ online (legújabb)] | ||
* Előadások diái 2016: | * Előadások diái 2016: | ||
** [[ | ** [[Media:Remo_dia_2015-16-2_1.pdf|Modellezési alapismeretek]] | ||
** [[ | ** [[Media:Remo_dia_2015-16-2_2.pdf|Strukturális modellezés]] | ||
** [[ | ** [[Media:Remo_dia_2015-16-2_3.pdf|Állapot alapú modellezés]] | ||
** [[ | ** [[Media:Remo_dia_2015-16-2_4.pdf|Folyamatmodellezés]] | ||
** [[ | ** [[Media:Remo_dia_2015-16-2_5.pdf|Teljesítménymodellezés I.]] | ||
** [[ | ** [[Media:Remo_dia_2015-16-2_6.pdf|Teljesítménymodellezés II.]] | ||
** [[ | ** [[Media:Remo_dia_2015-16-2_7.pdf|Modellek ellenőrzése]] | ||
** [[ | ** [[Media:Remo_dia_2015-16-2_8.pdf|Vizuális adatelemzés]] | ||
** [[ | ** [[Media:Remo_dia_2015-16-2_9.pdf|Modellek végrehajtása, kódgenerálás]] | ||
** [[ | ** [[Media:Remo_dia_2015-16-2_10.pdf|Szimuláció]] | ||
** [[ | ** [[Media:Remo_dia_2015-16-2_11.pdf|Modellek fejlesztése]] | ||
== Házi feladat == | == Házi feladat == | ||
97. sor: | 97. sor: | ||
* Olyan nyíl (állapotátmenet), amire nincs semmi írva (nincs őrfeltétel, mindig lefut). | * Olyan nyíl (állapotátmenet), amire nincs semmi írva (nincs őrfeltétel, mindig lefut). | ||
Ha a modelledben ezeket használod, az oldal nem fogja elfogadni a házidat. Két módon lehet megoldani a hibát: | Ha a modelledben ezeket használod, az oldal nem fogja elfogadni a házidat. Két módon lehet megoldani a hibát: | ||
[[ | [[File:Remo_modelltipusok_20160720.png|thumb|Szekvenciális programozásra hasonlító (balra), és helyes állapotalapú (jobbra) modellek]] | ||
* <code>after 0s</code> használata. Gyorsabb, de ez csak egy kiskapu, nem segíti a tanulást. | * <code>after 0s</code> használata. Gyorsabb, de ez csak egy kiskapu, nem segíti a tanulást. | ||
* Meg kell érteni az állapotalapú modellezés alapját. Sokan úgy próbálják felépíteni a modellt, mint egy C nyelvben írt programot, ahol egymás után hajtódnak végre a feladatok, és az állapot egy művelet végrehajtásának felel meg. Ez hibás gondolkozás, mert állapotmodellezésre van szükség, és nem folyamatmodellezésre! Eseményvezérelt felépítés kell. A kép oldalt illusztrálja a kettő közötti különbséget. A hagyományos programozási módszer használatával keletkezik egy olyan állapotátmenet, aminek nincs kiváltó eseménye. Az állapotalapú modellezésnél ilyet ne csináljunk, mert a ChangeSettings nem egy olyan állapot, ami tartósan jellemezné a modellünket, hiszem a <code>whiteMoves = true</code> művelet elvégzése után azonnal bekövetkezik egy újabb állapotváltás, így a ChangeSettings csak egy pillanatig, és nem egy valamekkora időegységig jellemezte a modellt. Ha viszont a műveleteket nem az állapot belsejébe írjuk, hanem egy hurokélre, akkor valójában nem történik állapotváltás (ugyan oda térünk vissza), a művelet mégis végrehajtódik! Többnyire igaz, hogy úgy kell megtervezni a modellt, hogy az élekre kerülnek a változók módosításai, az állapotokra pedig az, ami megjelenik a képernyőn, lásd a képet. Ez természetesen nem mindig van így, de ha eszerint próbálod meg megtervezni a modelled felépítését, kiküszöbölheted az üres élek problémáját. | * Meg kell érteni az állapotalapú modellezés alapját. Sokan úgy próbálják felépíteni a modellt, mint egy C nyelvben írt programot, ahol egymás után hajtódnak végre a feladatok, és az állapot egy művelet végrehajtásának felel meg. Ez hibás gondolkozás, mert állapotmodellezésre van szükség, és nem folyamatmodellezésre! Eseményvezérelt felépítés kell. A kép oldalt illusztrálja a kettő közötti különbséget. A hagyományos programozási módszer használatával keletkezik egy olyan állapotátmenet, aminek nincs kiváltó eseménye. Az állapotalapú modellezésnél ilyet ne csináljunk, mert a ChangeSettings nem egy olyan állapot, ami tartósan jellemezné a modellünket, hiszem a <code>whiteMoves = true</code> művelet elvégzése után azonnal bekövetkezik egy újabb állapotváltás, így a ChangeSettings csak egy pillanatig, és nem egy valamekkora időegységig jellemezte a modellt. Ha viszont a műveleteket nem az állapot belsejébe írjuk, hanem egy hurokélre, akkor valójában nem történik állapotváltás (ugyan oda térünk vissza), a művelet mégis végrehajtódik! Többnyire igaz, hogy úgy kell megtervezni a modellt, hogy az élekre kerülnek a változók módosításai, az állapotokra pedig az, ami megjelenik a képernyőn, lásd a képet. Ez természetesen nem mindig van így, de ha eszerint próbálod meg megtervezni a modelled felépítését, kiküszöbölheted az üres élek problémáját. | ||
== 1. ZH == | == 1. ZH == | ||
* [[ | * [[Media:ReMo_mintazh1_2015tavasz_v2.pdf | 2015 tavasszal kiadott mintaZH]] + [[Media:ReMo_mintazh1_2015tavasz_v2_mo.pdf | beugrókérdések megoldva]] | ||
* [[Rendszermodellezés_1._ZH/Igaz_Hamis_kikérdező|Igaz-Hamis kikérdező]] (előző ZH-k alapján) - '''csak az igaz állításokat kell bejelölni!''' | * [[Rendszermodellezés_1._ZH/Igaz_Hamis_kikérdező|Igaz-Hamis kikérdező]] (előző ZH-k alapján) - '''csak az igaz állításokat kell bejelölni!''' | ||
== 2. ZH == | == 2. ZH == | ||
* [[ | * [[Media:ReMo_mintazh2_20150509.pdf | 2015 tavasszal kiadott mintaZH]] + [[Media:ReMo_mintazh2_20150509_kiskerdesek_megoldva.pdf | beugrókérdések megoldva]] | ||
* [[Rendszermodellezés_2._ZH/Rendszermodellezés|Igaz-Hamis kikérdező]] (előző ZH-k alapján) - '''csak az igaz állításokat kell bejelölni!''' | * [[Rendszermodellezés_2._ZH/Rendszermodellezés|Igaz-Hamis kikérdező]] (előző ZH-k alapján) - '''csak az igaz állításokat kell bejelölni!''' | ||