GUIDELINE 2.3
Correctness and Quality
ABAP_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 internati
onalization 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 c
onsistency 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.
ABAP_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.
ABAP_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.
Perform the extended program check
(transaction SLIN ) on a regular basis and
correct all messages.
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 e CATT (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 API s, 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 .
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved