Abstract: Software systems are pervasive in our society. They play a vital role in our everyday life and are increasingly more and more complex. Software maintenance is one of the most important software development activities. It is estimated that more than 70% of the total cost of a software system is spent on maintenance activities. This cost can be reduced using Machine Learning (ML) and Artificial Intelligence (AI) in general. AI can be used in various stages of software maintenance, for example to identify design defects early on or code to reuse. We can analyse large amounts of data and identify patterns in a more efficient way by means of machine learning algorithms. In this chapter, we report about two studies that leverage (i) deep learning for code smell detection, and (ii) machine learning for reusable code search during software maintenance. We present the methodology that was followed and discuss the achieved results. We hope that practitioners and researchers reading the chapter will learn about the challenges and opportunities offered by AI, in the context of software maintenance, and that they will be able to successfully apply our proposed solutions to the context of their own software systems.
Loading