V reálných softwarových projektech se běžně pro různou funkcionalitu využívají knihovny třetích stran. To s sebou však také přináší problémy spojené s nekompatibilitami mezi jednotlivými knihovnami. Pro odhalování těchto problémů existují nástroje ověřující kompozici modulárních Java aplikací. Jedním takovým je nástroj JaCC vyvíjený na Západočeské univerzitě. Problémem při vývoji takového nástroje je však nedostatek testovacích dat. Tato práce řeší daný problém vytvořením sady testovacích dat, které pokrývají co největší množství možných kompatibilních i nekompatibilních změn při vývoji aplikací v jazyce Java. Dále v práci jsou pomocí vytovřených dat otestovány existující nástroje odhalující nekompatibilitu Java aplikací a jsou porovnány s nástrojem JaCC na základě dosažených výsledků na testovacích datech a dalších mimofunkčních charakteristik.
Anotace v angličtině
In real software projects is common to use third-party libraries. It brings challenges with incompatibilities between two libraries. There are tools for verifying the composition of modular Java applications to detect these problems. One of these tools is JaCC, which is developed at the University of West Bohemia. The problem by developing the tool is the lack of test data for this tool. The objective of this master's thesis is to create a set of test data to simulate possible compatible and incompatible changes in Java applications. Created data are used for testing existing tools for verifying the composition of modular Java applications. The tools are then compared based on tests results and other non functional characteristics.
V reálných softwarových projektech se běžně pro různou funkcionalitu využívají knihovny třetích stran. To s sebou však také přináší problémy spojené s nekompatibilitami mezi jednotlivými knihovnami. Pro odhalování těchto problémů existují nástroje ověřující kompozici modulárních Java aplikací. Jedním takovým je nástroj JaCC vyvíjený na Západočeské univerzitě. Problémem při vývoji takového nástroje je však nedostatek testovacích dat. Tato práce řeší daný problém vytvořením sady testovacích dat, které pokrývají co největší množství možných kompatibilních i nekompatibilních změn při vývoji aplikací v jazyce Java. Dále v práci jsou pomocí vytovřených dat otestovány existující nástroje odhalující nekompatibilitu Java aplikací a jsou porovnány s nástrojem JaCC na základě dosažených výsledků na testovacích datech a dalších mimofunkčních charakteristik.
Anotace v angličtině
In real software projects is common to use third-party libraries. It brings challenges with incompatibilities between two libraries. There are tools for verifying the composition of modular Java applications to detect these problems. One of these tools is JaCC, which is developed at the University of West Bohemia. The problem by developing the tool is the lack of test data for this tool. The objective of this master's thesis is to create a set of test data to simulate possible compatible and incompatible changes in Java applications. Created data are used for testing existing tools for verifying the composition of modular Java applications. The tools are then compared based on tests results and other non functional characteristics.
Seznamte se s tím, jak jazyk Java umožňuje vytvářet modulární aplikace s možností odděleného životního cyklu a nasazení modulů.
Zjistěte jaké problémy mohou nastat v modulární aplikaci z důvodu nekompatibility modulů.
Zaměřte se na dobu překladu i běhu aplikace a kategorizujte možné problémy.
Vytvořte sadu testovacích dat ve formě modulů, které budou simulovat možné nekompatibilní stavy v kategoriích z bodu 2.
Zjistěte jaké jsou možnosti tyto chyby odhalovat a připravte obecně použitelný benchmark, který umožní nalézt chyby na datech z bodu 3
i na budoucích obdobných datech.
Sestavte sadu doporučení, které budou říkat, jak lze předcházet či detekovat vybrané nekompatibilní stavy a které nástroje jsou na to vhodné
z pohledu různých kritérií jako snadnost použití, licenční politika, aktuálnost, integrovatelnost do vývojového cyklu software.
Zásady pro vypracování
Seznamte se s tím, jak jazyk Java umožňuje vytvářet modulární aplikace s možností odděleného životního cyklu a nasazení modulů.
Zjistěte jaké problémy mohou nastat v modulární aplikaci z důvodu nekompatibility modulů.
Zaměřte se na dobu překladu i běhu aplikace a kategorizujte možné problémy.
Vytvořte sadu testovacích dat ve formě modulů, které budou simulovat možné nekompatibilní stavy v kategoriích z bodu 2.
Zjistěte jaké jsou možnosti tyto chyby odhalovat a připravte obecně použitelný benchmark, který umožní nalézt chyby na datech z bodu 3
i na budoucích obdobných datech.
Sestavte sadu doporučení, které budou říkat, jak lze předcházet či detekovat vybrané nekompatibilní stavy a které nástroje jsou na to vhodné
z pohledu různých kritérií jako snadnost použití, licenční politika, aktuálnost, integrovatelnost do vývojového cyklu software.