ABL2UML - Modeling Existing ABL Systems with UML

Given the need to enhance or transform a large existing ABL application, one is often hampered in the task by limited or out of date documentation. This project seeks to create a tool set that will read existing ABL code and the corresponding database to build a UML model of the application. This model can then be used for analysis and potentially can serve as the basis for future changes.

This project will consist of three stages:
1. Defining a UML "Profile" for ABL so that there are appropriate UML stereotypes to express the structural realities and relationships of ABL code and the corresponding dictionary.
2. Creating a tool for loading Progress dictionary information into a UML modeling tool using these stereotypes.
3. Creating a tool which will read and analyze ABL code and then load this information into a UML modeling tool using the stereotypes of the Profile.

This work is now in production and is described in the presentation attached below which will be given at the 2008 Progress Exchange conference.

The model created will be a Platform-Specific Model (PSM) in UML terms, i.e., one that is very closely tied to the specifics of the implementation and language. Once this has been accomplished, we will move on to five additional stages:
4. Creating tools to generate ABL code from the PSM so that the model can be changed and revised code generated without having to modify the source by hand.
5. Creating tools to create Platform-Independent Models (PIM) and Computation Independent Models (CIM) from the PSM so that the model can be analyzed and worked on at greater levels of abstraction.
6. Creating tools for transforming various aspects of the models to modernize the structure.
7. Creating tools for generating new PSM models with a revised architecture from the transformed CIMs and PIMs.
8. Generating code with modernized architecture from the transformed models.

These latter stages will evolve over a period of time providing immediate benefit for analysis.

Contact Thomas Mercer-Hursh at thomas@cintegrity.com for information on the current status of this project or for interest in participating in the development.

The PDF of my talk at Exchange 2008 on this topic is below. For the audio, please see here

Make sure that you join the UML group so that you can be notified of new postings and updates since there will be a lot of new stuff coming here soon

For services related to this material, see my website.

DEV-35_Mercer-Hursh.pdf1.18 MB