Popis tématu

Diplomová práce v oboru Softwarové inženýrství.

Analýza popisů sémantického kontraktu v Java technologiích

Cílem práce je využít poznatky a prototypové nástroje z našich výzkumnů o způsobech implementace DbC v Javě, vyrobit obecnou strojově zpracovávatelnou reprezentaci DbC konstrukcí, implementovat analyzátory pro vybrané nejvíce používané způsoby popisu DbC implicitní i explicitní (JML, Guava, ...) a případně knihovnu pro porovnání konkrétních DbC konstruktů. Ověřit funkčnost na datech používaných v rámci výzkumů.

lang:en Analysis of semantic contracts in Java technologies

Zásady pro vypracování:

1. Seznamte se s konceptem kontraktu softwarových modulů, zejména přístupem Design by Contract (DbC), a prostudujte způsoby popisu DbC kontraktu v Java technologiích.
2. Navrhněte model pro reprezentaci DbC konstrukcí, nezávislý na zdrojovém způsobu popisu, vhodný pro jejich analýzu a další zpracování.
3. Navrhněte a implementujte nástroj (knihovnu či aplikační rámec), který umožní získání dat podle tohoto modelu ze zdrojové či přeložené formy Java programu, vytvoření jejich externí reprezentace, případně porovnání DbC konstrukcí. Nástroj bude schopen zpracovat alespoň dva způsoby popisu DbC konstrukcí a bude dovolovat snadné rozšíření pro další způsoby.
4. S využitím nástroje vytvořte jednoduchou uživatelskou aplikaci pro načtení a zobrazení dat modelu.
5. Důkladně ověřte správnou funkcionalitu nástroje a získané výsledky vyhodnoťte.

Doporučená literatura:

B. Meyer, “Applying ’design by contract’,” Computer, vol. 25, no. 10, pp. 40–51, Oct 1992. [Online]. Available: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=161279

Dietrich, J., Pearce, D.J., Jezek, K. and Brada, P. Contracts in the Wild: A Study of Java Programs. In LIPIcs-Leibniz International Proceedings in Informatics (Vol. 74), ECOOP 2017. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik. 2017


Rezervace tématu:

1. Václav Mareš - přiděleno
2. Jiří Láska

Téma vypsal: Doc. Ing. Přemysl Brada, MSc., Ph.D. (UC 354)

Vypsáno pro akademický rok 2017/2018 dne: 2017-03-29

Zadáno komu: Václav Mareš (dokončeno: 2018-06-30)

Aktualizováno 0