Code generation

Confusions in code generation

First the whole application implementation is actually very simple indeed. To enable most effective implementation of an application it must be divided in 3 logical tiers: application, business logic  and persistence. Business logic layer ( the middle tier) have to bee implemented with no coupling to anywhere.

The domain implementation layer should under any circumstances have no knowledge outside it. This the static structures and the navigation trough network of the domain objects as well as the signatures of business methods can be generated. When the analysis model should always also contain the most significant collaboration diagram, then also the messaging sequences could be generated but I have not seen a tool where this feature has been implemented. The logic within the domain methods always have to handwritten.

With a ideal (and today even realistic see Versant’s db4o) situation implementer shouldn’t  “see” the persistence at all.

The Application layer containing both GU and the workflow control have to bee handmade – especially today as long a we have lousy HTML-based application. Tools here could be far more productive, but automation or generation cannot be seen within predictable future ( IBM tried visual programming called VisualAge for Java and it was one of these thousand promises that did not work at all – been there; tried it; didn’t get the t-shirt)

This is the end or the story. We have exhausted the well of abstraction. Our programming is currently implementation of deterministic Turing- machine. With 3-tier and isolated domain we can go in general case perhaps to couple of hundred classes. This would already imply 1000 – to 10000 direct association between classes. The combinatorial explosion of behaviours would be so immense that I frankly can not believe the is doable by humans.

I have created a couple of hundred abstract domain models on all kind of businesses from manufacturing, through logistics, travelling, airlines, backing, insurance and public administration. The most complex business domains (and modes of course) have been in areas where the domain behaviour is based on written human abstractions, for instance when I modelled the Finnish taxation legislation it proved to be the most complex business behaviour that I have seen.

One additional provision: Here my word “application” means operation management application of corresponding company or organisation

One Response

  1. Almost perfect.

    I just can’t accept that UI need to be manually implemented (and HTML is not the only technology to consider).
    As far as this mentality is kept, there is few progress to expect because UI are reactive systems, thus the most complex ones (the user introduces non-deterministic behavior in an otherwise deterministic system). UI easily represent 70% of the application code so that the way for software industrialization remains then a very long way because the main, most complex and visible part remains middle-age . Art in UI leads to run-time instability and unexpected variation for the end-users (an aspect of friendliness always neglected). I think organization should define UI standards. This is not because there is a standard that it is poor in diversity and necessarily unfriendly. You can also foresee a lot of personalization, and it is more easily done when using standards.

    Even so, it remains not so easy because you may not constrained the complexity of the data structure an UI has to handle. Such implementation is technologically very demanding but possible.

    The workflow implementation and the business components need a standard interface to be able to independently evolve. Processes in business are more often changing than the involved persistent object structure.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: