Design Criteria for Business Object Types 

You should keep the following points or questions in mind when designing business objects:

Encapsulation of Required Functionality According to Responsibilities

Object-orientation is based on the notion of encapsulating functionality and data in classes or object types. Details of implementation should be hidden to the greatest possible extent. In other words, such details should not be transparent to users. Predefined methods are used to access the data contained in these "capsules". The caller, therefore, does not have to know or consider implementation details.

A number of expectations are associated with encapsulation. These include improved maintainability, reusability and changeability of a software package structured or implemented in this manner. Encapsulation also takes place at component level. Encapsulation is the basis for enabling components to be distributed, so that the components can be integrated and separately maintained in the Business Framework.

Object design is closely linked to the question of how the system is best broken down into separate responsibilities. The breakdown or encapsulation of functions must be unambiguous and disjunctive.

Determine the Services Provided Based on the Defined Responsibility

Each business object is responsible for a particular area, and provides the associated services. The services are specified as methods in relation to the underlying scenario. Object design and method design are inextricably linked, and cannot be separated.

Determine the Services Used

Business objects can use particular services of other business objects to perform their own services.

Has the Problem or Have Similar Problems Already Been Dealt with? Do Patterns Exist?

Patterns are practical aids to design that can be used at different levels. When objects are designed, you should consider how the design could usefully be applied to similar business objects. The use of patterns requires a very good overview of application structures. The Head Item pattern can be applied frequently. It is used for the business objects PurchaseOrder, SalesOrder, AccountingDocument, etc.

Criteria Conditioned by the System

Objects must be designed so that performance is guaranteed. Object granularity and method design have a considerable impact on performance. The programming model (transaction model) used determines the overall consistency of the business object. Existing source code structures must be taken into consideration.