System for automating calculation of a comprehensibility score for a software program
AssigneeInternational Business Machines Corporation
InventorsVivek K. Gupta, Manish Kataria, Nihar Tiku
Life of this patent
Estimating the term…
Abstract
A method, a computer program product, and a computer system for automating calculation of a comprehensibility score for a software program. An analytics engine on a computer matches tokens of the software program with a language dictionary, a domain specific vocabulary, and a language grammar. The analytics engine determines a comprehensibility score for the software program, based on matching tokens. The analytics engine provides the comprehensibility score to a reviewer evaluating the software program.
Claims12
A method for automating calculation of a comprehensibility score for a software program, the method comprising:
- matching, by an analytics engine on a computer, tokens of the software program with a language dictionary, a domain specific vocabulary, and a language grammar, wherein the tokens are non-terminal symbols and comprise class names, method names, and variable names;
- matching, by the analytics engine, a compound word with different matching words of the language dictionary, in response to determining that the compound word is used in a token;
- calculating, by the analytics engine, a weighted average derived from various categories of the non-terminal symbols used in the software program;
- determining, by the analytics engine, a comprehensibility score for the software program, based on the weighted average derived from the various categories of the non-terminal symbols used in the software program;
- and
- providing, by the analytics engine, the comprehensibility score to a reviewer evaluating the software program.
A computer program product for automating calculation of a comprehensibility score for a software program, the computer program product comprising a computer readable storage medium having program code embodied therewith, the program code executable to:
- match tokens of the software program with a language dictionary, a domain specific vocabulary, and a language grammar, wherein the tokens are non-terminal symbols and comprise class names, method names, and variable names;
- match a compound word with different matching words of the language dictionary, in response to determining that the compound word is used in a token;
- calculate a weighted average derived from various categories of the non-terminal symbols used in the software program;
- determine a comprehensibility score for the software program, based on the weighted average derived from the various categories of the non-terminal symbols used in the software program;
- and
- provide the comprehensibility score to a reviewer evaluating the software program.
A computer system for automating calculation of a comprehensibility score for a software program, the computer system comprising:
- one or more processors, one or more computer readable tangible storage devices, and program instructions stored on at least one of the one or more computer readable tangible storage devices for execution by at least one of the one or more processors, the program instructions executable to:
- match tokens of the software program with a language dictionary, a domain specific vocabulary, and a language grammar, wherein the tokens are the non-terminal symbols and comprise class names, method names, and variable names;
- match a compound word with different matching words of the language dictionary, in response to determining that the compound word is used in a token;
- calculate a weighted average derived from various categories of non-terminal symbols used in the software program;
- determine a comprehensibility score for the software program, based on the weighted average derived from the various categories of the non-terminal symbols used in the software program;
- and
- provide the comprehensibility score to a reviewer evaluating the software program.
Dependencies are inferred from the claim text.