views:

190

answers:

4

I am searching for a tool/framework that follows the naked objects pattern and is written in Java. I know about tools like for instance JMatter, Naked Objects and Domain Object Explorer. That's not exactly what I am searching for, though.

Open source would be great, but doesn't need to be. My intention is to use that tool/framework for the purpose of model-driven software development to do the modeling part. Ideally, such a tool/framework would provide the option to use JPA to store/load objects.

I'd like to clarify a bit more, why the aforementioned tools are not exactly what I am searching for, although they do implement the naked objects pattern and thus save a lot of work developing a specific user interface: When using a modeling tool for model-driven software development, I find it really helpful, when the tool shows the relationships between objects in a graphical way (object graph), displaying relationships more than one level deep. However, I don't need (and don't want) the freedom to change the layout of an object graph in many ways, as opposed to what UML-tools allow you to do. As far as I know, none of the aforementioned tools is capable of displaying an object graph. What is more, I even would want to be able to define different views on the object graph, where each view defines a subset of object-types and relationships that should be visible in that view.

I hope this clarifies more than it confuses.

A: 

Does it have to be Java?

On Naked Objects for .NET (see www.nakedobjects.net) we are currently working on a brand new variant called Naked Objects MVC, which combines Naked Objects with ASP.NET MVC. This gives you a 100% generic HTML UI, which you can then customise as much as you want when you are ready to do that. We're a few weeks away from releasing the Beta.

Richard Pawson

Richard Pawson
I've had a look at some videos on www.nakedobjects.net and I've liked what I have seen. The user interface looks really nice to me.Unfortunately, it has to be Java in our case :(. We use a Java-based code-generation tool where we would want to be able to read a model (created through a tool following the naked objects pattern) directly from memory, without any model-conversion required. Code-generation performance is king in our special case.Will be having an eye on your beta, cause I am interested in seeing how a HTML-based "automated" user interface may look like ;).
Marcus Munzert
A: 

The DnD viewer of Naked Objects does - through the tree viewer on the left-hand side of the form - allow the graph of objects to be viewed.

Rob Matthews has also been doing quite a lot of work on this viewer to make it more extensible for other views. We hope to push a new release out in May (probably called 4.1).

For my part, I've been working on a new HTML viewer using Wicket. Like Richard's .NET equivalent, this will also support customization, either cosmetically using CSS or more substantially by writing new Wicket components (to render an object, an object collection, a collection of objects, or what have you). The code is currently in sourceforge.net/projects/wicketobjects.

But in your question you said that really want is a tool to help you do the modelling part, not so much the deployment. In which case NO will let you develop your pojos, and then you can go deploy with a custom presentation and persistence layers if you want. There's discussion of this in my book (chapter 13 thru 15).

Cheers Dan

Dan Haywood
Thanks for pointing me to the ongoing work on NO (Naked Objects), Dan. I've been digging around on the NO site and sites related to it (Star Objects, JPA Objects, etc.). What I have seen there is just great. And I think that I'am going to use NO to use it as the basis of additional open source modeling tools that perfectly fit to our open source code-generation tool JenerateIT.Seems as if I initially was underestimating the capabilities of NO and the liveliness of its community. Your book about NO+DDD, just having been released recently, comes at the right time for me.
Marcus Munzert
A: 

Can you be more specific as to how you want your views to be shown. Are there specific relationships that you want to show this way, or is it all of them?

As Dan said, I am currently working on the DND viewer and would be interested in providing other views, either to test the flexibility of the design or for inclusion if they are generic.

Regards Robert

Robert Matthews
Here is the basic idea:A view (better term would be view-type) is defined by a set of types and a set of relationships between those types (most of the times those might be all relationships between the set of types). Initially, nothing is shown on a view. Each view has its dedicated search-view, that pops up on demand. That search-view allows for searching for any of the given types that is defined for the given view-type ... (continued on next comment)
Marcus Munzert
... From the result of the sarch, the user can select a single instance of a type. That instance is shwon in the view. Along with it, related instances are shown as well (looks like a kind of map that may be dragged around like you can drag a google map). The user can _not_ arbitrarily position the instances that are shown in the view. So it does not look/feel like class/instance-diagrams in UML. Instead, a view-type also contains layout-directives, something along those lines: "type X is always shown left to type Y" and "typ B is always shown below type A". ... (continued on next comment)
Marcus Munzert
... The element that is displayed to represent the instance shows nothing else than a name, e.g. the result of a certain method of the instance. Editing an instance's attributes works by poping up an overlaying editor. Creating or assigning instances also works by overlaying pop-ups (again, no real dialog or window), that are opened by clicking/touching on buttons/icons that are displayed on the element that represents the instance. All functions are accessible through key-board and most are through touch-events.
Marcus Munzert
A: 

Hi guys,

I'm no programmer but I'd like to define my domain model as a UML class diagram in a CASE tool like Sparxsystems Enterprise Architect and have Naked Objects generate the complete prototype application without writing a line of code.

Is this possible?

Segun
This may be possible in the future. To my knowledge Naked Objects does not provide the "generate app from UML" functionality. However, it is possible to define a UML modeling-style targeting Naked Objects and develop generation logic that actually generates a complete Naked Objects application. This may be accomplished by using code-generation tools like openArchitectureWare/Xpand (http://www.eclipse.org/modeling/m2t/?project=xpand) or JenerateIT (http://www.jenerateit.org) for example.
Marcus Munzert