Easing Frustration with Round Trip Engineering
Other development environments have things like the modeling tool. I remember one that Cincom was evaluating a while back. Their business model was to make the tool pretty cheap, but charge you every time you wanted to generate code. If you wanted to modify the default code generation you could do that by putting in some kind of rules to override it. But think what a pain that would be. You would do your design, generate some code, test it out, figure out what didn’t work, figure out how it should be different, figure out how to write the rules to generate different code, regenerate, recompile, retest. SLOW.
Round trip engineering means that you can create your model, generate and test, and fix it or continue development in the running system, like all Smalltalk development. When you have it the way you want it, you push a button to resynchronize, and the system knows how to import the current state of the art back into the model. Easy!
Of course you would make major structural changes to the model only in the modeling tool, not in the browser, but you synchronize first so that the model knows about whatever tweaks you’ve made in the Smalltalk development environment, rework things in the model, and then generate back to Smalltalk to try it.
There’s a long history of this process – first there were object oriented development environments and relational databases. It’s great to work in Smalltalk, but not so obvious how to get corporate data into Smalltalk objects. People would create their own frameworks to do it, which is a lot of work. Vendors provided them too – ObjectStudio has had several implementations of its mapping tool. There was TOPLink for Smalltalk, and now Glorp. Glorp is a framework you can use to do the work of object-relational mapping for you. You create a descriptor that says how the relational data maps to the objects, and Glorp does it. The mapping tool now works with Glorp instead of the previous ObjectStudio frameworks – it provides the benefit of a visual tool to help create the descriptor of how to map SQL tables to Smalltalk objects.
The assumption is that you have relational data to deal with, and that you want to use Smalltalk to do your development. Given that, the mapping tool and Glorp make it easy for you to handle the object-relational mapping problem, giving you more time to spend on your own development.
Want to learn more?