Browse Prior Art Database

Method of finding implicit interdependencies across methods and files in a software configuration management system

IP.com Disclosure Number: IPCOM000241515D
Publication Date: 2015-May-08
Document File: 5 page(s) / 64K

Publishing Venue

The IP.com Prior Art Database

Abstract

Code is intertwined in sub-routines, methods, classes and files which are interdependent on one another. If any of the explicit interdependent changes are missing then a build system would report compilation errors. These compilation errors help in identifying the missing files or methods with related changes. A software configuration management (SCM) system might also help while delivering changes to the stream by prompting user for delivery of these related changes when they are part of different change sets.

The problem referred to in this disclosure relates to the implicit interdependencies between files, modules, methods or classes in a change set. These are changes which may not be explicitly referenced in other methods and files. In absence of related changes in other files, these kind of interdependencies cannot be directly tracked as they do not lead to any compilation errors. Related problem in the above case is that the software configuration management system would not prompt the developer to deliver the implicit dependencies together. The disclosure is a method to detect the implicit interdependencies between change sets in an SCM system and based on the analysis prompt the developer to consider additional actions.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 32% of the total text.

Page 01 of 5

Method of finding implicit interdependencies across methods and files in a software configuration management system

Overview:


Interdependent code changes could be of two distinct types, namely, explicit and implicit. Changes in method names, interface changes, introduction of new methods or classes in a change set that are explicitly referenced in others are all explicit interdependencies. When any of these interdependent changes are missing then the build system would report compilation errors. These compilation errors will also aid the developer in identifying the related change sets to be delivered together.

Consider a case where in an application has a module dealing with user data. There is a corresponding database with a schema where the the user data for the application will be maintained. A change in the schema warrants a change in the user module. These would be implicit interdependencies. If the changes to the database and the interdependent change in the user module are not made together or are not delivered together then there might not be any compilation errors or the SCM system might not be able to detect any interdependencies. A solution is required here such that the related changes across the files are identified and the developer is prompted to make the corresponding changes in other files irrespective of compilation errors not being present. It is also required for prompting user to deliver the change sets having related changes.

The SCM system would have the files which would comprise of code files, scripts and model diagrams. In order to find out the implicit dependencies, when a change is made in a method or file, the entire code base is text searched for the pattern matching the file, method name or keywords in the change. The files having the pattern matching, are listed for user reference. User may choose the files which may be related from the list. Here the user would have a choice to choose files other than those listed. Based on the methods and files chosen as reference, it is stored in a database for future reference. These stored references are further used for identifying the related changes present across different change sets.

Description:

Let's take a closer look at the algorithm to identify the implicit interdependencies and the optimised search algorithm as well as the details of the analysis after the implicit dependencies are identified.

Steps in identification of the implicit dependencies:

A user makes changes in a file present in an SCM system. These changes in the file may require related changes in other files, some of them can be identified using the compilation errors or call hierarchy.

The proposed system would do a text analysis by parsing the changed method, class and file, identifying the tokens and key words in the change and searching for these patterns in the entire code base.

Parsing could be done of the entire code base or at a certain level i.e. the method names, file names,...