The most important tools used for developing BAPIs are the BAPI Explorer, the ABAP Dictionary, the Function Builder and the Business Object Repository.
The BAPI Explorer
As of Release 4.6A the
BAPI Explorer is the central tool for developing BAPIs. To start it, you can enter Transaction code BAPI or, from the SAP Easy Access menu select ®
Tools ® Business Framework
® BAPI Explorer. As the central access point into the BAPI world, the BAPI Explorer provides access to all the relevant information by way of context-sensitive links to all the required tools and transactions. Project forms guide you step by step through the development process. The project forms contain checkboxes with important information and details about the tools provided. You can also log the progress of your project.
The ABAP Dictionary
All the data definitions used in the system can be described and managed in the central ABAP Dictionary. New or modified information is automatically made available to all system components. This ensures data integrity, data consistency and data security.

For more information see
Documentation on the ABAP Dictionary..
The Function Builder
With the Function Builder function modules can be created, implemented, tested and documented within a function group. The Function Builder contains a Function Library that serves as the central storage for all function modules.

For more information about the Function Builder see the documentation on the
Function Builder.
The Business Object Repository (BOR)
The Business Object Repository (BOR) contains the SAP business object types and SAP interface types as well as their components, such as methods, attributes and events. A BAPI is defined in the BOR as a method of an SAP business object type.
The BOR has the following functions for SAP business object types and their BAPIs:

For further information about the BOR see the documentation on the
Business Object Builder.
Outlook
You first have to define the names, parameters, and characteristics of the BAPI and determine the structures in the ABAP Dictionary that the BAPI will be based on. Only once you have done this can the BAPI be implemented in the Function Builder and the required programming objects be created in the BOR.