Raise your level of abstraction
I cannot belive that it is possible to generate automatically 100% of the java code from model.
Is it Possible ?
Is there any real project ?
Is there any MDD tool ?
Welcome on The Model Driven Software Network.
I was not yet involved in a project where 100% of all code was generated. I am sure that in certain cases this is possible, though (in the domain of embedded software for instance).
There are cases where 100% generated code are a primary goal of a tool/product/generator. radarc online is such a case. They mainly target the so-called "citizen developer" (a developer who has business domain knowledge but no software development background or education). Another approach that has the 100% goal is executable UML (xUML).
My answer to your question would be: Yes, but is it worth the effort? If your goal is to generate 100% of the needed code, your modeling language (and also your transformations) might become too complex.
What kind of software you would want to generate 100% code for? What kind of software can the code generation engine that you developed generate code for? What modeling approach did it support?
Hi Marcus. !
Thanks for your feedback.
I also heard that it is possible in the domain of embedded software for instance. But, I find the case in custom business application(ex. banking application).
I want to model with UML, and generate java code from UML model in the banking application development project.
Thank you .
When you use UML for modeling, you are more or less on the same abstraction level as the Java code. It is at least questionable whether the benefits that you get from this approach are worth the effort.
A few days ago, Steven Kelly and Juha-Pekka Tolvanen have written a blog post where they compare UML modeling with domain specific mode.... This might be interesting for you.
Hi Jeongil, hi Marcus,
I do agree that UML is most often used to model on a technical level, and of course, modelling on such a level is of questionable use, since a standard programming language might be much better suited to do that.
But, this is nothing but (partly bad) practise, and there is nothing inherent to UML that suggests or limits UML to such kind of usage. Unfortunately "UML" and "Modelling", for many people, not the least interested parties, has become a synonym for "overly complex, misguided, old-school BigDesignUpFront approaches, doomed for failure".
Obviously, the crucial point in all this is abstraction. Unfortunately, there is still a lack of better terms in the modelling community. "Modelling" means everything from lowest-level sequence diagrams up to highest level business ideas, and starting from early 90ies CASE up to approaches from 2014.
That said, I can confirm that it is possible to model business solutions with concise (i.e. non-complex) business oriented, detailed models and automatically produce complete running solutions from that, including UI, BL, DB, Processes, Services and Documentation.
I'm working on respective projects since 2000, comprising external and inhouse financial, logistics and trade solutions.
Our models are comprised of class models, state engines, a handable amount of stereotypes, properties for finetuning in special circumstances (no, not a pile of them polluting the model), ubpml.org process models, spaces (a kind of class) for navigational structuring (no, not disguised UI programming), optionally a few xocp.org construction plans, plus around 1% Java code for describing expressions, conditons and actual business domain calculations.
Concerning these 1% Java code it is our belief that this part is actually best expressed in a programming langugage. Of course one could use flowcharts here, too, but it would not improve the model.
If your are interested in this matter for curiosity or for research reasons, feel free to ask for more details here.
If you are looking for a solution for an actual project, we can discuss this more open in a private conversation.
And yes, we do have a tool for all that, partly open source, named "EM/OS - Enterprise Model Operation Services".