SAP NetWeaver AS ABAP Release 740, ©Copyright 2014 SAP AG. All rights reserved.
ABAP Keyword Documentation →
ABAP Programming Guidelines →
General Rules →
Correctness and Quality
Background
Most organizations that develop professional software have product standards that must be adhered to.
These product standards define what is meant by correctness and quality of a program. SAP has many such
standards, which development departments have to comply with. The current product standards that are most important to developers are listed below:
- Accessibility
In the information technology environment, the term
accessibility relates to the requirement that anyone, including and especially those with impairments,
can access and use information technology products. To make products such as software or websites accessible
to all users, they must be created and designed so that they can still be used if users have a particular
impairment (for example, visual impairment, color blindness) and must be compatible with technologies such as screen readers and screen magnifiers.
- Documentation
As a rule, a product standard for documentation defines
which documents have to be shipped to the consumer with the product and ensures that the documentation supplied is consistent, correct, and up to date across all product areas.
- Functional Correctness
The functional correctness of software is generally
seen as its most important quality. Software that is not functionally correct is usually unusable. As
a rule, a product standard for functional correctness requires software to be error-free, and defines
the stability of interfaces and program behavior during upgrades. To reach these goals, thorough testing of the software may be made compulsory.
- Globalization
If software is to be used worldwide, a product standard for globalization is usually necessary. This covers the aspects of internationalization and localization.
- Internationalization
Internationalization comprises the technical
aspects of globalization such as Unicode compatibility, text processing, screen display, printing, data
exchange, time zones, translatability, and so on, and thus sets out the technical prerequisites for
localization. The translation of user interfaces and other texts is also, of course, an important aspect of internationalization.
- Localization
Localization is necessary if software for global use
has to be adapted to local (usually country-specific) conditions, such as legal requirements or particular business procedures.
- Performance
Even if a program is functionally correct, it is of little
or no use to a user if it cannot be executed in a reasonable time. A performance product standard ensures
that this aspect is not neglected. It can include, for example, rules for efficient database access and scalability of application logic.
- Security
Where security is critical to software, and this is generally
the case for any type of business software, a product standard for security sets out all security-relevant
aspects of a product, by pointing out any potential security gaps or legal requirements, for example, and also contains instructions for meeting the standard.
- Usability
The term usability refers to the adaptation of user interfaces
to the requirements of human end users and their tasks. A usability product standard should ensure that
end users can perform their tasks efficiently and effectively. Key aspects of usability include consistency
of user interfaces, ease of use, intuitive task- and role-specific interfaces, individual adaptability, error tolerance, and so on.
Although these standards are, in part, legal requirements, they essentially arise from the fundamental
aim to guarantee the correctness and quality of the software that is shipped to consumers. Programming
guidelines are very important in this respect. Many of the guidelines listed here support, directly
or indirectly, one of the standards mentioned or are derived from them. They support and ensure compliance
with such standards, resulting in correct, high-quality programs. The programming guidelines themselves could even be said to be on a par with binding product standards.
However, since not all possible product standards can be covered by the programming guidelines, for example all rules of a performance or security standard, we set out the following basic rule.
Rule
Comply with or check compliance with existing product standards
Adhere to the product standards that exist in your organization, and ensure the correctness and quality of your programs by testing them during development and after completion with all the test tools at your disposal.
Details
It is obvious that you must comply with product standards; this needs no further explanation. However,
it is often forgotten that the static and dynamic analysis tools that are available in the ABAP environment
can provide invaluable help for compliance with important product standards, particularly standards
for functional correctness and performance. Therefore, as part of this basic rule we recommend that you use all available tools that help to ensure the correctness and quality of ABAP programs.
- Use the Code Inspector
tool (transaction SCI) on a regular basis using the standard check variant, and correct all messages.
- Check the usability and accessibility of your interface elements by using the appropriate tools (integrated into the Workbench tools and the
ABAP Test Cockpit).
- Cover the whole functionality of your procedural units by using module tests with ABAP Unit (integrated into ABAP Workbench, the Code Inspector, and the ABAP Test Cockpit).
- Cover the whole functionality of your applications by using scenario tests with eCATT (transaction SECATT).
- Check the memory consumption of your programs by using the ABAP Memory Inspector (transaction S_MEMORY_INSPECTOR and the memory analysis function integrated into the ABAP Debugger).
- Check runtime behavior and performance by using the ABAP runtime analysis tool (transaction SAT).
- Check the test coverage by using the Coverage Analyzer (transaction SCOV and integrated into the ABAP Unit Browser of ABAP Workbench).
- Document your programs and services using all available means: Starting with
comments, this ranges from
simple data element documentation for context-sensitive input help, to class and method documentation
for documenting APIs, to explanations of concepts and tutorials in other repositories such as SAP Knowledge Warehouse, or on the Internet, for example on SAP Developer Network (SDN, http://sdn.sap.com). The
ABAP Test Cockpit (ATC)
integrated into ABAP Workbench and the SAP transport system supports the execution and evaluation of
the most important tests. Some of these tests also check compliance with some of the rules of the ABAP programming guidelines discussed later.
Note
Where in doubt, product standards take precedence over the guidelines and recommendations of this documentation.
If, for example, performance or security aspects prohibit any of the programming practices presented here, compliance with the standard takes priority.
Good example
Executing module tests for classes of the package SABAP_DEMOS_CAR_RENTAL_APPL
and displaying the results in the ABAP Unit Browser of the Object Navigator gives a test coverage of
100%. This package is shipped as a subpackage for the application layer of a small example application, which, in addition to module tests, also demonstrates strict adherence to the
separation of concerns.