Deep Learning and NLP in Software Engineering

The importance of the methods and algorithms developed in the area of artificial intelligence is continually growing in software development. Expert systems, decision support, and recommendation systems are often parts of those complex systems that have been developed in the last decades. However, the methods of artificial intelligence can also be used for supporting the software development processes during the whole software lifecycle.

The Department of Software Engineering in collaboration with the MTA-SZTE Research Group on Artificial Intelligence takes part in various developments and adaptation of methods related to machine learning and natural language processing. Our research focuses on the various applications of deep learning and NLP techniques.

Machine learning is applied in bug prediction and fault localization research. Additionally, to the classical algorithms, these methods help us to improve the accuracy of the prediction and localization processes.

NLP methods are used in various areas of software development. The embedding methods offer various options for representing the source code, which complements the classical graph-based representation allowing additional source code relationships to be recognized.

NLP methods also provide possibilities for automatization or semi-automatization of human-based development steps such as requirements engineering or handling feedbacks from users. Supporting the tasks of the developers by processing the contents of the Q&A forums and developing recommendation systems based on the results of this processing is also one of our research interests.

Image recognition based on deep learning is also one of the most essential processes that we apply in our projects. The mobile computing needs this feature and its practical implementation is an essential part of the development of embedding systems.

The team works primarily with TensorFlow/Keras.

Key Projects:

  • Semantic analsys of Stack Overflow posts
  • Deep learning source code

Selected publications:

Csuvik, Viktor, András Kicsi, and László Vidács. "Source Code Level Word Embeddings in Aiding Semantic Test-to-Code Traceability." In Proceedings of the 10th International Workshop on Software and Systems Traceability, (SST 2019 @ ICSE), 29-36. SST 2019. New York, NY, USA: IEEE, 2019.

Kicsi, András, Márk Rákóczi, and László Vidács. "Exploration and Mining of Source Code Level Traceability Links on Stack Overflow." In Proceedings of ICSOFT 2019, 14th International Conference on Software Technologies, 339-346., 2019.

Kicsi, András, László Tóth, and László Vidács. "Exploring the Benefits of Utilizing Conceptual Information in Test-to-Code Traceability." In Proceedings of the IEEE/ACM 6th International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering (RAISE 2018 @ ICSE). RAISE 2018. New York, NY, USA: ACM, 2018.

Key People (in alphabetical order):

  • Viktor Csuvik
  • András Kicsi
  • Klaudia Ledenyi Szabó
  • Balázs Nagy, PhD
  • Péter Németh
  • Péter Pusztai, PhD
  • Martina Katalin Szabó, PhD
  • László Tóth
  • László Vidács, PhD
Page last modified: January 8, 2020