This document discusses various tools for analyzing ABAP code statically, including the ABAP Test Cockpit, Code Inspector, and a new tool called Doctor ZedGe. It provides information on installing and using these tools to analyze code complexity, violations of coding standards, and the presence of hard-coded business values. Doctor ZedGe enhances the ABAP Test Cockpit by generating reports in Excel focused on different user personas like developers, team leaders, and project managers.
10. 10
Code Inspector -Scan Engine
Code Inspector
The Code Inspector is a tool for checking static ABAP coding and generally all objects of the Object Repository under aspects of Performance, Security, Reliability, and Statistical Information
Installation
Included in SAP standard starting from SAP ECC 6.0 EhP0 (SAP BASIS 7.0)
13. 13
Code Inspector -Scan Engine
Where to check
What to check
Transaction SCI
14. 14
Code Inspector -Scan Engine
examples
SE38, SE37, SE24 …
ABAP Workbench SE80
Developerscan execute the Code Inspector with the standard check variant contextually with their workflow process
16. 16
Code Inspector -Scan Engine
What about the check done by the code inspector?
Extended Program Check –called to analyze more than 300 rules about alerts and warnings
Code Inspector’s rules -called to obtain Code Metrics and analyze more than 40 rules about Standards, Security, Performances and even HANA readiness
Custom Check rules –can be plugged into Code Inspector without modification to the standard
17. 17
Agenda
ABAP Test Cockpit
Integration in Lifecycle Management
18. 18
Code Inspector -Scan Engine
ABAP Test Cockpit
The Powerful enterprise-ready tool to perform static program analysis of Custom ABAP Code (based on Code Inspector).
Installation
Included in SAP standard since SAP ECC 6.0 EhP6
19. 19
Code Inspector -Scan Engine
Enhance Code Inspector with:
Superior integration with ABAP Workbench (even ABAP in Eclipse) and Software Lifecycle (Change Request)
Landscape awareness that support result distribution from QAS to DEV
Superior User Interface that supports filtersand statistics
Re-check
Powerful out-of-the box exemptions workflow (“4 eyes”) that helps conveniently suppressing “false-positives” findings
Ten time faster scanning engine thanks to the ABAP Parallel Processing
Customizable “Messages” priority
20. 20
ABAP Test Cockpit -Integration in Lifecycle Management
All configuration and settings about ABAP Test Cockpit are accessible via the transaction code ATC
21. 21
ABAP Test Cockpit is integrated in transaction /nSE80, SE38, SE37 …
Developerscan execute ATC Inspections as much time as they like contextually with their workflow process
ABAP Test Cockpit -Integration in Lifecycle Management
22. 22
ABAP Test Cockpit is integrated in transaction /nSE80 -Repository Browser
Developerscan execute ATC Inspections on the selected set of objects (e.g. Package)
ABAP Test Cockpit -Integration in Lifecycle Management
Drag and Drop to add object!
23. 23
ABAP Test Cockpit -Integration in Lifecycle Management
Developerscan access by a specific perspective all the ATC runs done and can browse the results in detail.
24. 24
ABAP Test Cockpit is integrated in transaction /nSE80 –Transport Organizer
Before releasing to QAS or just to monitor the deliverables, Team Leaders and Project Managers can execute ATC Inspections on the selected Change Request
ABAP Test Cockpit -Integration in Lifecycle Management
25. 25
ABAP Test Cockpit is integrated in ABAP in Eclipse (ADT) too
ABAP Test Cockpit -Integration in Lifecycle Management
26. 26
ABAP Test Cockpit results are well presented to the developer
ABAP Test Cockpit -Integration in Lifecycle Management
28. 28
Code Inspector -Scan Engine
Doctor ZedGe-Hard!Code
A free tool to improve your Custom ABAP Code and save money during your next rollouts. It’s a new rule plugged into the Code Inspector to find hard code business values.
Installation
Available free-of-charge and installable via Copy & Paste into SAP ECC 6.0 EhP6 or above
SCN Blogs
STOP filling your ABAP with Business hard coding
Doctor ZedGe-Hard!Code-a free Code Inspector rule
29. 29
The unique static code check developed by Techedge highlights usage of Business related Hard-coding
Doctor ZedGe-Hard!Code–a new rule plugged into the Scan Engine
Hard Code Company Code
Company Code relatedhard code valuenotfoundin company code matserdata, so theycouldbe partialstring(«IT*»)
30. 30
SAP standard never uses business related Hard-coding, customers does even too much. Probably SAP does not image how much this “Anti-pattern”is popular and dangerous, we do !
Doctor ZedGe-Hard!Code–a new rule plugged into the Scan Engine
31. 31
METHOD busab_mandatoryapplies a specific business rule for the hard-coded set of company codes
Who will remember to add the company code of the next roll-out?
How much debug, and how many Change Requests and approvals will be required?
Doctor ZedGe-Hard!Code–a new rule plugged into the Scan Engine
32. 32
METHOD address_controls_inapplies a specific business rule company codes starting with IN (India ?)
Who will remember to add the next Indian company ?
Doctor ZedGe-Hard!Code–a new rule plugged into the Scan Engine
35. 35
Code Inspector -Scan Engine
Doctor ZedGe
A new product that enhance ABAP Test Cockpit presenting results in beautiful and simply MS Excel reports designed for different PERSONA and adding Indexes like Quality and Maintainability.
Installation
Starting from SAP ECC 6.0 EhP6 (SAP BASIS 7.31 SP05)
Limited number of ABAP objects in the namespace Z3TG_DZG that can be imported in DEV and QAS via a simple Change Request
36. 36
Idea
Simplify ATC results!
Combine metrics with violations to compute different ratios,
combine indicators via formulas
aggregate and generate nice looking dashboard
37. 37
Idea
Simplify ATC results!
Combine metrics with violations to compute different ratios,
combine indicators via formulas
aggregate and generate nice looking dashboard
Evaluations are proposed in nice looking MS Excel files generated via abap2xlsx
38. 38
Doctor ZedGe-Analysis
Doctor ZedGeis specifically designed for real-life scenarios to assist the different “Persona”
Developers
Team Leaders
Quality Assurance Managers
Project Managers
AMS
39. 39
Doctor ZedGe-Analysis
Queries developed by Techedge aggregates ATC raw data in the best format for each “Persona” (Business Role)
40. 40
Doctor ZedGe-Analysis [Persona: DEVELOPER]
For each processing block (e.g. FORM, METHOD, FUNCTION), the Software Analytics can highlight number of statements, Maintainability Index and Cyclomatic2 complexity index.
Developers are motivated to adopt modularization via refectory activities.
41. 41
Doctor ZedGe-Analysis [Persona: DEVELOPER]
For each processing block (e.g. FORM, METHOD, FUNCTION), the Software Analytics can highlight number of statements, Maintainability Index and Cyclomatic2 complexity index.
Developers are motivated to adopt modularization via refectory activities.
MaintainabilityIndex
The aim of the MI is to determine how easy it will be to maintain a particular body of code
Designed at the University of Idaho in 1991 by Oman and Hagemeisterand validated in the field by Hewlett Packard in a fairly extensive trial
푴푰=ퟏퟕퟏ−ퟑ,ퟒퟐln(푽)−ퟎ,ퟐퟑ푮−ퟏퟔ,ퟐln(푳푶푪)
V =Halstead Volume
G =Cyclomatic Complexity
LOC =count of source Lines Of Code (SLOC)
42. 42
Doctor ZedGe-Analysis [Persona: DEVELOPER]
For each processing block (e.g. FORM, METHOD, FUNCTION), the Software Analytics can highlight number of statements, Maintainability Index and Cyclomatic2 complexity index.
Developers are motivated to adopt modularization via refectory activities.
Cyclomatic Complexity
Cyclomatic complexity(orconditional complexity) is a software metric (measurement). It was developed by Thomas J. McCabe, Sr. in 1976 and is used to indicate the complexity of a program.
It directly measures:
•the number of linearly independent paths through a program's source code.
•the number of test cases that are necessary to cover all path
43. 43
Doctor ZedGe–Analysis [Persona: PM, TEAM LEADER]
With ATC runs against Change Requests, Team Leaders and Project managers can monitor real progress (number of objects) and investigate about exceptions (e.g. higher MI, Cyclomatic2, lineCount-lower English comments ratio –any quality or metric Indexes)
46. 46
Doctor ZedGe–Analysis [Persona: SYSTEM OWNER, QUALITY MANAGER]
System owner, can weekly (at the CAB) discuss about trends impacting custom ABAP quality and in case launch new initiatives to address exceptions
AFTER
BEFORE
Periodic external certifications can be very useful to audit behaviors of the different internal teams as well as those of the different suppliers
47. 47
Doctor ZedGe–Analysis [Persona: AMS OWNER]
During Hand-over and Knowledge Transfer (KT) phases, AMS owners can get a clear picture of the incomingsoftware metrics and violations figures running the Techedge Software Analytics against the project Change Requests (or ChaRMdocuments)
48. 48
Marketing and Sales
Doctor ZedGeis used internally in TechegedeGroup to prove the quality of our projects and solutions
49. 49
Doctor ZedGe-Analysis
Limitations of current release
Historical data are not stored and simple trend analysis are possible comparing the weekly MS Excel reports
Integration with SAP Solution Manager ChaRMis productive on customer sites but yet to be generalized
Integration with SAP Solution Manager CCLM is currently under evaluation
In add, sinceDoctor ZedGe-Hard!Codeleverages the power of ABAP Test Cockpit and Code Inspector, it also suffers of the same known limitations:
it works only on workbench objects belonging to a custom main object. It can analyze BADIs and Customer Exits (CMOD) but cannot analyze ABAP code contained in user-exits includes (es. SAPMV45A is a SAP standard object thus MV45FZ01 cannot be analyzed that as from Best Practices should just call custom Customer Exits FUNCTION MODULEs or custom BADIs)
it works on PROGRAMs (PROG), FUNCTION MODULEs (FUGR) and CLASSEs (CLASS) but not on SAPScriptsand SMARTForms.
50. 50
Doctor ZedGe-Analysis
Current Release
-ALV
-XSLX Download
-XLSX via Mail to (distribution list, user or email address)
-Customizable threshold parameters used in the score and metrics calculation
-ATC Exemptions evaluation
-Storing in the INDX Data Base of the last analysis results
-“Skip standard Include” option
-Findings2XSLX
Next Release
-SAPUI5 Dashboard UI
-SAPUI5 Trend Analysis
-SAP CRM Hard!CodeSupport
-Integration with SAP Solution Manager ChaRM
-SAP SRM Hard!CodeSupport
-SAP BW Hard!CodeSupport