| Feature |
J2EE Spider | AppFuse | JSenna | E-Gen |
|---|---|---|---|---|
| Incremental generation |
|
|
|
|
| Visual interface |
|
|
|
|
| Easy to use |
|
|
|
|
| Code internationalized |
|
|
|
|
| Generating custom code (templates) |
|
|
|
|
| Integration with the development tool (IDE) |
|
|
|
|
| Round-trip engineering |
|
|
|
|
To understand this comparative assessment, we go to explain textually some concepts applied.
- Incremental generation: we to consider incremental generation the resource that allow to create a part from code now (i.e. layout) and another part from code after (i.e. Java code). Furthermore, to possibility to generate several times java code and settings without interfere customizations made by the developer manually (using merge). The incremental generation is useful because the developer to choice which part of system he want to generate, and which part will be to made manually, or to utilize other tool, can also to add new technologies during the project.
- Visual Interface: This item, we to consider the possibility offered to each project as regards to settings and code generation through of a visual interface;
- Easy to use: Here the projects were highlighted for possibility being utilized of an easy form to beginner developer or that to search productivity. A visual interface directly influence in this item. But, besides, this interface must be simple, direct and with good usability.
- Internationalized Code : some teams of development likes the class and method names in English, independently of your regional idiom. That resource considers exactly that. Not only the interface of the system generated to be internationalized, but, the code also to be flexible to different needs;
- Code customized (templates): we to consider the possibility of projects, generated code for a framework that belongs to specific groups (templates), for example: template Java 1.4, Java template 5, template of own business. Inside each template, the code of a framework that is generated in different ways;
- Integration with the tool of development (IDE): Was considered the full integration with any IDE (Eclipse, NetBeans, IDEA). To understand this item, it's necessary to set up of the code generation, customize, to create other files manually and test the Project using the same environment, without to opening other tools that aren't part of daily of the developer;
SPIDER vs MDD
Some generating code tools are Model-Driven Development (MDD) and SPIDER has another concept. We will try to explain the differences:
In SPIDER you don't need to create diagrams and has no dependency on the tool if you want to change the code. The SPIDER helps you to create the code of your project and after create the files it have a person as owner: the developer. The SPIDER don't need to maintain any regular sync with the code. You can continue your project manually... after a few weeks can use the SPIDER again for new Use Case.
SPIDER doesn't have the dependency between code and tool, the two are completely independent. If half of the project you decide not to use more the SPIDER, ok. You can do this.
Some other similar tools has some manual steps as: many commands maven or interface via prompt (DOS) using only commands (example: AppFuse). The abstraction of SPIDER is higher and doesn't need to know or learn anything to use the tool... It is much easier and allows more features eg choose layout (skin) visually - do this in a prompt would be bad.
The facilities of SPIDER allow you to create projects much faster than with MDD tools or tools based on commands.
The quality will also be good because the generated code is based on templates. You can use your template with the customizations you want.
The UML diagram and documentation are important, but we don't need it to configure project or create CRUDs. The SPIDER is more agile and can create code (as you want) without using the concept of MDD, then you save time.
In my opinion MDD is important (for example) for modeling a system and create it in several different technologies. If your system has only one technology (JEE), MDD is not necessary or not adds many advantages. So the SPIDER is not a MDD tool.

