Uživatelské nástroje

Nástroje pro tento web


modelicanet_roadmap

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

modelicanet_roadmap [2008/04/07 02:39] (aktuální)
pavol vytvořeno
Řádek 1: Řádek 1:
 +
 +====== ModelicaNet Roadmap ======
 +
 +
 +Vývojové prostředí pro tvorbu modelů založených na Modelice. Pracovní prostředí běžící v browseru (WPF) a umožňující spolupráci více lidí na tvorbě modelu. Koncept připomínající wiki. 
 +IDE pro tvorbu simulátorů bude navazujícím projektem.
 +
 +==== Hrubá představa ====
 +Uživateli běží v browseru Modelica IDE, během skládání modelu se průběžně komunikuje s OMC, který běží na serveru a který bude upravený pro simultání obsluhu více uživatelů. OMC průběžně posílá klientům informace o sémantické kontrole apod. Součástí klienta je hlídání syntax highlightingu (podle gramatiky). Modely se na straně serveru ukládají v repozitáři (používá se SVN; modely se při editaci zamykají, což znemožňuje konflikty).
 +
 +Model se překládá na serveru pomocí našeho kompilátoru,​ který produkuje .NET assembly s modelem. Tato assembly je poslána na klienta, kde běží lokálně v browseru (přímo v IDE). Model je analyzován a uživateli je zobrazena jeho struktura (strom nebo přímo krabičky). Ladění modelu probíhá pomocí vizualizace vybraných výstupů grafem. Vybraným vstupům a parametrům je možné měnit hodnoty (vhodný způsob zadávání hodnot - text, slider, ...). Za běhu modelu je možné měnit hodnoty vstupů ručně, případně "​předprogramovat"​ jejich průběh (časová osa, křivka, ...). Model lze krokovat, vracet v čase, rozdělit na dvě paralelně běžící větve (clone). ​
 +
 +Klonováním se zobrazí nový strom modelu, který má jako výchozí hodnoty nastavený aktuální stav klonovaného modelu. Modely se odlišují (řekněme) barvou. V grafech zobrazujících vybrané výstupy modelů přibude nová vrstva pro nový model. V každém grafu se dají vypnout vrstvy určité barvy, připadně se dá model odstranit ze všech grafů najednou. Grafy lze po pracovní ploše volně rozmisťovat,​ stejně jako stromy modelů a komponenty pro zadávání vstupních hodnot. Klonované vstupní hodnoty jsou zobrazeny jako více vstupních komponent, přičemž jsou schopné se "​sbalit"​ do jedné, jestliže jich má více stejnou hodnotu. Vizualizace bude také silně orientovaná na tooltipy, které budou zobrazovat průběhy hodnot, ale také umožňovat editovat vstupy modelu apod.
 +
 +Práce uživatele (pracovní plocha, projekt) bude ukládána na serveru. Uživatel může pracovat na více projektech, jeden model může být použit ve více projektech. Model se do repozitáře ukládá na explicitní save a při zavření projektu. Uživatel kompiluje pracovní verze modelu, které nejsou v repozitáři,​ ale jsou v paměti nebo v pracovním adresáři na serveru. ​
 +
 +Uživatel vidí dostupné modely, může libovolný otevřít, spouštět, upravovat. Autor modelu upravuje přístup pomocí ACL. Pro zajištění wiki funkcionality je uchovávaná historie modelu (pomocí SVN), která umožňuje jednoduše vracet se k starším verzím. Systém umožní vytvářet větve -- naklonování modelu včetně jeho historie. Merge větví? Domyslet!
 +
 +
 +
 +===== OMC - OpenModelica Compiler =====
 +  * Presmerovanie simulačného kódu -> C#
 +  * alebo do XML a potom -> C# | F#, ActionScript
 +  * imlementovať IDA solver do OMC zo [[http://​acts.nersc.gov/​sundials/​|SUNDIALS]] a potom -> C# | F#, ActionScript
 +\\
 +Pro vytvoření kompilátoru z jazyka Modelica do cílového jazyka (C# nebo něco jiného), použijeme jako front-end kompilátor OMC a back-end si napíšeme sami. Musíme vyřešit problém přenesení dat (syntaktického stromu) z front-endu do back-endu.
 +
 +
 +===== Simulator IDE =====
 +  * icon editor
 +  * model editor
 +  * code editor
 +  * simulation playground
 +  * animation editor
 +  * zostavovací editor simulátorov - "​Simulator Blend"
 +\\
 +
 +===== Simulator framework =====
 +==== View ====
 +  * Graf - rôzne subkomponenty ako legenda, podora zobrazenia funkčného vzťahu a pod.
 +  * Slider, NumericUpDown,​ Potenciometer,​ CheckBox, RadioButton ...
 +  * animácie budú tiež komponenty
 +  * konvertory (DataBinding) - Double,​Boolean,​ ... -> typy na View komponentách
 +
 +==== View Model ====
 +  * time Data - stavy simulátoru / modelu v čase - napr. connector s úložiskom,​ riadením, replay, apod.
 +  * podpora Statecharts
 +
 +==== Model ====
 +  * Solvery zo [[http://​acts.nersc.gov/​sundials/​|SUNDIALS]] - IDA, či aj nejaký ďalší so zerro crossingom (root finding)
 +  * model base class  -  reflexia premenných/​parametrov s dot notáciou, Init, Clone, Step
 +\\
 +
  
modelicanet_roadmap.txt · Poslední úprava: 2008/04/07 02:39 autor: pavol