# US 10,503,478 B2 · System and method for guiding a user in a software development lifecycle using machine learning

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,503,478 B2
- Document ID: US10503478B2
- Status: Granted
- Kind: B2
- Application number: 15/894,807
- Filed: 2018-02-12
- Published: 2018-08-16
- Granted: 2019-12-10
- Earliest claimed: 2017-02-14
- Assignees: HCL Technologies Limited
- Applicants: HCL Technologies Limited
- Inventors: Arvind Kumar Maurya; Yogesh Gupta
- Web page: https://patentgrep.com/patent/US10503478B2

## CPC

- G06F 8/10: Requirements analysis; Specification techniques
- G06F 8/20: Software design
- G06F 8/33: Intelligent editors
- G06F 9/453: {Help systems}
- G06N 20/00: Machine learning
- G06F 8/36: Software reuse
- G06F 9/4451: {User profiles; Roaming}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

The present disclosure relates to system(s) and method(s) for guiding a user in software development lifecycle using machine learning. The system is configured to receive real-time contextual information from a user device and user profile data from a profile database. Further, the system is configured to determine a current issue faced by the current user of the user device. In the next step, the system is configured to enforce a historical solution, from the set of historical solutions, associated with the current issue. If the historical solution is not applicable to address the current issue, the system is configured to extract one or more new solutions, from one or more secondary data sources. Finally, the system is configured to suggest the one or more new solutions to the current user, thereby guiding the current user to address the current issue.

## Claims

### Claim 1

A system for guiding a user of an Integrated Development Environment (IDE), the system comprising:
a memory; and
a processor coupled to the memory, wherein the processor is configured to execute programmed instructions stored in the memory to:
receive
real-time contextual information from a user device, wherein the real-time contextual information is associated with an Integrated Development Environment (IDE) enabled over the user device, wherein the real-time contextual information is determined based on at least one of a software development language, type of Integrated Development Environment (IDE), software defects and user profile data, and
the user profile data, from a profile database, associated with a current user of the user device, wherein the user profile data comprises a set of historical solutions associated with the current user;
determine a current issue faced by the current user of the user device based on the real-time contextual information, and whether the current issue has been previously faced by the current user;
prioritize the current issue to be addressed, when multiple current issues are simultaneously faced by the current user, wherein the current issue, of the multiple issues, is prioritize based on a weighted score, wherein the weighted score is computed based on a formulation comprising WS=Σi=1i=N LWSi, wherein LWS=LC*(TLC/TLF), and wherein ‘LC’ indicates Unique occurrence of all words in a label for a single artifact, ‘TLC’ indicates Unique occurrence of all words in a label in all artifacts, ‘TLF’ indicates Total occurrence of all the words in a label in all artifacts, and wherein an artifact is a document comprising description of each issue faced by the current user;
enforce a historical solution when the historical solution is present in the set of historical solutions, wherein the presence of the historical solution in the set of historical solutions ensures that the current issue has been previously faced by the current user;
extract one or more new solutions associated with the current issue from one or more secondary data sources, when the current issue is not associated with a set of historical solutions; and
suggest the one or more new solutions to the current user, when the set of historical solutions is not applicable to the current issue, thereby guiding the current user of the Integrated Development Environment (IDE) to address the current issue.

### Claim 2 (depends on 1)

The system of claim 1, wherein the current user is a software developer or a software tester.

### Claim 3 (depends on 1)

The system of claim 1, wherein the real-time contextual information is captured by a client side data processing unit enabled over the user device using text mining and machine learning algorithm.

### Claim 4 (depends on 1)

The system of claim 1, further configured to enable a user profile interface to replicate the user profile across different user devices.

### Claim 5 (depends on 1)

The system of claim 1, wherein the real-time contextual information is determined based on at least one of software development language, type of Integrated Development Environment (IDE), software defects and user profile data.

### Claim 6 (depends on 1)

The system of claim 1, the secondary data sources comprise URIs, source control, bugs and test database, and support system.

### Claim 7 (depends on 1)

The system of claim 1, further configured to update the set of historical solutions to include the one or more new solutions.

### Claim 8

