View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide

Formální modely a simulace v návrhu systémů

[PNtalk] [Diplomové a bakalářské projekty] [Privátní stránky]
Radek Kočí


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 and 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.

Charakteristika výzkumu

Cílem výzkumu je zvýšení efektivity a spolehlivosti vývojových procesů při návrhu a realizaci softwarových systémů. Základem výzkumu je aplikace formálních modelů a simulačních metod ve všech etapách vývoje softwarových systémů včetně nasazení systému. Modely obecně umožňují rychle popsat základní koncepty vyvíjeného systému (viz např. UML). Jejich nevýhodou je, že neumožňují ověřovat správnost či validnost systému buď formálními prostředky nebo simulací. Pokročilejší přístupy (viz např. Executabel UML, MDA apod.) umožňují simulovat běh modelů (v tomto kontextu jde tedy o testování modelů). Výsledné modely jsou pak (polo)automatizovaně tranformovány do vybraného programovacího jazyka.

Námi vyvíjený přístup vychází z následujících principů:
Výzkum probíhá v několika rovinách, které se navzájem doplňují:

Projekty


Diplomové a bakalářské projekty


Links to this Page