First of all, I would like to praise and thank God for everything. Then, I would like to thank my supervisor, Dr. Árpád Beszédes, for guiding me and directing my PhD study. I will always be thankful to him and will never forget the great moments we have spent together during our journey. Also, I would like to thank my colleagues and co-authors for their endless support. Of course, I would like to thank Edit Szűcs for correcting this thesis from a linguistic point of view. Last, but not least, I would like to thank my wife, children, parents, sister, and brothers for their constant love and support throughout my study. Without their support, my PhD study would not have been possible.Finally, I would like to thank the Department of Software Engineering of the University of Szeged for providing me with a productive study environment. The Stipendium Hungaricum Scholarship program funded my PhD study, so I am very appreciative of their support.