






Kombinovaný vývoj pomocí GUI a pomocí skriptů
Vytvoření modelu skriptem a následný interaktivní vývoj:
- viz článek "On the prototype .... ", kde je kompletní příklad modelu generovanoho skriptem.
- viz též instalace simulací SmallDEVSExamplesInfo class >>installAllExamples
Získání skriptu z modelu vytvořeného interaktivně:
Nad libovolnou komponentou lze otevřít inspektor (z menu v MyRepository) a provést self storeString. Výslekem je skript, jehož provedním (doit) získáme kopii komponenty.
Problém v případě spojované komponety je v tom, že hierarchický model je nepřehledný, protože storeString je vytvořen rekurzivním průchodem celou strukturou a vnoření je vyjádřeno hierarchicky vnořenými storeStringy (složitou hierarchickou závorkovou strukturou). [ Čitelnější storeString by mohl být součástí diplomové práce související se SmallDEVSem .]
Doporučuje se proto kvůli čitelnosti používat storeString jen atomických komponent a skript vytvořit ručně. Ve skriptu si komponenty vhodně pojmenujeme proměnnými:
a := (.. storeString atomické komponenty ..).
Kód pro vytvoření kompozitu vytvoříme také ručně, propojení komponent z kompozitu lze získat (např v inspektoru) takto: self couplingsStoreString. Toto je možné přímo vložit do skriptu. Předtím je ale potřeba kompozit vytvořit:
c := CompositeDEVSPrototype new
a pomocí
c addComponents: {'a1' -> a1. ...}
přidat všechny komponenty, které máme uložené v proměnných a1, ... aN). Pak teprve provedeme
c couplings: (.... couplings storeString ...).
Na konci skriptu obalíme hlavní komponentu simulátorem:
s := (c getSimulatorRT deepVerbose: false; "reportStream: (DummyStream on: nil);" yourself).
případně nastavíme RT faktor:
s rtFactor: 1.
a vložíme do MyRepository:
MyRepository at: '/Simulations/MySimulation' put: s.
nebo okamžitě provedeme simulaci bez ukládání a bez možnosti interakce (s tímto zakončením skript připomíná běžný styl programování v neperzistentních jazycích a v neinteraktivních prostředích):
s simulate: 100
Je-li simulace v MyRepository, lze pomocí GUI interaktivně spustit simulaci na pozadí a provádět další operace.
Link to this Page