Patent classifications
G06F8/72
IMPROVEMENT PROPOSING DEVICE AND IMPROVEMENT PROPOSING METHOD
Even when one refactoring operation cannot establish a target software structure, an appropriate refactoring operation establishes the target software structure. An improvement proposing device includes: a structure comparator to output, as an improvement object, a difference between a first software structure and a second software structure different in software structure from the first software structure; and an improvement plan examining unit to examine an improvement plan for each improvement portion in the improvement object, the improvement plan being a method for bringing the first software structure closer to the second software structure.
IMPROVEMENT PROPOSING DEVICE AND IMPROVEMENT PROPOSING METHOD
Even when one refactoring operation cannot establish a target software structure, an appropriate refactoring operation establishes the target software structure. An improvement proposing device includes: a structure comparator to output, as an improvement object, a difference between a first software structure and a second software structure different in software structure from the first software structure; and an improvement plan examining unit to examine an improvement plan for each improvement portion in the improvement object, the improvement plan being a method for bringing the first software structure closer to the second software structure.
Software architecture by untangling undesired code level dependencies using code refactoring
A method of improving software architecture by untangling undesired code level dependencies is provided herein. The method includes the following stages: generating an abstract representation of a computer code in a form of a code model; recording manipulations to the computer code applied by a user to the code model; calculating a series of refactorings in the computer code that represents the recorded manipulation; and carrying out the refactorings within the computer code. Specifically, some of the refactorings include separating low level software elements on the method level in response to the user manipulations of the model.
Accelerating application modernization
Various embodiments of the present technology generally relate to the characterization and improvement of software applications. More specifically, some embodiments relate to systems and methods for modeling code behavior and generating new versions of the code based on the code behavior models. In some embodiments, a method of improving a codebase includes recording a run of the existing code, characterizing the code behavior via one or more models, prototyping new code according to a target language and target environment, deploying the new code to the target environment, and comparing the behavior of the new code to the behavior of the existing code. In some implementations, generating new code based on the behavior models includes using one or more machine learning techniques for code generation based on the target language and environment.
Mechanism for compatibility and preserving framework refactoring
The subject disclosure relates to enabling the evolution of a framework by providing public surface area factorings for both old and new public surface areas. The factoring can mitigate changes in the implementation of existing distributions of framework. The factoring can also mitigate breaking existing binaries. Further, the factoring can be provided while mitigating a degradation in the security guarantees of the linking model. The factorings can be applied for runtime and/or for a development toolkit. Thus, multiple, almost simultaneous, interoperable views of a framework implementation can be enabled at runtime and/or at design or build time. The views can represent different versions of the framework.
System and method for detecting source code anomalies
A system includes a source code repository which stores source code entries, which include instructions in a programming language for performing computing tasks. A style repository stores a style profile for a plurality of users. Each style profile includes predefined style features associated with formatting characteristics of the stored source code entries for a corresponding user. A source code analyzer receives, from a user, a source code which includes instructions in the programming language for performing a computing task. Style features of the source code are determined. The style features include characteristics of a format of the source code. The source code analyzer determines whether the style features correspond to predefined style features indicated by a style profile of the user. If this is the case, the source code is stored in the source code repository. If this is not the case, storage of the source code is prevented.
CODE CONSOLIDATION SYSTEM
A code identifies a first segment of code included in a first computer program stored on a first repository that matches, within a threshold range, a second segment of code included in a second computer program stored on a second repository. The first segment of code and the second segment of code perform one or more computing tasks. An application programming interface (API) is generated that performs the one or more computing tasks of the first and second segments of code. The first segment of code within the first computer program is replaced with a first call to the generated API. The second segment of code within the second computer program is replaced with a second call to the generated API.
LONG METHOD AUTOFIX ENGINE
A method and apparatus are disclosed for eliminating overlong source code segments (e.g., methods) by evaluating input source code segments for a plurality of predetermined code metric values to identify a first long code segment based on predetermined code metric values for output and storage in a codefix issue queue, applying multiple extraction algorithms to the first long code segment to generate a second code segment that is semantically equivalent to and shorter than the first long code segment; and then generating a fixed codegraph representation of the software program using the second code segment to replace the first long code segment.
SOFTWARE CODE CONVERTER FOR RESOLVING REDUNDANCY DURING CODE DEVELOPMENT
A code converter uses machine learning to determine conflicts and redundancies in software code. Generally, the code converter uses machine learning to convert software code into vectors that represent the code. These vectors may then be compared with other vectors to determine similarities between code. The similarities may be used to detect conflicts and/or redundancies created during the development process (e.g., when a developer attempts to change the code).
SOFTWARE CODE VECTORIZATION CONVERTER
A code converter uses machine learning to determine conflicts and redundancies in software code. Generally, the code converter uses machine learning to convert software code into vectors that represent the code. These vectors may then be compared with other vectors to determine similarities between code. The similarities may be used to detect conflicts and/or redundancies created during the development process (e.g., when a developer attempts to change the code).