A Literature Review of Machine Learning and Software Development Life cycle Stages (original) (raw)

The Challenges of Machine Learning in Software Development

Migration Letters, 2023

A documentary review was carried out on the production and publication of research papers related to the study of the variables Machine Learning and Software Development. The purpose of the bibliometric analysis proposed in this document was to know the main characteristics of the volume of publications registered in the Scopus database during the period 2017-2022 by Latin American institutions, achieving the identification of 307 publications. The information provided by this platform was organized through graphs and figures, categorizing the information by Year of Publication, Country of Origin, Area of Knowledge and Type of Publication. Once these characteristics have been described, the position of different authors on the proposed topic is referenced through a qualitative analysis. Among the main findings made through this research, it is found that Brazil, with 153 publications, was the Latin American country with the highest scientific production registered in the name of authors affiliated with institutions of that nation. The Area of Knowledge that made the greatest contribution to the construction of bibliographic material related to the study of Machine Learning and Software Development was Computer Science with 256 published documents, and the most used Publication Type during the period indicated above were Conference Articles with 52% of the total scientific production.

Machine Learning: A Software Process Reengineering in Software Development Organization

International Journal of Engineering and Advanced Technology, 2019

BPR (Business Process Re-engineering) is an organizational mechanism that improves the organizational ability in responding to the challenges of qualitative result by change management and improvement in software engineering processes, productivity, product quality and competitive advantage. BPR inherits, explores and implements the building of process change, to incorporate enhancements to the essential considerations and protocols of (SEM) Software Engineering Management. Machine Learning (ML) can be the key aspect for BPR in software development organization. The goal of this research study is raising the conceptual vision about integration of automation technology like ML and its life cycle development within Software Development Life Cycle (SDLC) of the software product and highlights benefits and drawbacks ML techniques in SPM (Software Project Management), and how to implement ML in standard SEM practices. We have attempted the introduction of machine learning in SEM to deter...

Machine Learning and Value Generation in Software Development: A Survey

Communications in Computer and Information Science

Machine Learning (ML) has become a ubiquitous tool for predicting and classifying data and has found application in several problem domains, including Software Development (SD). This paper reviews the literature between 2000 and 2019 on the use the learning models that have been employed for programming effort estimation, predicting risks and identifying and detecting defects. This work is meant to serve as a starting point for practitioners willing to add ML to their software development toolbox. It categorises recent literature and identifies trends and limitations. The survey shows as some authors have agreed that industrial applications of ML for SD have not been as popular as the reported results would suggest. The conducted investigation shows that, despite having promising findings for a variety of SD tasks, most of the studies yield vague results, in part due to the lack of comprehensive datasets in this problem domain. The paper ends with concluding remarks and suggestions for future research.

IJERT-Machine Learning Applications in Software Engineering: Recent Advances and Future Research Directions

International Journal of Engineering Research and Technology (IJERT), 2020

https://www.ijert.org/machine-learning-applications-in-software-engineering-recent-advances-and-future-research-directions https://www.ijert.org/research/machine-learning-applications-in-software-engineering-recent-advances-and-future-research-directions-IJERTCONV8IS01015.pdf Machine learning is the analysis of building computer programs that develop their performance through experience. To assemble the challenge of developing and managing large and complex software systems in a dynamic and changing environment, machine learning techniques have been playing a progressively more important role in much software development and maintenance tasks. Machine learning techniques have proven to be of huge practical value in a diversity of application domains. Not amazingly, the field of software engineering emerging to be a fertile area where many software development and maintenance tasks could be invented as learning problems and approached in terms of learning algorithms. The history of two decades has witnessed a rising interest, and some heartening results and publications in machine learning application to software engineering. As a consequence, a crosscutting niche area emerges. Presently, there are some efforts to raise the awareness and profile of this crosscutting, emerging area, and to systematically study various issues in it. Some of the latest advances in this emerging niche area is presented in this paper.

Machine learning for software engineering: Case studies in software reuse

2002

Abstract There are many machine learning algorithms currently available. In the 21st century, the problem no longer lies in writing the learner but in choosing which learners to run on a given data set. We argue that the final choice of learners should not be exclusive; in fact, there are distinct advantages in running data sets through multiple learners. To illustrate our point, we perform a case study on a reuse data set using three different styles of learners: association rule, decision tree induction, and treatment.

Practical machine learning for software engineering and knowledge engineering

2001

