Uživatelské nástroje

Nástroje pro tento web


modelicaeditor

Projekt Modelica Editor

Motivace pro studenty

Deklarovaným smyslem předmětu Projekt je to, že si studenti (většinou poprvé) vyzkouší práci v týmu. Týmová spolupráce se liší od sólo projektů především tím, že členové týmu jsou nuceni spolu konzultovat a argumentovat, a navíc pracují na projektu, který není celý pod kontrolou jednoho člověka. To vede k nutnosti komunikace ohledně návrhu, vylepšení, chyb apod. Kromě týmové spolupráce je dalším znakem Projektu snaha o vytvoření produktu v produkční kvalitě. Jde především o zajištění robustnosti vůči uživatelským vstupům a konzistentní, důsledné a robustní zpracování výjimek.

Studenti většinou řeší realizaci projektu od formulace zadání, analýzu a design až po implementaci. Úkolem vedoucího projektu je ukázat studentům cestu, jak se vyvarovat některých notoricky známých pastí, které na týmy čekají. Studenti by si měli odnést poznatky o nástrojích a pracovních postupech, které usnadňují spolupráci více programátorů. Ze strany vedoucího je upřednostňována čistota návrhu projektu a čistota jeho provedení před množstvím implementovaných featur. Tým bude důsledně používat tyto nástroje a techniky: mailing list, bug tracking, buildovací systém, verzování kódu, automatické testy. Vyžadována bude důkladná projektová dokumentace - use case s popisy scénářů, analysis class diagram, diagramy popisující interakci a algoritmy atd.

Motivace pro vedoucího

Projekt přinese především hotový produkt, který zapadne do linie práce Laboratoře biokybernetiky a počítačové podpory výuky 1.LF UK. Výsledek tedy nebude „mrtvý kód“, na který se zapomene po obhájení projektu, ale naopak bude sloužit jako základ pro další práci. Na projekt bude navazovat řada diplomových prací, které jej budou dále rozšiřovat.

Protože projekt vzniká jako základ většího celku, bude formulace zadání a analýza vypracovaná v úzké spolupráci s pracovníky laboratoře.

Úvod

Naše práce se soustředí především na dvě velká témata. Matematické modelování fyziologických systémů a tvorbu výukových fyziologických simulátorů. Modelování spočívá především ve formalizaci a popisu daného fyziologického systému matematickými rovnicemi a vztahy. Z tohoto popisu je vytvořen počítačový model ve specializovaném jazyce. Samotný takovýto model je dobrý pro studium fyziologických vztahů a procesů, je však nevhodný pro výuku fyziologie, protože data, která z modelu vystupují, jsou příliš „tvrdá“. Pro studenty je potřeba data vhodným způsobem vizualizovat, nejlépe ve formě vhodně zvolené animace. O tvorbě simulátorů, našich technologiích a postupech pojednáváme v našich článcích (viz níže). Z dříve používané trojkombinace Matlab-Flash-.NET se začínáme odvracet k modernějším technologiím, konkrétně Modelica-WPF-.NET.

Naší snahou je vytvořit tzv. Modelica Lab, tedy webové úložiště modelů a simulátorů, fungující podobně jako wiki, tedy umožňující spolupráci více lidí na tvorbě modelu s podporou verzování apod. Součástmi projektu bude vývojové prostředí pro Modelicu (návrh modelů, vizualizace, ladění apod.) a vývojové prostředí pro simulátory (postavení simulátoru nad modelem, propojení modelu s grafikou a animacemi, publikace simulátorů apod.).

Anotace projektu

V rámci projektu bude vytvořen základ pro vývojové prostředí jazyka Modelica - editor. Půjde o návrh a implementaci aplikace běžící v browseru, která umožňuje dvoucestnou tvorbu kódu v jazyce Modelica. Tedy jak vizuální editaci struktury modelu, tak editaci jeho zdrojového kódu. Součástí editoru není překladač Modelica, ten je na serveru, se kterým editor komunikuje pomocí definovaného API. Součástí editoru také není vizuální debugger, který bude vytvořen jako navazující projekt. Výsledná aplikace však umožní nechat na serveru skompilovat a spustit model a jednoduchou formou prezentovat jeho výsledky. Editor se bude skládat z těchto důležitých součástí:

  • abstraktní reprezentace struktury modelu (abstract semantic graph, abstract syntax tree - AST) - jádro, které nese informace o modelu, poskytuje podklady pro sémantické kontroly, syntax highlighting a autocomplete
  • komunikace s OMC serverem (OpenModelica Compiler)
  • grafický editor - grafický editor hierarchického modelu, knihovna modulů, vizuální programování, spolupráce s AST na hlídání syntaktické/sémantické správnosti
  • textový editor - syntax highlighting, online parsing, autocomplete, quickhelp, …
  • komunikace s repository modelů - bez řešení konfliktů, jednoduché verzování (lock-modify-unlock strategy)

Techniky a technologie

Zásadním požadavkem je spouštění aplikace v prohlížeči. Výhodou by bylo udržet aplikaci v mezích Silverlight 2.0. Pokud se tento požadavek ukáže jako problematický, bude aplikace realizovaná jako XBAP - XAML in Browser Application. Při implementaci bude kladen požadavek na striktní použití WPF (XAML) při tvorbě GUI, dodržení konceptu M-V-VM a použití technik specifických pro WPF jako jsou data binding, events, commands. Součástí předávky musí být unit testy. Nesmí být podceňována estetická stránka aplikace. Pokud tým sformuluje požadavky na dodání grafiky, laboratoř se postará o jejich dodání. Je dovoleno, dokonce přímo doporučeno, použít jako součást projektu produkty třetích stran (knihovny apod.), pokud to jejich licence umožní.

Literatura a odkazy

Vlastní články

Modelica

WPF

Jazyky

Testování

Nástroje

Různé

modelicaeditor.txt · Poslední úprava: 2008/03/20 16:21 autor: stod