migVisor bases application migration complexity on data points collected by scanning the source code of an application. In addition, migVisor blends information supplied via the optional questionnaire.
Application migration complexity is summarized into a single score for the given application, which in turn combines both the Migration Complexity score and the Modernization Complexity score. Both scores are produced on the basis of the application code scan and questionnaire results.
Migration Complexity Score is evaluated with respect to the database source the application is associated with, and a target database engine. Modernization Complexity Score is less sensitive to the target database engine, as it is not specific to the application data layer.
Each feature is evaluated using one or more data points, as well as an absence of certain data points. Features are assigned Migration Complexity or Modernization Complexity tagging, but the data points contributing to the scores are not exclusive for either category.
Migration Complexity Score
The Migration Complexity score relates to the complexity of changing the data layer within the application in order to function with the target database engine.
migVisor infers the Migration Complexity on the basis of data points including:
Code accessing database drivers.
Code-producing database statements.
The inclusion of database-related libraries.
Usage of ORM libraries and common annotations.
Modernization Complexity Score
This score relates to the complexity of modernizing the codebase, largely independently of the data layer. This score component evaluates the complexity of refactoring the application to match modern application standards. This score gauges the degree to which the application can be produced and operated in modern cloud environments and context.
migVisor infers the Modernization Complexity on the basis of data points including:
Build automation and artifacts.
Testing automation and artifacts.
Presence of source control.
Evidence of observability.
Overall code structure: modularization, size, project layout, etc.
Evidence of deployment readiness such as versioning, containerization, etc.
Score Value Calculation
Individual feature scores are composed of the data points that directly relate to the feature at hand.
The score value is affected by:
The number of occurrences of data points indicating the feature.
The complexity of mitigation of the individual feature, on an occurrence basis or in bulk. In some cases, mitigation assumes that issues can be resolved by some manner of abstraction, rather than applying the same code patch for every occurrence.
Overall Migration Complexity score and Modernization Complexity score are produced by projecting the overall respective complexity based on the features that were assigned to the respective category. Each feature’s individual score is assigned a certain weight with respect to other features within the category. The weighted feature scores are summed up to produce the combined score for the component.
The single Overall Complexity score is produced by combining the two categories - migration and modernization - in a weighted formula. The weight assigned to the modernization complexity is dynamic based on the magnitude of the modernization score.
The final overall score is normalized over a linear range and assigned a complexity designation. migVisor then uses the score as an index to designate the complexity as Low, Medium, or High.