Tyto stránky jsou součástí prezentace výzkumných aktivit skupiny modelování a simulace. Specificky se věnuje aplikaci formálních modelů a teorie simulace v oblasti softarového inženýrství a návrhu vestavěných, řídicích a agentních systémů.
Model (Simulation) Based Design (MSBD)
Vývojem softwaru se už po mnoho let zabývá softwarové inženýrství, jehož cílem je odhalit problémy související s vývojem softwaru a jeho používáním a navrhnout vhodné přístupy k vývoji softwaru pro různé aplikační oblasti. V současné době existuje mnoho metod a nástrojů, jako příklad si můžeme uvést klasické modely vývoje (vodopádový model, iterační model, RUP apod.) nebo agilní metodologie (extrémní programování, Crystal, atd.) Všechny tyto přístupy využívají ve svých etapách modely a modelování, neboť umožňují lépe postihnout ty aspekty vyvíjeného systému, které nás právě zajímají. Nejznámějším modelovacím prostředkem je UML (Unified Modeling Language), ovšem při vývoji specializovaných systémů se s výhodami dají využít i jiné prostředky (např. Petriho sítě, DEVS či specializované nástroje).
V oblasti metod vývoje systémů došlo v posledním desetiletí k rozvoji přístupu, který intenzivně využivá modelování, a to v takovém rozsahu, že je lze považovat za základní "programovací jazyk". Pro tento přístup existuje více označení, nejznámějším (a také nejdéle používaným) termínem je Model-based design (MBD). Vývoj softwarových systémů zahrnuje jejich analýzu, návrh, implementaci a testování. V klasickém pojetí je fáze implementace prováděna programátory, kteří převádějí navržené koncepty z vypracovaných modelů do programovacího jazyka. V jejich práci jim mohou pomáhat různé automatizované transformace vybraných modelů, ze kterých lze získat kostru programu či přímo kompletní zdrojový text nějakého modulu. Problémem možné automatické konverze modelů se zabývají např. tvůrci UML (viz zavedení metaúrovní, MOF apod.) Automatizovaná transformace modelů skrývá jedno nebezpečí – nekonzistence (pokud nebudeme uvažovat případ, že tato konverze je skutečně úplná a do výsledného kódu se již nezasahuje). Vytvořené modely se dosti často chápou jako odrazový bod pro vlastní práci, tj. programování, a další úpravy vynucené nalezením chyby či změnami požadavků se provádějí v programu a již se nepromítají zpět do modelů. Dalším problémem je testování – nelze testovat, dokud nemáme k dispozici alespoň prototyp (tj. minimalistickou implemenaci) vyvíjeného systému.
Základní princip MSBD
Základní myšlenky námi vyvíjeného přístupu v oblasti MSBD lze shrnout do těchto bodů:
vývoj je interaktivní a iterativní
po celý vývoj systému pracujeme s modely
od určitého stupně abstrakce se jedná o spustitelné (simulační) modely – je možné jednodušším způsobem provádět testování
systém je vyvíjen komponentně, je možné některé modelované části systému v konenčných fázích nahradit reálnou podobou (např. připojit rozhraní systému k existujícímu internetovému uživatelskému rozhraní)
Aktivní projekty:
Projekt PNtalk– Návrhový a simulační framework využívající formalismus Objektově orientovaných Petriho sítí.
Případové studie
Metodu MBD se snažíme rozvíjet na několika případových studiích, na kterých si ověřujeme naše myšlenky a použití nástrojů vyvinutých v naší skupině. V současné době jde především o: