Model-to-Code translation has the potential to provide the high development productivity and responsiveness required to meet modern business requirements. This paper reviews issues of completeness, action language, realized code, user interfaces, alternate models, and frameworks. This discussion leads to a proposed recommended path for the development of these tools.
In a previous document1 I have argued that there is a key opportunity for Progress Software to dramatically enhance the productivity and responsiveness of ABL systems by the development of tools to implement Model-To-Code translation. Such tools can dramatically speed new development while improving fit to requirements. These tools also provide rapid response at dramatically lower effort when there is need to modify an existing system to fit changed requirements. Following, I review issues important for determining the desired characteristics of such a tool, resources available for input to the design, and opportunities for supporting features. I then propose a development path by which such features can be added to the ABL toolset.
The greatest benefit of Model-to-Code translation comes from 100% translation, i.e., one works entirely in the model and does no hand creating or modification of the code. Nevertheless some users are likely to be most comfortable with only partial code generation, i.e., generating shells and some standard components, but manually filling in the details of methods and other logic. Moreover, delivering 100% complete translation might be an ambitious goal for a first release, especially if one wants early availability. So, it is reasonable to ask what one can do with less than complete translation and what shortcomings there are in delivering such a tool.