In the context of Progress Developer Studio for OpenEdge, modeling is the process of
creating visual representations of application components and their associated
relationships, and storing these components in a format that makes it easy to share and
reuse them. The tool used for this process is the Component Designer, a graphical
editor.
With Tools for Business Logic, you can use two basic approaches:
- Model-to-code (forward engineering) - You begin by using the Component Designer to
create a visual diagram of a component. Tools for Business Logic can generate the
ABL code corresponding to the diagram on demand.
- Code-to-model (reverse engineering) - You use Tools for Business Logic to derive
component diagrams from existing ABL code. You can then edit the diagrams with the
Component Designer, and store and reuse the components.
The results of the design process are captured in two forms:
- A diagram, which is the visual representation of a single component and its
subcomponents. This is the resource that you directly edit. The diagram file simply
stores the information needed to render the picture that appears in the Component
Designer.
- A component model, which stores detailed information about the structure and
relationships of all components in a project. You assign each diagram to a specific
component model, and although you may have many models in your workspace, each
component belongs to only one model. When you save a diagram, or when you derive a
diagram from existing code, its associated model is automatically updated. The
component model is stored either in a OpenEdge database or as an XMI (EMF Ecore)
file.
Two entities govern the creation of Tools for Business Logic components and the
generation of the corresponding ABL code:
- Component definition file - An Ecore file that contains the rules of component
structure. The component definition file determines what types of components you can
create and what options are available in the Component Designer for constructing
each type.
- Template - A JET (Java Emitter Template) file that specifies how the structure of a
valid component is defined in ABL code. There is one template for each component
type.
Progress Developer Studio for OpenEdge provides a standard model definition file and
templates for the supported component types. Customization of these files requires
advanced knowledge of Java and JET concepts and syntax, and working knowledge of EMF. If
you choose to customize any of these files, be sure to keep backup copies of the
original versions.