Cílem této práce je seznámit se s komponentově orientovanými systémy, s reprezentací a analýzou grafových dat a s existujícími metodami a nástroji pro statickou analýzu komponentově orientovaných systémů, které jsou vyvíjeny na Katedře informatiky a výpočetní techniky Západočeské univerzity v Plzni. Na základě zjištěných poznatků je výsledkem této práce návrh a implementace frameworku s důrazem na podporu vývoje ve více programovacích jazycích a na schopnost zpracovávat velké datové sady. Vytvořený framework pak může sloužit pro podporu výzkumu komponentově orientovaných systémů. Autor této práce navrhuje zobecnění a rozšíření frameworku pro analýzu závislostí softwarových artefaktů, který byl vytvořen v rámci diplomové práce M. Hotovce. Model ukládání dat frameworku byl rovněž analyzován s důrazem na grafové databáze. Jako řešení pro ukládání dat byla nakonec zvolena databáze ArangoDB. Dále byla implementována knihovna s jádrem frameworku v jazyce Java, které umožňuje vývoj nástrojů frameworku. Výsledná návrhová rozhodnutí umožňují využití frameworku v širší škále případů použití, jako je například extrakce a verifikace kompatibility komponent, což bylo demonstrováno replikací této funkcionality v nástroji frameworku vytvořeném v rámci této práce.
Anotace v angličtině
This thesis aims to familiarize with the component-based systems, graph data representation and analysis and with existing methods and tools for static analysis of component-based systems which are being developed at the Department of Computer Science at the University of West Bohemia in Pilsen, Czech Republic. Based on the findings, the result of this thesis is a framework design and implementation with emphasis on support for development in multiple programming languages and on the ability to process large datasets. The created framework then can serve to support the research of the component-based systems. The author of this thesis proposes generalization and extension of the framework for software artifacts dependency analysis which has been created as a part of M. Hotovec's master's thesis. The framework data storage model has also been analyzed with emphasis on graph databases. ArangoDB database has been eventually chosen as a storage solution and a core library in Java has been implemented to allow the development of framework tools. The resulting design decisions allows the framework to be used in broader range of use cases such as components compatibility extraction and verification, which has been demonstrated by replicating this functionality in a framework tool created as a part of this thesis.
Cílem této práce je seznámit se s komponentově orientovanými systémy, s reprezentací a analýzou grafových dat a s existujícími metodami a nástroji pro statickou analýzu komponentově orientovaných systémů, které jsou vyvíjeny na Katedře informatiky a výpočetní techniky Západočeské univerzity v Plzni. Na základě zjištěných poznatků je výsledkem této práce návrh a implementace frameworku s důrazem na podporu vývoje ve více programovacích jazycích a na schopnost zpracovávat velké datové sady. Vytvořený framework pak může sloužit pro podporu výzkumu komponentově orientovaných systémů. Autor této práce navrhuje zobecnění a rozšíření frameworku pro analýzu závislostí softwarových artefaktů, který byl vytvořen v rámci diplomové práce M. Hotovce. Model ukládání dat frameworku byl rovněž analyzován s důrazem na grafové databáze. Jako řešení pro ukládání dat byla nakonec zvolena databáze ArangoDB. Dále byla implementována knihovna s jádrem frameworku v jazyce Java, které umožňuje vývoj nástrojů frameworku. Výsledná návrhová rozhodnutí umožňují využití frameworku v širší škále případů použití, jako je například extrakce a verifikace kompatibility komponent, což bylo demonstrováno replikací této funkcionality v nástroji frameworku vytvořeném v rámci této práce.
Anotace v angličtině
This thesis aims to familiarize with the component-based systems, graph data representation and analysis and with existing methods and tools for static analysis of component-based systems which are being developed at the Department of Computer Science at the University of West Bohemia in Pilsen, Czech Republic. Based on the findings, the result of this thesis is a framework design and implementation with emphasis on support for development in multiple programming languages and on the ability to process large datasets. The created framework then can serve to support the research of the component-based systems. The author of this thesis proposes generalization and extension of the framework for software artifacts dependency analysis which has been created as a part of M. Hotovec's master's thesis. The framework data storage model has also been analyzed with emphasis on graph databases. ArangoDB database has been eventually chosen as a storage solution and a core library in Java has been implemented to allow the development of framework tools. The resulting design decisions allows the framework to be used in broader range of use cases such as components compatibility extraction and verification, which has been demonstrated by replicating this functionality in a framework tool created as a part of this thesis.
Seznamte se s principy komponentově orientovaných softwarových systémů, způsoby reprezentace a analýzy grafových dat.
Seznamte se s metodami a nástroji používanými pro statickou analýzu komponent a jejich závislostí na Katedře informatiky a výpočetní techniky FAV ZČU.
Analyzujte možnosti rozšíření těchto nástrojů s důrazem na podporu zpracování rozsáhlých datových sad a podporu vývoje experimentů v různých programovacích jazycích.
Navrhněte a implementujte sadu rozšíření a demonstrujte jejich užití implementací experimentu založeného na některé z metod z bodu 2.
Ověřte funkčnost a kvalitu vytvořených nástrojů, kriticky zhodnoťte jejich použití a výsledky provedených analýz.
Zásady pro vypracování
Seznamte se s principy komponentově orientovaných softwarových systémů, způsoby reprezentace a analýzy grafových dat.
Seznamte se s metodami a nástroji používanými pro statickou analýzu komponent a jejich závislostí na Katedře informatiky a výpočetní techniky FAV ZČU.
Analyzujte možnosti rozšíření těchto nástrojů s důrazem na podporu zpracování rozsáhlých datových sad a podporu vývoje experimentů v různých programovacích jazycích.
Navrhněte a implementujte sadu rozšíření a demonstrujte jejich užití implementací experimentu založeného na některé z metod z bodu 2.
Ověřte funkčnost a kvalitu vytvořených nástrojů, kriticky zhodnoťte jejich použití a výsledky provedených analýz.