Model-driven software development is a widely used alternative to traditional programming that centers itself on modeling software systems. The idea behind the technique is that developers use modeling tools to specify the system at hand and then convert the resulting models to other forms with the help of automatic transformation. Model query is a special case of model transformation that lets us filter out, search for elements of the model which satisfy some conditions.
Tools, such as the Eclipse Modeling Framework (EMF) or EMF-IncQuery, developed as part of the Eclipse Modeling Project support this methodology of software development. EMF-IncQuery, developed by the Fault Tolerant Systems Research Group of the Department of Measurement and Information Systems at Budapest University of Technology and Economics, provides a framework for declarative definition and efficient execution of graph pattern based model queries.
Like other workflows of software development, the definition of models, model transformations and model queries present many opportunities for developers to make mistakes. A solution for this might be the use of static analysis methods that help extract information from the system available at development-time. Based on the result of these inspections, developers' attention can be called to definite and possible mistakes. Besides the ability to reveal these problems, the information gained from static analysis could also be used to improve query execution performance.
In the thesis, I'll first present the aforementioned technologies, then design and implement verifications based on static analysis for the query language of EMF-IncQuery and attempt to increase the efficiency of query execution with the help of static analysis.