The powerful ABAP Test Cockpit in action and the a new SAP related product in the domain of Custom ABAP Code Application Lifecycle realized by Techedge.
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 EhP 0
(SAP BASIS 7.0)
13. ‹#›
Code Inspector - Scan Engine
Transaction SCI What to check
Where to check
14. ‹#›
Code Inspector - Scan Engine
examples
SE38, SE37, SE24 …
ABAP Workbench SE80
Developers can execute the Code Inspector with the standard check variant
contextually with their workflow process
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. ‹#›
Agenda
ABAP Test Cockpit
Integration in
Lifecycle
Management
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. ‹#›
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 filters and 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. ‹#›
ABAP Test Cockpit - Integration in Lifecycle Management
All configuration and settings about ABAP Test Cockpit are accessible via the
transaction code ATC
21. ‹#›
ABAP Test Cockpit - Integration in Lifecycle Management
ABAP Test Cockpit is integrated in transaction /nSE80, SE38, SE37 …
Developers can execute ATC Inspections as much time as they like contextually
with their workflow process
22. ‹#›
ABAP Test Cockpit - Integration in Lifecycle Management
ABAP Test Cockpit is integrated in transaction /nSE80 - Repository Browser
Developers can execute ATC Inspections on the selected set of objects (e.g.
Package)
Drag and Drop
to add object!
23. ‹#›
ABAP Test Cockpit - Integration in Lifecycle Management
Developers can access by a specific perspective all the ATC runs done and can
browse the results in detail.
24. ‹#›
ABAP Test Cockpit - Integration in Lifecycle Management
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
25. ‹#›
ABAP Test Cockpit - Integration in Lifecycle Management
ABAP Test Cockpit is integrated in ABAP in Eclipse (ADT) too
26. ‹#›
ABAP Test Cockpit - Integration in Lifecycle Management
ABAP Test Cockpit results are well presented to the developer
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. ‹#›
Doctor ZedGe - Hard!Code– a new rule plugged into the Scan Engine
The unique static code check developed by Techedge highlights usage of
Business related Hard-coding
Hard Code Company Code
Company Code related hard
code value not found in
company code matser data, so
they could be partial string
(«IT*»)
30. ‹#›
Doctor ZedGe - Hard!Code– a new rule plugged into the Scan Engine
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 !
31. ‹#›
Doctor ZedGe - Hard!Code– a new rule plugged into the Scan Engine
METHOD busab_mandatory applies 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?
32. ‹#›
Doctor ZedGe - Hard!Code– a new rule plugged into the Scan Engine
METHOD address_controls_in applies a specific business rule company codes
starting with IN (India ?)
Who will remember to add the next Indian company ?
33. ‹#›
ABAP Static Code Analysis & Tools
Analysis
Dashboard
Integration in
Lifecycle Management
Scan
Engine
Code Inspector
ATC
Business Hard!Code Finder
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 EhP 6 (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. ‹#›
Idea
Simplify ATC results!
Combine metrics with violations to compute different ratios,
combine indicators via formulas
aggregate and generate nice looking dashboard
Custom
Code
37. ‹#›
Idea
Simplify ATC results!
Combine metrics with violations to compute different ratios,
combine indicators via formulas
aggregate and generate nice looking dashboard
Custom
Code
Evaluations are
proposed in nice
looking MS Excel files
generated via
abap2xlsx
38. ‹#›
Doctor ZedGe - Analysis
Doctor ZedGe is specifically designed for real-life scenarios to assist the different
“Persona”
Developers
Team Leaders
Quality Assurance Managers
Project Managers
AMS
39. ‹#›
Doctor ZedGe - Analysis
Queries developed by Techedge aggregates ATC raw data in the best format for
each “Persona” (Business Role)
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. ‹#›
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.
Maintainability Index
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 Hagemeister and validated in
the field by Hewlett Packard in a fairly extensive trial
V = Halstead Volume
G = Cyclomatic Complexity
LOC = count of source Lines Of Code (SLOC)
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 (or conditional 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. ‹#›
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)
44. ‹#›
Doctor ZedGe - Analysis
Here how Change Requests to be approved by PM, QM and AMS look like
45. ‹#›
Doctor ZedGe - Analysis
Here how Change Requests to be approved by PM, QM and AMS look like
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. ‹#›
Doctor ZedGe – Analysis [Persona: AMS OWNER]
During Hand-over and Knowledge Transfer (KT) phases, AMS owners can get a
clear picture of the incoming software metrics and violations figures running the
Techedge Software Analytics against the project Change Requests (or ChaRM
documents)
48. ‹#›
Marketing and Sales
Doctor ZedGe is used internally in
Techegede Group to prove the
quality of our projects and
solutions
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 ChaRM is productive on customer sites but
yet to be generalized
Integration with SAP Solution Manager CCLM is currently under evaluation
In add, since Doctor ZedGe - Hard!Code leverages 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 SAPScripts and SMARTForms.
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 Analisys
- SAP CRM Hard!Code Support
- Integration with SAP Solution Manager ChaRM
- SAP SRM Hard!Code Support
- SAP BW Hard!Code Support
52. ‹#›
And don’t miss …
https://www.facebook.com/doctorzedge
https://twitter.com/doctorzedge
Editor's Notes
Static Program Analisys on Custom ABAP Code
Line of code = the weight of our custom solution that we can compare with the STANDARD SLOC
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/0005265f-e4f2-2a10-85ad-dced292c0c0d?QuickLink=index&overridelayout=true&27788438410701
Line of code = the weight of our custom solution that we can compare with the STANDARD SLOC
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/0005265f-e4f2-2a10-85ad-dced292c0c0d?QuickLink=index&overridelayout=true&27788438410701
Line of code = the weight of our custom solution that we can compare with the STANDARD SLOC
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/0005265f-e4f2-2a10-85ad-dced292c0c0d?QuickLink=index&overridelayout=true&27788438410701
To implement a code analisys we need …
We have to select the combination like a slot machine and tehcegd chouse this combination that includes two standard compoent and a comunnity product.
To maximize the benefit of this combination Techedge build a brand new product called Doctor Zed that we will see in detail in the next slides.
In this market there are a lot of non-SAP product that are uased to certify the code so with a main goal to produce a certification
The Code Inspector is a tool for checking static ABAP coding
The Code Inspector is a tool for checking static ABAP coding
The Code Inspector is a tool for checking static ABAP coding
The Code Inspector is a tool for checking static ABAP coding
The Code Inspector is a tool for checking static ABAP coding