In an ongoing joint project, the SAP Innovation Center has teamed up with the Hasso Plattner Institute and Software Diagnostics to enhance the methods available for analyzing and visualizing source code.
The project is based on the Effectiveness Platform developed by Software Diagnostics, which uses software maps and other visualization tools to help developers pinpoint unnecessary complexities, dependencies, and performance issues – in real time.
What state is my software in? For SAP HANA administrators, ABAP programmers, and system architects, keeping up to speed on large-scale software projects is often an uphill struggle. Years of development work, millions of rows of source code, and thousands of database tables combine to obscure the big picture.
In this respect, software on this scale is nothing short of a black box, which frequently complicates not only the task of developing the software in the first place, but ― later on ― of providing the necessary maintenance. To ensure that an application landscape functions properly, all the stakeholders need to be as familiar with the system as possible.
That includes knowing about the status of the software ― ideally at a glance and with a reliable depiction of interdependencies within the code. Tools such as the Code Inspector allow quality managers and project leads to check SAP repository objects for performance, security, syntax, and adherence to naming conventions, providing them with a list that can sometimes contain as many as several thousands of entries. The problem is that they can’t tell where in the overall architecture a rule violation has occurred.
When it comes to identifying the location of the violation, it is helpful to know if multiple violations have occurred in the same place. But this information is difficult to derive from the list. On top of that, there is an increased need for action in areas where code is being modified on a large scale. In principle, this information is available in the Change & Transport System. But this source of information is isolated from the others.
With a view to getting more out of the different sources of information available, companies like German grocery retailer EDEKA are relying on the Effectiveness Platform from Software Diagnostics GmbH, a big data and visual analytics specialist. The Effectiveness Platform works by first collating all the data from the source code, the runtime analysis, and the existing repositories to create a meaningful data base. It then applies data mining methods to analyze the data and presents the results using innovative visualization techniques.
Checks on various sources
One data source is the source code. As well as being measured by the Code Inspector, the source code is also checked for internal quality (including complexity, adaptability, and ease of comprehension) and, thus, for its future viability. A second source is the Change & Transport System, which records all the development activities that have taken place in recent years. This information includes details about who worked on which code section and where the development hotspots are. These help pinpoint code areas in which there were an unusually large number of bugs to fix.
A third source is the Coverage Analyzer, which delivers data showing where the source code is inadequately covered by tests. Finally, the Runtime Analysis makes performance-critical code areas visible. The Effectiveness Platform collates the data gathered from the source code, the runtime analysis, and the existing repositories to create a meaningful data base. By linking up information about complexity indicators and change frequencies, for example, it delivers valuable insights on which to base detailed recommendations for action.
If, for example, a manager sees that highly complex code areas have recently been modified on a large scale but not sufficiently tested, then he or she can direct testers to tighten the security network at exactly those spots. The Effectiveness Platform gives software managers answers to almost all the questions they are likely to ask their developers: Where are there risks of coding errors? When do I need to plan countermeasures? Where do developers get held up most often?
Complete and interactive 3D overview
Rather than delivering the analysis results in a list, the Effectiveness Platform presents them, among other things, in the form of a software map that represents the entire system as a 3D town plan. Each “building” on the map represents a unit of code. Buildings that belong to the same module are grouped together into “districts.” Slim, blue, detached houses represent non-problematic parts of the program, whereas red high-rise buildings with a large floor area indicate problems. These might be sections of code containing large, monolithic structures that have been frequently changed. Thanks to the ability to compare the current state of the software with a previous one and display the results in graphical form, project managers can detect potential risks and obstacles to development at an early stage. This principle of comparing and visualizing the state of a software project to create a variety of different maps ensures that the various stakeholders get precisely the information they need.
A software architect, for example, can see how well an existing or new architecture meets the requirements. If quality personnel know where all the hotspots are, they can direct their testers straight to the critical locations. Similarly, project leads can see at a glance where potential problems lie and whether the people with the required knowledge are working in the right places. And IT bosses benefit too, because they can show internal customers why a lack of clarity about requirements means that it will take longer than envisaged to develop an application.
Transfer to SAP HANA
As part of a cooperation project between the SAP Innovation Center in Potsdam, Software Diagnostics, and the Hasso Plattner Institute, work has also been under way since the beginning of last year to discover how to transfer this software analysis and visualization approach to SAP HANA. The aim of the project is to provide a tool that, among other things, shows administrators and architects straight away what the working memory requirement for SAP HANA is during testing and operation. This will make it possible to analyze performance accurately at a glance and identify the cause of any anomalies.
Watch to learn more about the Effectiveness Platform:
Image Source: Software Diagnostics