Petr Šaloun (ed.), DATAKON 2010, Mikulov, 16-19. 10. 2010, pp. 1-10. Rekonstrukce OCL z SQL * Karel RICHTA 1 1 Katedra softwarového inženýrství, MFF UK Praha Malostranské nám. 25, 118 00 Praha karel.richta@mff.cuni.cz Abstrakt. Jednou z často citovaných zkratek poslední doby je MDD (Model Driven Development), příp. MDA (Model Driven Architecture), nebo dokonce MDE (Model Driven Engineering). Princip těchto přístupů spočívá v tom, že se při tvorbě aplikace využívají různé modely. Sdružení OMG propaguje myšlenku, že práce s modelem může přinést mnoho nových možností. Model může být použit pro generování struktury dat a kostry řešení, reverzním inženýrstvím lze získat model existujícího systému pro jeho snazší pochopení, či úpravy. Nad modelem lze provádět různé transformace, refaktorizace apod. Pro modelování se v současnosti nejvíce využívá standard UML (Unified Modeling Language [9]). Aby však byl model dostatečně úplný, je třeba doplnit diagramy v UML přesnými popisy různých integritních omezení. Pro tento účel obsahuje notace UML speciální jazyk nazvaný OCL (Object Constraint Language [7]). Tento příspěvek se zabývá možnostmi rekonstrukce OCL z existujícího SQL, jako příspěvek k reverznímu inženýrství pro modelem řízený vývoj. Klíčová slova: MDD, MDA, UML, OCL, SQL 1 Úvod Základní princip modelem řízeného stylu [8] spočívá v tom, že se při tvorbě aplikace využívá nějaký model nebo modely. Model nám umožňuje lepší pochopení situace, neboť je abstraktnější a uchopitelnější, než modelovaná skutečnost. Zpravidla se nevyužívá model jediný, ale spíše sada různých modelů (doménový, konceptuální, logický, implementační, či fyzický, apod.). V čem může být vytváření modelu přínosem, co může přinést nového? Jak říká klasik “model zůstává, lidé odcházejí”, proto je existence dostatečně vypovídajícího modelu určitě přínosem pro stabilitu řešení. Zdánlivou výhodou zanedbání modelu je, že vývoj produktu nezahrnuje žádné aktivity, které by nevedly přímo k výsledku, nevytvářejí se žádné vedlejší produkty a artefakty, výsledkem je přímo kód zkonstruovaný podle katalogu požadavků (samozřejmě, pokud nepovažujeme za model samotný katalog požadavků zapsaný v přirozeném jazyce). Vývojář produktu odevzdává tyto artefakty a vzápětí odchází k jiné firmě. V témže okamžiku přichází od zákazníka nový požadavek, nebo požadavek na změnu. Zodpovědné osobě nezbývá, než svěřit řešení změny někomu, kdo zatím neměl s tímto produktem nic společného. Nová osoba se musí seznámit s kódem, vytvořit si jeho model v hlavě a poté jej přizpůsobit novým požadavkům. * Tento text vznikl za částečné podpory výzkumného záměru MŠMT č. MSM0021620838, grantových projektů GAČR: GA201/09/0990 a GA201/09/0983.