# US 2024/0201983 A1 · Software development artifact name generation

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

- Number: US 2024/0201983 A1
- Document ID: US20240201983A1
- Status: Published application
- Kind: A1
- Application number: 18/085,283
- Filed: 2022-12-20
- Published: 2024-06-20
- Earliest claimed: 2022-12-20
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Peter GROENEWEGEN; Priyan VAITHILINGAM; Rohan Jagdish MALPANI; Wenbo WANG
- Web page: https://patentgrep.com/patent/US20240201983A1

## CPC

- G06F 8/20: Software design
- G06F 8/73: Program documentation
- G06F 8/30: Creation or generation of source code
- G06N 3/088: Non-supervised learning, e.g. competitive learning
- G06N 3/0895: Weakly supervised learning, e.g. semi-supervised or self-supervised learning
- G06N 3/09: Supervised learning
- G06N 5/01: Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
- G06N 20/10: using kernel methods, e.g. support vector machines [SVM]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

Some embodiments use specialized machine learning models to generate computing system artifact names which reflect actions, states, conditions, or other aspects of artifact functionality. Artifact creation mechanisms such as method extraction mechanisms, test creation mechanisms, and template extraction mechanisms are enhanced with functionality by which they obtain and suggest meaningful generated names for new artifacts instead of merely prompting users with placeholder names. Specified artifact name formats and name styles are matched during name generation, thereby improving code maintainability and software development efficiency. Generated names are automatically and proactively derived from artifact source code by code summarization, conditional statement location, algorithm category recognition, or name format matching, for example. Generated names are also derived from natural language descriptions in comments and other documentation. Naming gaps left by autocompletion mechanisms are reduced. Inconsistencies between updated artifacts and their names are detected and remedied.

## Claims

### Claim 1

A software development computing system, comprising:
a digital memory;
a processor set including at least one processor, the processor set in operable communication with the digital memory; and
a software development tool which upon execution by the processor set submits a context of a particular software development artifact to a trained machine learning model, the particular software development artifact belonging to a category which also includes a plurality of other software development artifacts, the tool receives from the trained machine learning model a generated name and presents the generated name in a user interface as a candidate name of the particular software development artifact, wherein the generated name distinguishes the particular software development artifact from other software development artifacts in the category and the generated name is not available in the computing system via autocompletion.

### Claim 2 (depends on 1)

The computing system of claim 1, further comprising the trained machine learning model.

### Claim 3 (depends on 1)

The computing system of claim 1, wherein the digital memory is configured by the generated name, and the generated name matches at least one of the following name formats:
an action-object format;
an action-modifier-object format;
an action-action format;
a condition-action format;
a modifier-noun format; or
a state-to-state format.

### Claim 4 (depends on 1)

The computing system of claim 1, wherein the generated name distinguishes the particular software development artifact from other software development artifacts in the category by more than a data type and by more than an index into a sequence of names.

### Claim 5

A software development method performed by a computing system machine learning model to generate an artifact name, the method comprising:
getting a context of a particular software development artifact, the particular software development artifact belonging to a category which also includes a plurality of other software development artifacts, the particular software development artifact being part of a project having non-comment source code;
generating a name based on at least a portion of the context, wherein the name distinguishes the particular software development artifact from other software development artifacts in the category, and the name does not occur elsewhere in the non-comment source code of the project; and
providing the name or a derivation of the name as a candidate name of the particular software development artifact.

### Claim 6 (depends on 5)

The method of claim 5, wherein generating the name comprises:
obtaining a natural language textual description of the particular software development artifact; and
deriving the name from the natural language textual description.

### Claim 7 (depends on 5)

The method of claim 5, wherein generating the name comprises:
summarizing a source code of the particular software development artifact, thereby obtaining a natural language textual description; and
deriving the name from the textual description.

### Claim 8 (depends on 5)

The method of claim 5, wherein generating the name comprises:
locating a conditional statement in source code of the particular software development artifact; and
deriving the name from the conditional statement.

### Claim 9 (depends on 5)

The method of claim 5, wherein generating the name comprises:
mapping a source code of the particular software development artifact to an algorithm category;
selecting an identifier from the source code of the particular software development artifact; and
deriving the name from the algorithm category and the identifier.

### Claim 10 (depends on 5)

The method of claim 5, further comprising the following prior to providing the generated name or a derivation of the generated name as a candidate name:
finding a current name of the particular software development artifact; and
ascertaining that the generated name differs from the current name.

### Claim 11 (depends on 5)

The method of claim 5, wherein the particular software development artifact comprises at least one of:
a method;
a method argument;
an exception;
a variable;
a class;
a template;
a unit test; or
a file.

### Claim 12 (depends on 5)

The method of claim 5, further comprising at least one of the following prior to providing the generated name or a derivation of the generated name as a candidate name:
spell-checking the generated name;
style-checking the generated name;
comparing a model confidence of the generated name to a threshold; or
comparing the generated name to a set of keywords.

### Claim 13

A software development method performed by a computing system to generate an artifact name, the method comprising:
submitting a context of a particular software development artifact to a trained machine learning model, the particular software development artifact belonging to a category which also includes a plurality of other software development artifacts;
receiving from the trained machine learning model a generated name, wherein the generated name distinguishes the particular software development artifact from other software development artifacts in the category, and is not available in the computing system via autocompletion; and
presenting the generated name as a candidate name of the particular software development artifact.

### Claim 14 (depends on 13)

The method of claim 13, wherein submitting the context comprises submitting at least one of the following:
source code of at least a portion of the particular software development artifact;
source code in a file containing the particular software development artifact; or
documentation describing at least an aspect of the particular software development artifact.

### Claim 15 (depends on 13)

The method of claim 13, wherein the particular software development artifact is part of a project having non-comment source code, and receiving the generated name comprises receiving a name which does not occur elsewhere in the non-comment source code of the project.

### Claim 16 (depends on 13)

The method of claim 13, wherein:
the particular software development artifact is part of a project having non-comment source code; and
the generated name does not occur elsewhere in the non-comment source code of the project.

### Claim 17 (depends on 13)

The method of claim 13, wherein receiving the generated name comprises receiving a name which matches at least one of the following name formats:
an action-object format;
an action-modifier-object format;
an action-action format;
a condition-action format;
a modifier-noun format; or
a state-to-state format.

### Claim 18 (depends on 13)

The method of claim 13, wherein receiving the generated name comprises receiving a name which does not match any of the following name formats:
a modifier-category format;
an action-datatype format; or
a root-index format.

### Claim 19 (depends on 13)

The method of claim 13, wherein receiving the generated name comprises receiving a name which does not include any of the following:
a word “new” or a synonym of the word “new”;
a datatype identifier; or
a sequence index.

### Claim 20 (depends on 13)

The method of claim 13, wherein the particular software development artifact is not any of the following:
a block of pasted code;
a class; or
a file.
