View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide

Kombinovaný vývoj pomocí GUI a pomocí skriptů

Vytvoření modelu skriptem a následný interaktivní vývoj:


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