Components are used to group entities, utilities and enumerations into installable units for a logical area of development. Interaction between components is done by 'Public' interfaces. This makes components a very important foundation for the development.
Components are not modeled, but used in the models to define to which component the entity, enumeration or utility belongs. In Deploy.ini it is stated for a component if the component has any dependency to any other component. Dependencies can be either static or dynamic.
Static dependency to another component means that the other component needs to be installed in order for this component to be installed and used.
Dynamic dependency to another component means that the other component may be installed and can be used if it is installed.
Example of dependency in a Deploy.ini file.
Interactions between components are done by 'Public' interfaces. This means public methods must be used. If the component has a static dependency towards another component, you can call the public method directly in the code. If the component has a dynamic dependency towards another component, you call the method by using Dynamic calls to other component.