All Projects → crowdcode-de → Kissmda

crowdcode-de / Kissmda

Keep It Simple Stupid, MDA!

Programming Languages

java
68154 projects - #9 most used programming language

Labels

Projects that are alternatives of or similar to Kissmda

TI-Analysis
关于中国市场培训机构运作流程及运营模式分析论文
Stars: ✭ 42 (+35.48%)
Mutual labels:  uml
Plantuml Editor
PlantUML online demo client
Stars: ✭ 313 (+909.68%)
Mutual labels:  uml
System Designer
A low-code development platform for creating systems
Stars: ✭ 578 (+1764.52%)
Mutual labels:  uml
yed-uml
Examples of various types of UML diagrams created using yEd graph editor
Stars: ✭ 22 (-29.03%)
Mutual labels:  uml
Examplesofdesignpatterns
设计模式的总结与例子(有XMind,Uml图和详细代码实现说明)
Stars: ✭ 265 (+754.84%)
Mutual labels:  uml
Jdl Studio
JDL Studio is an online JHipster Domain Language visual editor
Stars: ✭ 365 (+1077.42%)
Mutual labels:  uml
archi cloudnative
Cloud Native Architectural Models using Archi. Contains models for CAAS, Cloud Native Applications, 12/15 Factor Applications with CI/CD/CS, monitoring and log management. Infrastructure components include Red Hat OpenShift, Red Hat Storage, Red Hat Ansible Tower, Red Hat Cloudforms, Red Hat Satellite, Red Hat JBoss Middleware.
Stars: ✭ 55 (+77.42%)
Mutual labels:  uml
Protobuf Uml Diagram
Create UML diagrams from Protobuf compiled .proto files using Python
Stars: ✭ 17 (-45.16%)
Mutual labels:  uml
Umlgraph
Declarative specification and drawing of UML diagrams
Stars: ✭ 314 (+912.9%)
Mutual labels:  uml
Aws Plantuml
PlantUML sprites, macros, and other includes for AWS components.
Stars: ✭ 565 (+1722.58%)
Mutual labels:  uml
OOP-In-CPlusPlus
An Awesome Repository On Object Oriented Programming In C++ Language. Ideal For Computer Science Undergraduates, This Repository Holds All The Resources Created And Used By Me - Code & Theory For One To Master Object Oriented Programming. Filled With Theory Slides, Number Of Programs, Concept-Clearing Projects And Beautifully Explained, Well Doc…
Stars: ✭ 27 (-12.9%)
Mutual labels:  uml
doteur
Tool to automate the visualisation of SQL schemas from a SQL file
Stars: ✭ 80 (+158.06%)
Mutual labels:  uml
Gaphor
Gaphor is the simple modeling tool
Stars: ✭ 386 (+1145.16%)
Mutual labels:  uml
qm
QM model-based design tool and code generator based on UML state machines
Stars: ✭ 54 (+74.19%)
Mutual labels:  uml
Arkit
JavaScript architecture diagrams and dependency graphs
Stars: ✭ 671 (+2064.52%)
Mutual labels:  uml
idle
parse source code(objective-c, java) generate uml(class diagram)
Stars: ✭ 44 (+41.94%)
Mutual labels:  uml
Jetuml
A desktop application for fast UML diagramming.
Stars: ✭ 346 (+1016.13%)
Mutual labels:  uml
Uml Synchronously Store To Db
UML建模,实时存储到数据库,Java实现
Stars: ✭ 14 (-54.84%)
Mutual labels:  uml
Kroki
Creates diagrams from textual descriptions!
Stars: ✭ 774 (+2396.77%)
Mutual labels:  uml
State Machine Cat
write beautiful state charts 🙀
Stars: ✭ 509 (+1541.94%)
Mutual labels:  uml

KissMDA - Keep It Simple Stupid, MDA!

Build Status Maven Central

