Scientific Programming Approaches to Deep Learning for Source Code Transformation
1China University of Petroleum, Beijing, China
2North China University of Technology, Beijing, China
3Pak-Austria Fachhochschule Institute of Applied Sciences and Technology, Haripur, Pakistan
4Universiti Teknologi Malaysia, Johor Bahru, Malaysia
5CECOS University of IT and Emerging Sciences, Peshawar, Pakistan
Scientific Programming Approaches to Deep Learning for Source Code Transformation
Description
Deep learning (DL) algorithms have many applications in a variety of fields. They are very valuable for a number of problem areas, for example, where little knowledge is available for experts to develop effective algorithms, where programs must adapt to changing conditions, or areas where there are large databases containing valuable implicit regularities to be discovered. Fortunately, the field of software engineering (SE) turns out to be a suitable domain where various software development, testing, and maintenance tasks can be framed as learning problems and can be solved in terms of DL algorithms.
Over the last few years, deep learning has emerged as an effective way of addressing various challenges in the field of source code-based intelligent SE. In intelligent SE, artificial intelligence (AI) techniques (such as deep learning) have been frequently applied to build intelligent tools from software artifacts (for example, source code, code commits, requirement documentation, bug reports, and execution logs) to improve software development and testing processes. Nowadays, there is a growing demand for the convergence of deep learning and software engineering to tackle issues in both software development and testing, such as the use of deep learning on source code to automate or semi-automate several non-trivial tasks, such as code search, code completion, code comments, code smell, generation of commit messages, bug localisation and fixing, clone detection, defect prediction, method names, and API templates learning. Online software development repositories and programming question and answer sites are visited by millions of users, and various manual activities of software developers and testers can be automated or semi-automated using data from these repositories.
This Special Issue welcomes submission of high-quality original articles that present novel and innovative ideas focusing on significant research efforts and new perspectives that explore state-of-the-art, source code-based SE methods and techniques, driven by the convergence of deep learning in different software development activities, with particular focus on the scientific application of algorithms, approaches, methodologies, and tools to source code that enable the effective, secure, and sustainable development of a complex software system. This Special Issue will provide an opportunity for researchers and professionals to explore and develop knowledge and insights into machine assisted source code-based automation across requirement engineering and testing lifecycle. We welcome both original research and review articles.
Potential topics include but are not limited to the following:
- Use of deep learning techniques and algorithms on source code for test automation, test coverage, verification, code checking, and quality assurance.
- Code reviews, code clone detection, code comments, code completion, code search, and code smell prediction and identification based on deep code and inconsistency analysis using deep learning
- New tools, approaches, frameworks, and models proposed for source code transformation and features extraction based on code analysis
- Usage of deep learning in automated program repair, software testing, bug retrieval, bug-fixing, fault localisation, faults and defects predictability, detecting software weakness, and bug-specific named entity recognition
- Software traceability, issue-commit link recovery, requirements classification, software size estimation, software effort estimation, software reliability model selection, and software maintainability using deep learning techniques
- Deep learning on software changes, software repositories, and software community question-answering sites
- Surveys, empirical studies, and systematic literature reviews in connection to deep learning on source for SE