Predicting work effort for porting software projects across disparate platforms
AssigneeInternational Business Machines Corporation
InventorsJiang Yi Liu, Wen Ji Huang, Yong Qing Xu, Sheng Shuang Li
Life of this patent
Estimating the term…
Abstract
Predicting porting work effort is provided. A total porting work effort to port a software project from a source platform to a disparate target platform is predicted using a first porting work effort, a second porting work effort, and a third porting work effort. The software project is ported from the source platform to the disparate target platform based on the total porting work effort being less than a defined maximum porting work effort threshold level.
Claims16
A computer-implemented method for machine learning model training and software project porting from a source platform to a disparate target platform based on total porting work effort, the computer-implemented method comprising:
- training, by a computer, a first machine learning model to predict a first porting work effort using feature data extracted from a set of historical porting software projects data corresponding to a configuring phase, a compiling phase, a linking phase, and a code changing phase, a second machine learning model to predict a number of new testcases needed to port the software project to the disparate target platform using the feature data extracted from the set of historical porting software projects data corresponding to the configuring phase, the compiling phase, the linking phase, the code changing phase, and a testing phase that includes a number of original testcases used while building a software project, a third machine learning model to predict a second porting work effort using the number of new testcases that is included in the feature data extracted from the set of historical porting software projects data corresponding to the testing phase, a fourth machine learning model to predict a number of bugs detected while running the number of original testcases and the number of new testcases using the feature data extracted from the set of historical porting software projects data corresponding to the configuring phase, the compiling phase, the linking phase, the code changing phase, and the testing phase, a fifth machine learning model to predict a third porting work effort using the number of bugs detected that is included in the feature data extracted from the set of historical porting software projects data corresponding to a bug fixing phase, and a sixth machine learning model to predict the total porting work effort using the first porting work effort input by the first machine learning model, the second porting work effort input by the third machine learning model, and the third porting work effort input by the fifth machine learning model into the sixth machine learning model, wherein:
- the compiling phase runs compile commands for a compiler to transform source code of the software project into machine level instructions, the linking phase runs linkage commands for a linker to locate symbols in different objects and libraries to generate an executable software project, the code changing phase modifies the source code of the software project in one or more phases for the source code to run on the disparate target platform, the testing phase runs testcases prior to and during porting of the software project from the source platform to the disparate target platform to verify functionality of the software project on the disparate target platform, and the bug fixing phase fixes software bugs that cause vulnerabilities in the software project detected by testcase failures to increase security of the software project during the porting of the software project from the source platform to the disparate target platform;
- and
- porting, by the computer, the software project from the source platform to the disparate target platform based on the total porting work effort being less than a defined maximum porting work effort threshold level in response to the sixth machine learning model predicting the total porting work effort to port the software project from the source platform to the disparate target platform based on the first porting work effort input by the first machine learning model, the second porting work effort input by the third machine learning model, and the third porting work effort input by the fifth machine learning model into the sixth machine learning model, wherein the computer increases the security of the software project during the porting of the software project from the source platform to the disparate target platform by fixing the software bugs that cause the vulnerabilities in the software project in the bug fixing phase.
A computer system for machine learning model training and software project porting from a source platform to a disparate target platform based on total porting work effort, the computer system comprising:
- a communication fabric;
- a set of computer-readable storage media connected to the communication fabric, wherein the set of computer-readable storage media collectively stores program instructions;
- and
- a set of processors connected to the communication fabric, wherein the set of processors executes the program instructions to:
- train a first machine learning model to predict a first porting work effort using feature data extracted from a set of historical porting software projects data corresponding to a configuring phase, a compiling phase, a linking phase, and a code changing phase, a second machine learning model to predict a number of new testcases needed to port the software project to the disparate target platform using the feature data extracted from the set of historical porting software projects data corresponding to the configuring phase, the compiling phase, the linking phase, the code changing phase, and a testing phase that includes a number of original testcases used while building a software project, a third machine learning model to predict a second porting work effort using the number of new testcases that is included in the feature data extracted from the set of historical porting software projects data corresponding to the testing phase, a fourth machine learning model to predict a number of bugs detected while running the number of original testcases and the number of new testcases using the feature data extracted from the set of historical porting software projects data corresponding to the configuring phase, the compiling phase, the linking phase, the code changing phase, and the testing phase, a fifth machine learning model to predict a third porting work effort using the number of bugs detected that is included in the feature data extracted from the set of historical porting software projects data corresponding to a bug fixing phase, and a sixth machine learning model to predict the total porting work effort using the first porting work effort input by the first machine learning model, the second porting work effort input by the third machine learning model, and the third porting work effort input by the fifth machine learning model into the sixth machine learning model, wherein:
- the compiling phase runs compile commands for a compiler to transform source code of the software project into machine level instructions, the linking phase runs linkage commands for a linker to locate symbols in different objects and libraries to generate an executable software project, the code changing phase modifies the source code of the software project in one or more phases for the source code to run on the disparate target platform, the testing phase runs testcases prior to and during porting of the software project from the source platform to the disparate target platform to verify functionality of the software project on the disparate target platform, and the bug fixing phase fixes software bugs that cause vulnerabilities in the software project detected by testcase failures to increase security of the software project during the porting of the software project from the source platform to the disparate target platform;
- and
- port the software project from the source platform to the disparate target platform based on the total porting work effort being less than a defined maximum porting work effort threshold level in response to the sixth machine learning model predicting the total porting work effort to port the software project from the source platform to the disparate target platform based on the first porting work effort input by the first machine learning model, the second porting work effort input by the third machine learning model, and the third porting work effort input by the fifth machine learning model into the sixth machine learning model, wherein the security of the software project is increased during porting of the software project from the source platform to the disparate target platform by fixing the software bugs that cause the vulnerabilities in the software project in the bug fixing phase.
A computer program product for machine learning model training and software project porting from a source platform to a disparate target platform based on total porting work effort, the computer program product comprising a set of computer-readable storage media having program instructions collectively stored therein, the program instructions executable by a computer to cause the computer to:
- train a first machine learning model to predict a first porting work effort using feature data extracted from a set of historical porting software projects data corresponding to a configuring phase, a compiling phase, a linking phase, and a code changing phase, a second machine learning model to predict a number of new testcases needed to port the software project to the disparate target platform using the feature data extracted from the set of historical porting software projects data corresponding to the configuring phase, the compiling phase, the linking phase, the code changing phase, and a testing phase that includes a number of original testcases used while building a software project, a third machine learning model to predict a second porting work effort using the number of new testcases that is included in the feature data extracted from the set of historical porting software projects data corresponding to the testing phase, a fourth machine learning model to predict a number of bugs detected while running the number of original testcases and the number of new testcases using the feature data extracted from the set of historical porting software projects data corresponding to the configuring phase, the compiling phase, the linking phase, the code changing phase, and the testing phase, a fifth machine learning model to predict a third porting work effort using the number of bugs detected that is included in the feature data extracted from the set of historical porting software projects data corresponding to a bug fixing phase, and a sixth machine learning model to predict the total porting work effort using the first porting work effort input by the first machine learning model, the second porting work effort input by the third machine learning model, and the third porting work effort input by the fifth machine learning model into the sixth machine learning model, wherein:
- the compiling phase runs compile commands for a compiler to transform source code of the software project into machine level instructions, the linking phase runs linkage commands for a linker to locate symbols in different objects and libraries to generate an executable software project, the code changing phase modifies the source code of the software project in one or more phases for the source code to run on the disparate target platform, the testing phase runs testcases prior to and during porting of the software project from the source platform to the disparate target platform to verify functionality of the software project on the disparate target platform, and the bug fixing phase fixes software bugs that cause vulnerabilities in the software project detected by testcase failures to increase security of the software project during the porting of the software project from the source platform to the disparate target platform;
- and
- port the software project from the source platform to the disparate target platform based on the total porting work effort being less than a defined maximum porting work effort threshold level in response to the sixth machine learning model predicting the total porting work effort to port the software project from the source platform to the disparate target platform based on the first porting work effort input by the first machine learning model, the second porting work effort input by the third machine learning model, and the third porting work effort input by the fifth machine learning model into the sixth machine learning model, wherein the security of the software project is increased during porting of the software project from the source platform to the disparate target platform by fixing the software bugs that cause the vulnerabilities in the software project in the bug fixing phase.
Dependencies are inferred from the claim text.