After working a while with MDA / MDSD technologies like AndroMDA, oAW, ... we feel like we need just another MDA tool! Why?

  1. We still like AndroMDA, yes the project is very much alive and it has already proven itself to be a strong Open Source project, since AndroMDA has survived the come and go of its comitters. AndroMDA is in our humble opinion the best project in MDA / MDSD area sofar. One problem we see is the complexity of the project. Yes, you need to model the cartridge to build your own cartridge. In the beginning it looks like "eat your own dog food" but at the end it makes the things much more complex to build. Just take a look how you can build your own cartrige in AndroMDA. You also need to use a lot of XML files and elements to configure your cartridge. As an application developer you have all those XML elements to be able configure AndroMDA which makes AndroMDA a configuration monster.

  2. oAW has a different story. Until the version 4.3 it seems everything looks very smooth. After the project went to Eclipse it seems that the project has no activity anymore. No news anymore from oAW 5 release. It's really a pitty. The big problem of oAW is its Domain Specific Language (DSL) Xtend und Xpand. Since they depend on their own editor capabilities in Eclipse and because the project seems to be dead, you will definitely stuck with Eclipse 3.4! No development anymore in the future.

  3. Acceleo looks pretty nice. The project is active and alive. The main problem is that it uses a DSL named MOFM2T (MTL) to generate artifacts. You can read the getting started document of Acceleo to understand how Acceleo generator works. Additionally everything in Acceleo is quite Eclipse centered. So you need the MTL editor from Eclipse, imagine if something happens just like oAW. You will stuck with an old Eclipse version!

  4. TigerTeam TRIMM – Model Driven Generator is just Open Sourced in July 2013. We analyzed the code at Bitbucket.org and found out that the idea with the Events and Listeners as Extensions is a very good idea. TRIMM also uses Maven and does not have any dependencies to Eclipse. Special to this framework is that it uses its own metamodel and does not use UML2 metamodel for the generators. This framework works for MagicDraw and Enterprise Architect and it can read the files directly from those UML tools. It also uses its own Java code generator which is basically based on String outputs. TRIMM offers some ready to use cartridges like Java, JPA and Webservice. It seems that TRIMM does not suffer the problems mentioned above and uses almost the same approach of KissMDA (see our solution below). Following are the differences:

  • TRIMM is using its own Java generator which is basically based on String outputs and this is not the best way to generate Java codes. Using Eclipse JDT is a lot more easier and you always get syntactically correct Java codes which can be easily unit tested like this example.
  • Interesting to compare the transformers for Java code generation. In TRIMM you have the class JavaGenerator.java. In KissMDA you use the class SimpleJavaTransformer.java. They both are the main entering point for the generation of Java codes. Both classes look quite similar from the way of doing the works they need to do. Using DI framework like Guice in KissMDA makes the code more readable and easier to understand.
  • Unit tests are crucial in KissMDA. The simple Java cartridge has in the mean time about 35 test cases. This is possible because we use Mockito extensively. TRIMM Java cartridge has also some unit tests which are not many in comparison with the available implementation classes.

There are some other MDA / MDSD tools available outside: Taylor, Topcased, openMDX. But all of them suffer the problems we mentioned above.

Our solution is KissMDA (Keep It Simple Stupid, MDA!).

  1. KissMDA is a pure Java API approach

No DSL, no Polyglot Programming. OK, we still need a templating engine and it also depends on an Eclipse plugin. Therefore we will choose the best templating engine available wisely. Nope! This is not true!

  1. No need to have special Eclipse plugins

We just use Java with its Java editor in Eclipse! Or if you like you can choose other Java IDE. We are independent from Eclipse.

  1. We use the best UML tool available

At the moment we prefer MagicDraw as our UML tool. Important is that we use Eclipse UML2 API to access our UML model. As long as your UML tool offers Eclipse UML2 API you can integrate it in KissMDA. Just don't forget this: your UML model is your source code so treat it as a first class citizen just like your Java code.

  1. We'll try not to use XML in our framework

Instead we'll implement annotations as much as we need it.

  1. Maven is the core part of KissMDA

We use Maven standard project layout. We'll generate the codes with a Maven plugin, we'll generate the skeleton of the MDA application and the cartridge project with Maven archetypes. No other choice! Maven is our core!

  1. IoC / DI is everywhere

We use DI (Dependency Injection) everywhere to make our code testable. We choose Guice for our DI framework.

We are still in the beginning of the project, so if you want to influence our direction, you are welcome to do so!

For more information please check out our Wiki pages: https://github.com/crowdcode-de/KissMDA/wiki
For the latest news please check out our KissMDA Google+

KissMDA team
Lofi, Ingo, Markus

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].