A component-based approach to software engineering breaks a system
down into a series of logical components that communicate using well-
defined interfaces. When designed properly, these components become
reusable software assets that can be used elsewhere in other projects or
systems. In this chapter, we will look at ways to implement component-
based designs in ABAP Objects.
7 Component-Based Design Concepts
Now that you have learned the basic principles of object-oriented software devel-
opment in ABAP Objects, we can begin to broaden our focus by looking at ways
to organize class libraries and their related resources into reusable software com-
ponents. This process begins with the assignment of an ABAP development object
to a modular software unit called a package. Packages bring structure to ABAP
development objects, transforming fine-grained code libraries into coarse-
grained development components.
In this chapter, you will learn how to create and work with packages. You will
also see how packages fit into the overall SAP component-based software logistics
model. These concepts will help you keep your software catalog organized as
your class libraries evolve over time.
7.1 Understanding the SAP Component Model
To understand how to effectively implement component-based software designs
in an ABAP development environment, it is helpful to be familiar with the com-
ponent model that SAP uses to manage its own internal software logistics.
As
you
can see in Figure 7.1, SAP assembles its software products as aggregates using
high-level software units called software components. Software components are
composed of
a
series of packages that organize the development objects that pro-
vide the actual implementation part of the system (e.g., classes, function groups.
183