Abstract Machine learning is practical for software engineering problems, even in datastarved domains. When data is scarce, knowledge can be farmed from seeds; ie minimal and partial descriptions of a domain. These seeds can be grown into large datasets via Monte Carlo simulations. The datasets can then be harvested using machine learning techniques. Examples of this knowledge farming approach, and the associated technique of data-mining, is given from numerous software engineering domains.

Investigating Statistical Machine Learning as a Tool for Software Development

As statistical machine learning algorithms and techniques continue to mature, many researchers and developers see statistical machine learning not only as a topic of expert study, but also as a tool for software development. Extensive prior work has studied software development, but little prior work has studied software developers applying statistical machine learning. This paper presents interviews of eleven researchers experienced in applying statistical machine learning algorithms and techniques to human-computer interaction problems, as well as a study of ten participants working during a five-hour study to apply statistical machine learning algorithms and techniques to a realistic problem. We distill three related categories of difficulties that arise in applying statistical machine learning as a tool for software development: (1) difficulty pursuing statistical machine learning as an iterative and exploratory process, (2) difficulty understanding relationships between data and the behavior of statistical machine learning algorithms, and (3) difficulty evaluating the performance of statistical machine learning algorithms and techniques in the context of applications. This paper provides important new insight into these difficulties and the need for development tools that better support the application of statistical machine learning.

Understanding Development Process of Machine Learning Systems: Challenges and Solutions

Background: The number of Machine Learning (ML) systems developed in the industry is increasing rapidly. Since ML systems are different from traditional systems, these differences are clearly visible in different activities pertaining to ML systems software development process. These differences make the Software Engineering (SE) activities more challenging for ML systems because not only the behavior of the system is data dependent, but also the requirements are data dependent. In such scenario, how can Software Engineering better support the development of ML systems? Aim: Our objective is twofold. First, better understand the process that developers use to build ML systems. Second, identify the main challenges that developers face, proposing ways to overcome these challenges. Method: We conducted interviews with seven developers from three software small companies that develop ML systems. Based on the challenges uncovered, we proposed a set of checklists to support the developers. We assessed the checklists by using a focus group. Results: We found that the ML systems development follow a 4-stage process in these companies. These stages are: understanding the problem, data handling, model building, and model monitoring. The main challenges faced by the developers are: identifying the clients' business metrics, lack of a defined development process, and designing the database structure. We have identified in the focus group that our proposed checklists provided support during identification of the client's business metrics and in increasing visibility of the progress of the project tasks. Conclusions: Our research is an initial step towards supporting the development of ML systems, suggesting checklists that support developers in essential development tasks, and also serve as a basis for future research in the area.

NEW TRENDS IN LEARNING FOR SOFTWARE ENGINEERING

— Software is nowadays a critical component of our lives and everyday-work working activities. However, as the technological infrastructure of the modern world evolves a great challenge arises for developing high quality software systems with increasing size and complexity. Software engineers and researchers are striving to meet this challenge by developing and implementing software engineering methodologies able to deliver software products of high quality, within budget and time constraints. The field of machine learning in software engineering has recently emerged to provide means for addressing, studying, analyzing, and understanding critical software development issues and at the same time to offer mature machine learning techniques such as artificial neural network, Bayesian networks, decision trees, fuzzy logic, genetic algorithms, and rule induction. Machine learning algorithms have proven to be of great practical value to software engineering. Not surprisingly, the field of software engineering turns out to be a fertile ground where many software development tasks could be formulated as learning problems and approached in terms of learning algorithms. In this paper, we first take a look at the characteristics and applicability of some frequently utilized machine learning algorithms. We then present the application of machine learning in the different phases of software engineering that include project planning, requirements analysis, design, implementation, testing and maintenance.

The Nexus between the Machine Learning Techniques and Software Project Estimation

Global Disclosure of Economics and Business

Machine Learning is an application of artificial intelligence that allows computers to learn and develop without explicit programming. In other words, the goal of ML is to let computers learn on their own without human involvement and then alter their activities. ML also allows huge data processing. Project management planning and evaluation are vital in project execution. Project management is difficult without a realistic and logical plan. We give a complete overview of works on Machine Learning in Software Project Management. The first category contains software project management research articles. The third category includes research on the phases and tests that are the parameters used in machine-learning management and the final classes of the results from the study, contribution of studies in production, and promotion of machine-learning project prediction. Our contribution also provides a broader viewpoint and context for future project risk management efforts. In conclusion...