This article contains an interview on GenMyModel’s architecture, technology used and future.
GenMyModel is an online collaborative tool for creating UML models with code generation for Java, Spring and SQL. The models are built on UML2 metamodel, and can be exported as SVG, JPEG, PDF or UML/XMI format. Currently, the tool has class and use case diagrams, but others –activity, sequence – are to be added in the near future. The tool is integrated with GitHub.
GenMyModel has recently received support for online collaboration enabling multiple users to simultaneously work on the same model. We wanted to find out more about the architecture, technologies used and the future of the tool, our questions being answered by Thomas Legrand, CTO and co-founder, and Stéphane Deveaux, Chief Business Dev Officer and cofounder:
InfoQ: What technologies are powering GenMyModel?
GenMyModel is mainly developed with Java and Google Web Toolkit. The frontend is written in GWT including HTML5 snippets and the backend is a J2EE application. For the core modeling modules, we developed our own implementation of UML relying on GWT.On the server side, our specific SQL-based storage system lets us save the models with its history. This model repository is hosted and backed up on several servers in the cloud.
For the export features, we designed a flexible framework for creating and running model to model transformations coupled with template-based code generators. Regarding the toolkits, all the members of our team have their own secret box! But Eclipse and online IDEs such as Codenvy are used 80% of the time. Our bug tracker and our agile project management system are based on the magic JIRA. Then, the continuous testing and delivery processes are organized by Jenkins and a zest of Sonar.
InfoQ: How does collaboration work? What's going behind the scenes to synchronize the diagrams?
For years, developers have sought to design software architecture together, we are happy to deliver this exciting experience for millions of people. Enter email addresses of the people you want to share with and that’s it: you all edit, move and delete elements of the same model in real-time. All the changes in the diagram (what you see) and in the model (what there’s behind) occur in real-time. Unlike collaborative diagramming tools, the UML compliance is always ensured. At any time of the collaborative design, you can generate images, reports and code. No conflict resolution for the end-users and no lock-unlock barriers. A chat box lets the teammates dialog about their progress within the model. Behind the scene, the key point is that both the diagram and the structured model are synchronized on the server side. Our mechanism ensures you always get an UML-compliant model whose diagrams are in-sync. As everything is saved in our model repository, we will be shortly able to propose the revision history with tags and notes.
InfoQ: Do you intend to support other languages in the future beside Java and SQL?
Absolutely yes, this is so exciting! PHP, JavaScript, C#, C++ and others…Under the hood we are ready to support a big bunch of languages and framework with a wide range of complexity levels. Figure out the number of targets that could match millions of expectations! Naturally it’s just a matter of time and priority. That’s why we’ll come up with the possibility to upload your own generator. We don’t believe in the religion of old-fashioned MDA tools, most of them addressed user’s concerns with non flexible generators. If one thinks the generation of a constructor is missing in the Java-whatever generator GenMyModel provides, I promise it’s not a big deal: “here’s the template, make it your own”. That what I’d like to say. We will achieve this in 2014, all the contributions are welcome.
InfoQ: When do you intend to come out of beta?
In Q2 2014, but nothing is on fire. Thousands of IT engineers come and use the beta every week, and with the engagement, we get a precious feedback. That’s what we’ve done since the beginning: tell us what you’d love, we will try to do it. Here’s how the real-time collaboration came up. The closer we are to our users, the bigger will be our value proposition. For the near future, our goal is to enlarge the UML scope with other diagrams (sequence, activities, then?) and also to ease the jump with the reverse-engineering. We need everybody’s help to design those features and right now pricing plans would be some kind of barrier.
On the other hand, the fact is there are more and more users and companies asking for professional offers. Presently, we study all the questions and we answer case by case.
InfoQ: Can you provide any pricing plans at this moment?
Sincerely, it’s too early to be very accurate. For the moment the beta is free for public and private projects. The limit on the number of private projects is passed by sending us an email. We try to design the best pricing plans for everyone with the feedback we get.
But there are 3 important points I want to underline:
- We believe in open-source and we want GenMyModel to be part of public projects. It’s also a symbol, software modeling enters in a new era. Public projects will always be free
- Lower the barrier for individuals who need private projects with an offer < $10
- Offer companies additional professional services ($50-$150 per month)
InfoQ: What other features are on the roadmap?
Let’s summarize those we intend to work on:
- More diagrams: activity, sequence
- More code generators: upload yours
- Version control management
- Reverse-engineering from Git repositories, firstly for Java
Others will be added and the roadmap still needs to be steered. Everybody can post an idea or request for an improvement on the UserVoice channel: http://genmymodel.uservoice.com