Patent classifications
G06F8/72
Removing feature flag-related codebase from applications
A system and method automatically refactor mature program code having interdependent features to remove instructions pertaining to features that are no longer used. To facilitate reduction of the number of feature dependencies to test, instrumentation data are analyzed to determine which of the available features are in actual use. A graph of feature dependencies is built based on the program configuration, and the program code is simulated, according to existing testing protocols, with various combinations of features disabled to determine whether the program continues to function without error. When features are found that can be safely removed, the codebase is automatically refactored to eliminate the implementing code corresponding to the features. The refactored code then may be further automatically retested and deployed into the production environment.
System and method for migrating legacy software to a system common architecture
A software migration system includes a processor; a user interface that receives and displays components of a legacy software and a new software system; and a migration program as machine instructions stored on a non-transitory, computer-readable storage medium. The processor executes to identify reference models, standards, and requirements of a system common architecture that together define a process for migrating the legacy software to the new software system; load the legacy software onto a virtual machine instantiated on a dedicated hardware platform; refactor the legacy software; subdivide the refactored legacy software into legacy software subsets; move a first legacy software subset to a second virtual machine instantiated on the hardware platform; for a second legacy software subset, adapt the second legacy software subset to the system common architecture; and combine the adapted second legacy software subset and the first legacy software subset to produce the new software system.
System and method for migrating legacy software to a system common architecture
A software migration system includes a processor; a user interface that receives and displays components of a legacy software and a new software system; and a migration program as machine instructions stored on a non-transitory, computer-readable storage medium. The processor executes to identify reference models, standards, and requirements of a system common architecture that together define a process for migrating the legacy software to the new software system; load the legacy software onto a virtual machine instantiated on a dedicated hardware platform; refactor the legacy software; subdivide the refactored legacy software into legacy software subsets; move a first legacy software subset to a second virtual machine instantiated on the hardware platform; for a second legacy software subset, adapt the second legacy software subset to the system common architecture; and combine the adapted second legacy software subset and the first legacy software subset to produce the new software system.
AUTOMATIC MODIFICATION OF REPOSITORY FILES
In an embodiment, a method comprises accessing a first computer program source code file from among a plurality of files in a computer program source code repository; applying a first check to the first source code file, from among a plurality of stored checks, each of the checks comprising a set of expected source code instructions; determining whether applying the first check results in generating differential output in the repository, and in response thereto, requesting the repository to initiate a change request in relation to the first source code file, the change request comprising metadata relating to the expected source code instructions; repeating the applying and the determining, for all other checks in the plurality of stored checks; repeating the accessing, the applying and the determining, for all other files in the plurality of files.
Source code text replacement by example
Flexible yet efficient “find” operations search source code for matches to a general pattern after a developer provides an example string that matches the pattern, without requiring the developer to write a regular expression or script that will implement the desired pattern. Example-driven find-replace functionality uses regular expressions or other pattern match codes, and scripts or other transforms, which are synthesized automatically from examples provided by a developer. This technology allows the developer to focus on workflow inside an integrated development environment instead of breaking focus to search for external documentation, or unfortunately foregoing the flexibility and power of regular expressions and scripts. Synthesizer outputs may be directly or indirectly ranked through user feedback, allowing their refinement. Find match generality may be controlled, e.g., by specifying regex star positions or star counts. Entry of guiding examples may be assisted by autocompletion. Performance criteria are also described.
Domain-driven application breakout
Disclosed are various embodiments for domain-driven application breakout. Application components are identified based on analysis of a computing application, where the application components are different portions of the computing application. Individual ones of the application components are associated with a category, where the category may include a business domain category. One or more of the application components associated with the category are extracted as an independently deployable subunit, which may include a microservice. The independently deployable subunit is generated for the category using the at least one of the application components and deployed separate from the computing application. A local call in the computing application to the extracted application components is refactored to a network call to the independently deployable subunit.
Domain-driven application breakout
Disclosed are various embodiments for domain-driven application breakout. Application components are identified based on analysis of a computing application, where the application components are different portions of the computing application. Individual ones of the application components are associated with a category, where the category may include a business domain category. One or more of the application components associated with the category are extracted as an independently deployable subunit, which may include a microservice. The independently deployable subunit is generated for the category using the at least one of the application components and deployed separate from the computing application. A local call in the computing application to the extracted application components is refactored to a network call to the independently deployable subunit.
Code reading supporting device, code reading supporting method, and storage medium
According to one embodiment, a code information storage is configured to store information on a plurality of functions, a calling relationship between the plurality of functions, and code blocks in the respective plurality of functions. A user operation storage is configured to store information of an already read code block. An already read graph generator is configured to generate an already read graph expressing an already read function including the already read code block, all the code blocks included in the already read function, and a calling relationship between the already read code block and the already read function. An expression of the already read code block differs from an expression of the other code block.
Code reading supporting device, code reading supporting method, and storage medium
According to one embodiment, a code information storage is configured to store information on a plurality of functions, a calling relationship between the plurality of functions, and code blocks in the respective plurality of functions. A user operation storage is configured to store information of an already read code block. An already read graph generator is configured to generate an already read graph expressing an already read function including the already read code block, all the code blocks included in the already read function, and a calling relationship between the already read code block and the already read function. An expression of the already read code block differs from an expression of the other code block.
DETECTING DUPLICATED CODE PATTERNS IN VISUAL PROGRAMMING LANGUAGE CODE INSTANCES
In various embodiments, a process for detecting duplicated code patterns in visual programming language code instances includes analyzing a repository of graph based visual programming language code instances and detecting a similar code portion pattern duplicated among a group of graph based visual programming language code instances included in the repository of graph based visual programming language code instances including by using an index and tokenizing a flow corresponding to at least one graph based visual programming language code instance in the group of graph based visual programming language code instance. The process includes visually indicating elements belonging to the detected similar code portion pattern within a visual representation of at least one of the group of graph based visual programming language code instances.