The concept of an ABAP package was introduced in SAP NetWeaver application server ABAP 6.20 as a way to keep development objects from being used in undesirable ways. By setting up a package, you can encapsulate your desired objects into a structure that keeps them off limits from outside use.
Alfred Barzewski, a senior developer at SAP AG, explains the concept in depth in his SAP Professional Journal article, "How You Can Benefit from the ABAP Package Concept." He explains how to prepare to use the package concept, and then how to set it up in your system. He then moves on to explain four example case studies of how the package concept can differ depending on different situations.
Here's an excerpt from the article, in which Alfred explains how to create a structure package as the root of the package hierarchy.
To create or change a structure package, you need authorization for activity 02 (Change) in authorization object S_PACKSTRU. If, in addition, you have to specify the transport layer of the package to be created, you also need the corresponding Change and Transport System authorization.
To create a structure package, follow these steps:
Step 1. Use transaction SE80 to open the Object Navigator. Choose the Repository Browser and select Package as the repository type.
Step 2. In the Input field, enter a name for the new package
Step 3. Choose Create.
Step 4. In the dialog that appears, enter a few package properties (Figure 3). Table 1 explains the meaning of the individual package properties, particularly with a focus on customer projects.
Figure 3 Dialog screen for creating a package
Table 1 Basic properties of ABAP packages
Step 5. Click the continue (green check mark) icon.
Step 6. In the dialog box that appears, assign a Workbench request.
For the details on the ABAP package concept as well as four case studies exemplifying its use, SAP Professional Journal readers can go here.