CODE CLONE NOTIFICATION AND ARCHITECTURAL CHANGE VISUALIZATION
First Claim
1. A computer-implemented method for notifying a software developer that software code exists related to software code the developer is modifying, the method comprising:
- parsing a software code base to identify information related to the software code;
indexing the parsed software code base to provide quick identification of matching sections of software code;
detecting a software code change provided by a developer editing software code;
identifying any code clones related to the code change provided by the developer;
upon detecting that a clone was identified, notifying the software developer that at least one clone exists so that the developer can determine whether to apply the detected change to identified clones,wherein the preceding steps are performed by at least one processor.
3 Assignments
0 Petitions
Accused Products
Abstract
A code verification system is described herein that provides augmented code review with code clone analysis and visualization to help software developers automatically identify similar instances of the same code and to visualize differences in versions of software code over time. The system uses code clone search technology to identify code clones and to present the user with information about similar code as the developer makes changes. The system may provide automated notification to the developer or to other teams as changes are made to code segments with one or more related clones. The code verification system also helps the developer to understand architectural evolution of a body of software code. The code verification system provides an analysis component for determining architectural differences based on the code clone detection result between the two versions of the software code base. The code verification system also provides a user interface component for displaying identified differences to developers and others involved with the software development process in intuitive and useful ways.
-
Citations
20 Claims
-
1. A computer-implemented method for notifying a software developer that software code exists related to software code the developer is modifying, the method comprising:
-
parsing a software code base to identify information related to the software code; indexing the parsed software code base to provide quick identification of matching sections of software code; detecting a software code change provided by a developer editing software code; identifying any code clones related to the code change provided by the developer; upon detecting that a clone was identified, notifying the software developer that at least one clone exists so that the developer can determine whether to apply the detected change to identified clones, wherein the preceding steps are performed by at least one processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer system for augmenting software code reviews with code clone identification and architectural change visualization, the system comprising:
-
a processor and memory configured to execute software instructions embodied within the following components; a parsing component that parses software code written in a programming language to identify information related to the software code for indexing; an indexing component that indexes software code information identified during parsing to provide fast lookup and matching of code information; a change detection component that detects a current change by a developer to an identified range of software code; a code clone detection component that identifies one or more code clones related to the identified range of a detected change made by the software developer; a difference visualization component that creates an architectural model of source code and compares the architectural model with other architectural models to identify architectural differences; and a user interface component that provides identified code clones and identified architectural differences visually to the developer. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A computer-readable storage medium comprising instructions for controlling a computer system to display architectural level changes to a software developer related to changes in software code, wherein the instructions, upon execution, cause a processor to perform actions comprising:
-
receiving a first version of software code that includes one or more architectural features; creating a first architectural model that provides a conceptual visualization of the received first version of the software code; receiving a second version of the software code that includes one or more architectural features; creating a second architectural model that provides a conceptual visualization of the received second version of the software code; detecting code clones between two versions of the code bases; comparing the first architectural model and second architectural model to identify one or more architectural level differences between the two models based on the code clone detection result; displaying the architectural differences between the software code versions in a visual display that illustrates the changes to the developer. - View Dependent Claims (20)
-
Specification