A notable problem of Java Enterprise Development is its inherent complexity. Either if you use Java EE standard or Spring, your development team will never be as productive as a VisualBasic, PHP, Ruby&Rails, 4GL or even COBOL development team. Complexity of Java Enterprise requires very skilled developers, moreover these developers need to write a lot of code.
The ideal solution for this problem could be the Model-Driven Development approach. Basically MDD states that just the model part of an application has to be developed, and the rest of the application will be generated from this model. In this way, the developers write less and simpler code, nevertheless a powerful Java Enterprise Application is created. A popular incarnation of the MDD idea is the Model-Driven Architecture (MDA).
However, for today, the MDD usage is still very complex. It's needed to make a big investment of time, expertise, and tooling; usually building your own DSL's and combining them into a software factory, and it costs a lot of effort. Therefore, only big companies can afford MDD, and it can only be paid back when using it multiple times for different projects. And, of course, MDD is a hard alternative for mid-size and small companies.
Fortunately you can enjoy the goodness of MDD without its pains. Just removing MDA, DSLs, UML and code generation from MDD and you'll obtain a simple but effective way to do Model Driven Development. OpenXava does Model Driven Development in a lightweight way, so it could be affordable for small and mid-size companies, and cheaper for the big ones.
OpenXava allows to develop applications defining only the model part of the application and all the rest is provided by the framework. For defining the model part simple Java classes with Java 5 annotations are used.
This way, writing Java classes for Invoice, Customer, Product, Order, etc. with the appropriate metadata is enough to obtain a working application. The user interface, database access, behavior for common task and so on are done automatically by the framework.
OpenXava does not use UML, DSL and code generation.