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