A method for guiding a user of an Integrated Development Environment (IDE), the method comprising:
receiving, by a processor,
real-time contextual information from a user device, wherein the real-time contextual information is associated with an Integrated Development Environment (IDE) enabled over the user device, wherein the real-time contextual information is determined based on at least one of a software development language, type of Integrated Development Environment (IDE), software defects and user profile data, and
the user profile data, from a profile database, associated with a current user of the user device, wherein the user profile data comprises a set of historical solutions associated with the current user;
determining, by the processor, a current issue faced by the current user of the user device based on the real-time contextual information, and whether the current issue has been previously faced by the current user;
prioritizing the current issue to be addressed, when multiple current issues are simultaneously faced by the current user, wherein the current issue, of the multiple issues, is prioritize based on a weighted score, wherein the weighted score is computed based on a formulation comprising WS=Σi=1i=N LWSi, wherein LWS=LC*(TLC/TLF), and wherein ‘LC’ indicates Unique occurrence of all words in a label for a single artifact, ‘TLC’ indicates Unique occurrence of all words in a label in all artifacts, ‘TLF’ indicates Total occurrence of all the words in a label in all artifacts, and wherein an artifact is a document comprising description of each issue faced by the current user;
enforcing, by the processor, a historical solution when the historical solution is present in the set of historical solutions, wherein the presence of the historical solution in the set of historical solutions ensures that the current issue has been previously faced by the current user;
extracting, by the processor, one or more new solutions associated with the current issue from one or more secondary data sources, when the current issue is not associated with a set of historical issues; and
suggesting, by the processor, the one or more new solutions to the current user, when the current issue is not associated with the set of historical issues, thereby guiding the current user of the Integrated Development Environment (IDE) to address the current issue.

### Claim 9 (depends on 8)

The method of claim 8, wherein the current user is a software developer or a software tester.

### Claim 10 (depends on 8)

The method of claim 8, wherein the real-time contextual information is captured by a client side data processing unit enabled over the user device using text mining and machine learning algorithm.

### Claim 11 (depends on 8)

The method of claim 8, further configured to enable a user profile interface to replicate the user profile across different user devices.

### Claim 12 (depends on 8)

The method of claim 8, wherein the real-time contextual information is determined based on at least one of software development language, type of Integrated Development Environment (IDE), software defects and user profile data.

### Claim 13 (depends on 8)

The method of claim 8, the secondary data sources comprise URIs, source control, bugs and test database, and support system.

### Claim 14 (depends on 8)

The method of claim 8, further configured to update the set of historical solutions to include the one or more new solutions.

### Claim 15

A computer program product having embodied thereon a computer program for guiding a user of an Integrated Development Environment (IDE), the computer program product comprising:
a program code for receiving
real-time contextual information from a user device, wherein the real-time contextual information is associated with an Integrated Development Environment (IDE) enabled over the user device, wherein the real-time contextual information is determined based on at least one of a software development language, type of Integrated Development Environment (IDE), software defects and user profile data, and
the user profile data, from a profile database, associated with a current user of the user device, wherein the user profile data comprises a set of historical solutions associated with the current user;
a program code for determining a current issue faced by the current user of the user device based on the real-time contextual information, and whether the current issue has been previously faced by the current user;
a program code for prioritizing the current issue to be addressed, when multiple current issues are simultaneously faced by the current user, wherein the current issue, of the multiple issues, is prioritize based on a weighted score, wherein the weighted score is computed based on a formulation comprising WS=Σi=1i=N LWSi, wherein LWS=LC*(TLC/TLF), and wherein ‘LC’ indicates Unique occurrence of all words in a label for a single artifact, ‘TLC’ indicates Unique occurrence of all words in a label in all artifacts, ‘TLF’ indicates Total occurrence of all the words in a label in all artifacts, and wherein an artifact is a document comprising description of each issue faced by the current user;
a program code for enforcing a historical solution when the historical solution is present in the set of historical solutions, wherein the presence of the historical solution in the set of historical solutions ensures that the current issue has been previously faced by the current user;
a program code for extracting one or more new solutions associated with the current issue from one or more secondary data sources, when the current issue is not associated with a set of historical issues; and
a program code for suggesting the one or more new solutions to the current user, when the current issue is not associated with the set of historical issues, thereby guiding the current user of the Integrated Development Environment (IDE) to address the current issue.
