Abstract:
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.
Abstract:
A detailed analysis unit generates, with respect to pre-change source code and post-change source code, a detailed condition list for each set of a function included in each piece of source code and a call condition that is met when the function is called. The detailed condition list associates an executable statement included in the function, a detailed precondition that is met before the executable statement is executed under the call condition, and a detailed postcondition that is met after the executable statement is executed under the call condition with each other. A comparison unit generates a variation list based on a pre-change detailed condition list and a post-change detailed condition list. The variation list includes information for identifying an executable statement that differs in at least one of the detailed precondition and the detailed postcondition between the pre-change source code and the post-change source code.
Abstract:
An objective is to extract, as similar functions, not only a pair of functions having the same syntax, but also a pair of functions having different syntaxes but performing similar processes. A similarity determination apparatus includes: a dependency analyzing section to get a list of dependee elements as a dependency list, from a source code including a plurality of functions, each function depending on one of the dependee elements; a similarity calculating section to calculate, based on the dependency list, similarity between the dependee elements on which two of the plurality of functions depend, as dependee similarity, and calculate, based on the calculated dependee similarity. similarity between the two functions, as depender similarity; and a similarity threshold determining section to determine that the two functions are similar to each other when the depender similarity is equal or exceeds a first threshold.
Abstract:
According to the present invention, an analysis unit configured to analyze weights of a plurality of structural elements included in the structural information and weights of dependency relationships of each of the plurality of structural elements based on the structural information and a plurality of execution histories, a structural element designation unit configured to designate one of the structural element among the structural elements included in the structural information as a designated structure element, a display information calculation unit configured to calculate display information including a dependency structural element being a structural element having a dependency relationship with the designated structure element and a weight of the dependency structural element, and a correspondence between the designated structural element and the dependency structural element and a weight of the correspondence, and a display configured to display the display information.
Abstract:
A software analysis device being capable of analyzing dependency between software components more comprehensively and with higher accuracy than a conventional technology is provided. The software analysis device comprising: a first analyzing unit that statically analyzes a structure of a source code of software and analyzes dependency between objects of the software; and a second analyzing unit that executes a program indicated by the source code to acquire first information regarding an operation of the objects and analyzes dependency between the objects based on the first information. The software analysis device analyzes dependency between the objects based on an analysis result of the first analyzing unit and an analysis result of the second analyzing unit.
Abstract:
A reception unit receives an execution history file of a target program and a software structure file of the target program. An association unit associates each piece of execution element information of the execution history file and each piece of component information of the software structure file with each other, thereby generating an association file. A determination unit determines each execution element and a parent element of each execution element as important elements by referring to the software structure file based on the association file, thereby generating an important element file indicating each important element. A visualization unit generates a visualization diagram indicating the structure of the target program in a state where each important element has been emphasized, based on the important element file and the software structure file.
Abstract:
The aim is to detect a portion(s) that may include a latent defect(s) under the impact of a global variable in a source code. A method for analyzing a source code using one or a plurality of processors is provided. The method includes obtaining a defect pattern of a program, obtaining a source code of the program, extracting CRUD information associated with a global variable from the source code, identifying a latent defect from the CRUD information based on the defect pattern, and outputting a CRUD matrix containing information of the latent defect.
Abstract:
A source code analysis unit identifies dependency strengths of one or more functions included in a source code. An influence analysis unit identifies one or more transfer functions that will each move to a different subsystem due to refactoring and identifies a dependency strength to be influenced by the refactoring, based on the dependency strengths that have been identified by the source code analysis unit with respect to the one or more transfer functions. A scale calculation unit calculates the scale of the refactoring, based on the dependency strength to be influenced, which has been identified by the influence analysis unit.
Abstract:
A direct relationship extraction unit generates a direct relationship list indicating a set of a direct dependence source, a direct dependence destination, and a direct dependence type. A storage unit stores an indirect relationship rule including a plurality of direct dependence types, an element relationship, a dependence source element, and a dependence destination element. An indirect relationship extraction unit extracts, from a direct relationship list, a plurality of pieces of direct relationship information corresponding to the plurality of direct dependence types and the element relationship included in the indirect relationship rule, extracts an indirect dependence source which is an element corresponding to a dependence source element in the indirect relationship rule from the extracted plurality of pieces of direct relationship information, and extracts an indirect dependence destination corresponding to a dependence destination element in the indirect relationship rule from the extracted plurality of pieces of direct relationship information.