Fujitsu Develops World's First Technology that Visualizes Complexity of Business Logic in a Program's Code
Fujitsu Laboratories Ltd. today announced the development of the world's first technology for visualizing the degree of complexity of the business logic in complex, large-scale business applications. In the past, when looking for important elements based on metrics like program size or the number of conditional branches, it has been difficult to distinguish the business logic that executes business processes from the control logic that executes functions such as sharing data among programs and format checking.
Fujitsu is the leading Japanese information and communication technology (ICT) company, offering a full range of technology products, solutions, and services. Approximately 159,000 Fujitsu people support customers in more than 100 countries. We use our experience and the power of ICT to shape the future of society with our customers. Fujitsu Limited (TSE: 6702) reported consolidated revenues of 4.8 trillion yen (US$40 billion) for the fiscal year ended March 31, 2015. For more information, please see http://www.fujitsu.com.
Fujitsu has developed a technology that automatically identifies business logic in the program code, and one that quantifies the complexity of business logic using a numerical index derived from the number of branches and other factors. This makes it possible to visualize business logic with simple analysis of application assets.This technology can reduce the time required to analyze business applications, which ordinarily takes considerable effort, and help companies quickly make improvements or add new features in response to changing business conditions. For example, in the initial analysis required when restructuring a system, this makes it possible to reduce the number of lines of code subject to analysis. In addition, by quantifying the degree of complexity of the business logic, it helps developers see where they should focus on hard-to-understand, complex business logic.
The business applications that an enterprise operates are typically developed and maintained for years, and as new functions are added, they grow in complexity to the point where it becomes difficult to add new features, make improvements, or otherwise respond quickly to a changing business environment. Considerable time and effort has been required to analyze applications slated to have features added, especially program assets developed and maintained by another company.
The people responsible for developing and maintaining code need to understand the business logic that reflects the company's processes in business applications, and will analyze the business applications and run status overviews on them, focusing on the sections they are responsible for, but when the code for the business application consists of thousands or tens of thousands of lines, that analysis takes a lot of time. Often status overviews will require rewriting specification documents, but attempting to find the important elements of a program based on its scale and the number of conditional branches will fail because it does not distinguish between the business logic that executes business processes and the control logic that handles such functions as sharing data among programs and format checks. Also, with large-scale business applications, the business logic itself will be sprinkled throughout the code base, so that performing a status overview of the business logic requires an experienced hand to even know where to look.
About the Technology
Fujitsu has developed a technology that makes it easier to analyze an application resource's source program characteristics for visualizing the degree complexity of business logic. When making decisions about improving applications, adding features to them, or transitioning them, this makes it possible to prioritize those aspects of the business logic that are especially complex and hard to understand.
The technology offers the following advantages:
1. Automatically identifies business logic in program code
Business systems execute business logic, which makes business-related decisions or calculates results from business data entered by the person in charge. This technology automatically identifies the business logic in the program code (Figure 1).
Figure 1: Business logic contained in business application
This technology makes use of the fact that business data is a part of the output and input data, so it regards data output and input when the program is running as business data. Conditional decisions and calculations that use business data are treated as business logic, but checking functions and the like are excluded from the business logic because they do not involve conditional decisions.
2. Quantifies the degree of complexity of business logic
A "decision table" models a set of conditionals and their corresponding results. Fujitsu focused on the correlation between the size of a decision table and the complexity of the business logic, and defined three indices that determine the size of the decision table: the number of elements related to a condition, the number of branching points, and the number of elements related to calculations (Figure 2).
Figure 2: Using a decision table as an index of business-logic complexity
Detailed analyses are needed to create decision tables, which is inappropriate for analyses of large-scale resources. So rather than create a decision table, Fujitsu developed a method to calculate approximations of the feature values corresponding to these indices based on program variables and the number of branches in the code, which can be used to analyze large-scale resources.
The results of program analysis show that where the business logic has a high degree of complexity, many of the decisions and calculations relating to the business are taking place. This technique was applied to some 1200 programs written in COBOL, and in internal testing, business-logic complexity was rated as high, medium, or low. This test confirmed that code that performs business-related calculations has a high degree of complexity, and code that performs only format checks has a low degree of complexity.
Figure 3: How complexity of business logic can be quantified
This technology makes it possible to analyze the state of a wide range of existing business applications, and helps to respond quickly to changes in the business environment with added features and improvements. In internal testing, Fujitsu confirmed that, in terms of lines of code, some 30% of source program subject to analysis did not include business decisions or calculations. So, for example, in the initial analysis required when refactoring a system, this can help narrow the scope of the analysis and focus on the parts of the code that have highly complex business logic.
In addition, when used with another technology developed by Fujitsu Laboratories, which automatically maps the functional structure of software to create a "software map" business-logic complexity can be represented as building height. Functional units represented on the map as districts can be visually checked for complex business logic so that developers can prioritize areas needing attention, regardless of overall program size.
Fujitsu Laboratories is aiming for a practical implementation in fiscal 2016, and is working to apply to and test this technology on business system analysis in a variety of programming languages and types of businesses.
- This technology is already offered by Fujitsu as a resource-analysis service.
"Fujitsu Develops World's First Software Map Generating Technology to Leverage Application Portfolios" (February 29, 2012 press release):
- "Fujitsu Updates Business and Application Screening Service for Improved Application Visualization" (May 13, 2013 press release):