By Vishal Purohit
In Credit / Debit Cards application, 60% of programs fall under “Very complex” category, thus making this application an ideal candidate for Integration.
We can also perform the following tasks during legacy portfolio analysis.
Whenever we talk about Legacy Modernization options, the first step is to analyze the underlying application. Legacy portfolio analysis plays an important role in unearthing the complexity hidden in the legacy applications and guides us in making a correct decision on modernization technique to be adopted.
Consider a typical organizational scenario. The legacy systems are in place for more than half a decade. As business needs grew these applications were added, updated and integrated with new systems. To stay in the race of advancement, businesses are putting efforts to modernize legacy systems. Since legacy applications are deeply embedded in their surrounding technology infrastructure they are very difficult to modernize.
Modernize - Migration or Integration?
How do we decide on the modernization technique to be adopted for a particular legacy application?
There are many modernization techniques, but we will limit our discussion to two techniques:
Different people have their own perception of complexity as shown below. Let us consider an example of Payroll processing application:
Back in the 1970s, Maurice Howard Halstead put in efforts to evaluate complexity by applying Mathematical rules to the programs. A basic fundamental behind this approach is – “Every Statement in the program can be represented in terms of Operators and Operands”. With this information we can calculate the volume of the program.
where,
V -> Halstead Volume,
N -> (Total Operands + Total Operators),
n -> (Unique Operands + Unique Operators)
Another dimension for looking at the program is by analyzing the number of decisions taken in the program by counting various branching instructions included within the program. This approach was introduced by Thomas J. McCabe, Sr. and is referred to as McCabe Cyclomatic Complexity.
where,
V(G)-> McCabe Cyclomatic Complexity,
a-> Total number of branches,
s-> Number of unconditional termination of program execution
Modernize - Migration or Integration?
How do we decide on the modernization technique to be adopted for a particular legacy application?
There are many modernization techniques, but we will limit our discussion to two techniques:
- Migration: If the application is of simple or medium complexity, having very less interdependency with other applications, then generally Migration of the application is considered as the best approach.
- Integration: If the application falls under very complex category, having a lot of interdependent applications, then generally Integration of the application is considered as the best approach.
Different people have their own perception of complexity as shown below. Let us consider an example of Payroll processing application:
- Application Programmer: The application programmer may judge the application based on the lines of code, and may rate the application as “Medium Complex”
- Database Administrator: The DBA may judge the application based on the number of tables and queries being used in the application, and may rate the same application as “Complex”
- Business Analyst: The business analyst may judge the application based on business rules and may rate the same application as “Simple”
Back in the 1970s, Maurice Howard Halstead put in efforts to evaluate complexity by applying Mathematical rules to the programs. A basic fundamental behind this approach is – “Every Statement in the program can be represented in terms of Operators and Operands”. With this information we can calculate the volume of the program.
V = N * log2 n bits
where,
V -> Halstead Volume,
N -> (Total Operands + Total Operators),
n -> (Unique Operands + Unique Operators)
Another dimension for looking at the program is by analyzing the number of decisions taken in the program by counting various branching instructions included within the program. This approach was introduced by Thomas J. McCabe, Sr. and is referred to as McCabe Cyclomatic Complexity.
V(G) = a – s + 2
where,
V(G)-> McCabe Cyclomatic Complexity,
a-> Total number of branches,
s-> Number of unconditional termination of program execution
Oman and Hagemeister combined the information from Halstead Complexity and McCabe’s Cyclomatic Complexity thus giving us the complete coverage of the program – Maintainability Index
where,
MI -> Maintainability Index,
V -> Halstead Volume,
V(G)-> McCabe Cyclomatic Complexity,
LOC -> Lines of Code
Let us consider two applications - Accounts and Credit / Debit Cards. Below is the graphical representation of Maintainability Index of the two applications as derived from legacy portfolio analysis:

In the Accounts application, 60% of programs fall under “Medium” complexity thus making this application an ideal candidate for Migration.
MI = 171 – 5.2*log(V) – 0.23*V(G) –16.2* log(LOC)
where,
MI -> Maintainability Index,
V -> Halstead Volume,
V(G)-> McCabe Cyclomatic Complexity,
LOC -> Lines of Code
Let us consider two applications - Accounts and Credit / Debit Cards. Below is the graphical representation of Maintainability Index of the two applications as derived from legacy portfolio analysis:

In the Accounts application, 60% of programs fall under “Medium” complexity thus making this application an ideal candidate for Migration.
In Credit / Debit Cards application, 60% of programs fall under “Very complex” category, thus making this application an ideal candidate for Integration.
We can also perform the following tasks during legacy portfolio analysis.
- Application Summary: Overall summary of the applications will help in understanding the application depth from a high level perspective.
- Call Tree: Provides a graphical representation of functional flow of the application. Call tree assists in understanding system interaction to modularize the business functions.
- Business Rules Extraction: Extracts important intellectual business logic from packaged or legacy software applications in the form of Business Rules, and stores them for further investigation in a source rule repository.
Whenever we talk about Legacy Modernization options, the first step is to analyze the underlying application. Legacy portfolio analysis plays an important role in unearthing the complexity hidden in the legacy applications and guides us in making a correct decision on modernization technique to be adopted.



No comments:
Post a Comment