Logging is a common practice in software engineering to provide insights into working systems. The main uses of log files have always been failure identification and root cause analysis. In recent years, novel applications of logging have emerged that benefit from automated analysis of log files, for example, real-time monitoring of system health, understanding users' behavior, and extracting domain knowledge. Although nearly every software system produces log files, the biggest challenge in log analysis is the lack of a common standard for both the content and format of log data. This paper provides a systematic review of recent literature (covering the period between 2000 and June 2021, concentrating primarily on the last five years of this period) related to automated log analysis. Our contribution is threefold: we present an overview of various research areas in the field; we identify different types of log files that are used in research, and we systematize the content of log files. We believe that this paper serves as a valuable starting point for new researchers in the field, as well as an interesting overview for those looking for other ways of utilizing log information.
Since the time when first CASE (Computer-Aided Software Engineering) methods and tools were developed, little has been done in the area of automated creation of code. CASE tools support a software engineer in creation the system structure, in defining interfaces and relationships between software modules and, after the code has been written, in performing testing tasks on different levels of detail. Writing code is still the task of a skilled human, which makes the whole software development a costly and error-prone process. It seems that recent advances in AI area, particularly in deep learning methods, may considerably improve the matters. The paper presents an extensive survey of recent work and achievements in this area reported in the literature, both from the theoretical branch of research and from engineer-oriented approaches. Then, some challenges for the future work are proposed, classified into Full AI, Assisted AI and Supplementary AI research fields.
Keywords: software development, artificial intelligence, machine learning, automated code generation
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.