Thread: [Java-gnome-developer] UML Class diagram editor
Brought to you by:
afcowie
From: Mark H. <mh...@ti...> - 2004-11-20 17:13:00
|
Hello everyone, I'm quite interested in creating a new application (using java-gnome, of course) and I'm wondering if anyone here is intrested in helping. It's a huge task, so I might not even start without extra help. In fact, it's very huge. But there are a lot of libraries out there to help us. ANTLR will be especially important. The basic idea is to create an app for editing UML diagrams, like Rational Rose, or Visio (sorry, I don't know of any open source/free/ or even linux-based alternatives). This new application would be slightly different to these as it would be far more greatly linked to the source code. (and of course it would be open source and gnome-based and ...) Here are a few use cases, limited to class diagrams since we can't expect to do everything straight away: 1) The user is designing a new application. They start by dragging classes into the screen They might then drag relationships between the classes, or add attributes or operations to the classes. I have ideas for other data to include, but this is just an overview They print, or save as html. To illustrate a particular point, they create an illustration diagram. This allows them to drag existing classes onto a new diagram, arrange them how they like, select how much information is shown for each (e.g. just show a few methods), add notes, etc. Again, this can be printed, etc. Now the clever bit. They go away, think about the design and review it. After a few modifications, the software then generates code for this design. This includes all methods, fields, and even comments as javadoc. They then write their well-designed application 2) The user wants to draw the design of an existing application so that they can modify the design. The application automatically generates full class information, including all fields and methods, as well as all javadoc information. It creates an overview class diagram, showing everything with their relationships as in the code. This is an unreadable mess (as you would expect -- far too much information) They then create a new illustration, as a copy of the class diagram. They remove irrelevant classes from the illustration (but not from the model), add comments, change what should be shown for each class and end up with a diagram illustrating how the software works. They use this to explain how the software works to the rest of their team 3) The user has source code and a class diagram, but wants to change the source code (at this point, the user would either have to manually update the diagram, or leave it out of date, if using a competing product). The application scans the source code for changes. It detects them and asks the user what to do. They choose to have the model updated. They go to each illustration in turn and add classes, based on a list of classes newly added to the library. 4) The user wants to change the overall architecture of the software. This needs redesign of the class diagrams. They change the diagrams with drag and drop. This is reviewed by their team mates and a solution agreed upon. Their source code is automatically updated with stubs for the new parts and the old parts commented out. What do you think? Interested in helping create this? -- .''`. Mark Howard : :' : `. `' http://www.tildemh.com `- mh...@de... | mh...@ti... |
From: Ray A. <ra...@do...> - 2004-11-21 16:29:06
|
Hey Mark, On Sat, 2004-20-11 at 17:12 +0000, Mark Howard wrote: > Hello everyone, > > I'm quite interested in creating a new application (using java-gnome, of course) > and I'm wondering if anyone here is intrested in helping. It's a huge task, so I > might not even start without extra help. In fact, it's very huge. But there are > a lot of libraries out there to help us. ANTLR will be especially important. <snip/> I'm not sure what you intended to use for graphical layout, but you might consider using Apache Batik SVG Toolkit (a java lib, http://xml.apache.org/batik/). Batik SVG for drawing would allow you to get SVG->PDF, SVG->(whatever graphic format you want) for free. It also has a renderer which you could wrap to work in Java-Gnome (now that would be a _COOL_ addition to the bindings AND serve your project's interests). Plus, starting with an object model in XML is really the way to go. > What do you think? Interested in helping create this? I'm interested but have too little time, maybe as the project unfolds this could change. As for open source UML: Umbrello, check it out. It's a rather complete and mature UML editor (version 1.3.1) with code generation for C++, Javascript, PHP, ActionScript, SQL, Python, Ada, IDL, XMLSchema, Perl and last but not least Java. It's a Qt based app, but if you're at all familiar with C++, it may have a design pattern that could lead you in the right direction. It's standard issue in Fedora Core since FC1. Goo luck on this new project. -- Ray Auge <ra...@do...> |
From: Ray A. <ra...@do...> - 2004-11-21 17:41:37
|
Huh, maybe not. Looks like Batik needs an Draw2D implementation. So unless you want to wrap that whole API you'd probably be better off trying to do the wrapping for librsvg and libcroco (Gnome). On Sun, 2004-21-11 at 11:27 -0500, Ray Auge wrote: > Hey Mark, > > > On Sat, 2004-20-11 at 17:12 +0000, Mark Howard wrote: > > Hello everyone, > > > > I'm quite interested in creating a new application (using java-gnome, of course) > > and I'm wondering if anyone here is intrested in helping. It's a huge task, so I > > might not even start without extra help. In fact, it's very huge. But there are > > a lot of libraries out there to help us. ANTLR will be especially important. > <snip/> > I'm not sure what you intended to use for graphical layout, but you > might consider using Apache Batik SVG Toolkit (a java lib, > http://xml.apache.org/batik/). Batik SVG for drawing would allow you to > get SVG->PDF, SVG->(whatever graphic format you want) for free. It also > has a renderer which you could wrap to work in Java-Gnome (now that > would be a _COOL_ addition to the bindings AND serve your project's > interests). Plus, starting with an object model in XML is really the way > to go. > > > What do you think? Interested in helping create this? > I'm interested but have too little time, maybe as the project unfolds > this could change. > > As for open source UML: > > Umbrello, check it out. It's a rather complete and mature UML editor > (version 1.3.1) with code generation for C++, > Javascript, PHP, ActionScript, SQL, Python, Ada, IDL, XMLSchema, Perl > and last but not least Java. It's a Qt based app, but if you're at > all familiar with C++, it may have a design pattern that could lead you > in the right direction. > > It's standard issue in Fedora Core since FC1. > > Goo luck on this new project. > |
From: Reinout v. S. <re...@gm...> - 2004-11-22 16:12:08
|
On Sat, 20 Nov 2004 17:12:53 +0000, Mark Howard <mh...@ti...> wrote: > The basic idea is to create an app for editing UML diagrams, like Rational Rose, > or Visio (sorry, I don't know of any open source/free/ or even linux-based > alternatives). How about ArgoUML (argouml.tigris.org)? regards, -- Reinout |
From: Joao V. <jvi...@ya...> - 2004-11-22 17:38:51
|
Mark, your idea is *great*, and this could definitely be a killer app. *But* i must tell you it's not going to be an easy work, this is a huge application ;) J.V. --- Mark Howard <mh...@ti...> escreveu: > Hello everyone, > > I'm quite interested in creating a new application (using java-gnome, of course) > and I'm wondering if anyone here is intrested in helping. It's a huge task, so I > might not even start without extra help. In fact, it's very huge. But there are > a lot of libraries out there to help us. ANTLR will be especially important. > > The basic idea is to create an app for editing UML diagrams, like Rational Rose, > or Visio (sorry, I don't know of any open source/free/ or even linux-based > alternatives). > > This new application would be slightly different to these as it would be far > more greatly linked to the source code. (and of course it would be open source > and gnome-based and ...) > > Here are a few use cases, limited to class diagrams since we can't expect to > do everything straight away: > 1) The user is designing a new application. > They start by dragging classes into the screen > They might then drag relationships between the classes, or add attributes or > operations to the classes. I have ideas for other data to include, but this > is just an overview > They print, or save as html. > > To illustrate a particular point, they create an illustration diagram. This > allows them to drag existing classes onto a new diagram, arrange them how > they like, select how much information is shown for each (e.g. just show a > few methods), add notes, etc. > Again, this can be printed, etc. > > Now the clever bit. They go away, think about the design and review it. > After a few modifications, the software then generates code for this design. > This includes all methods, fields, and even comments as javadoc. They then > write their well-designed application > > 2) The user wants to draw the design of an existing application so that they can > modify the design. > The application automatically generates full class information, including all > fields and methods, as well as all javadoc information. It creates an > overview class diagram, showing everything with their relationships as in the > code. This is an unreadable mess (as you would expect -- far too much > information) > They then create a new illustration, as a copy of the class diagram. They > remove irrelevant classes from the illustration (but not from the model), add > comments, change what should be shown for each class and end up with a > diagram illustrating how the software works. They use this to explain how the > software works to the rest of their team > > 3) The user has source code and a class diagram, but wants to change the source > code > (at this point, the user would either have to manually update the diagram, or > leave it out of date, if using a competing product). > The application scans the source code for changes. It detects them and asks > the user what to do. They choose to have the model updated. They go to each > illustration in turn and add classes, based on a list of classes newly added > to the library. > > 4) The user wants to change the overall architecture of the software. This needs > redesign of the class diagrams. > They change the diagrams with drag and drop. This is reviewed by their team > mates and a solution agreed upon. Their source code is automatically updated > with stubs for the new parts and the old parts commented out. > > What do you think? Interested in helping create this? > > -- > .''`. Mark Howard > : :' : > `. `' http://www.tildemh.com > `- mh...@de... | mh...@ti... > > > ------------------------------------------------------- > This SF.Net email is sponsored by: InterSystems CACHE > FREE OODBMS DOWNLOAD - A multidimensional database that combines > robust object and relational technologies, making it a perfect match > for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 > _______________________________________________ > java-gnome-developer mailing list > jav...@li... > https://lists.sourceforge.net/lists/listinfo/java-gnome-developer > _______________________________________________________ Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora! http://br.acesso.yahoo.com/ |
From: Laurent M. <la...@ao...> - 2004-11-26 17:18:49
|
>>>>> "Mark" == Mark Howard <mh...@ti...> writes: Mark> Hello everyone, I'm quite interested in creating a new Mark> application (using java-gnome, of course) and I'm wondering if Mark> anyone here is intrested in helping. It's a huge task, so I Mark> might not even start without extra help. In fact, it's very Mark> huge. But there are a lot of libraries out there to help Mark> us. ANTLR will be especially important. [...] Mark> What do you think? Interested in helping create this? I'm already working on something a bit similar. It's called UMLAF and it's based on the JAC aspect oriented framework (http://jac.objectweb.org/). You can have an idea of the look by looking at the tutorial: http://jac.objectweb.org/docs/tut_ide.html The tutorial shows a swing version, but since I'm working on a java-gnome for JAC, we'll have a java-gnome GUI very soon. In fact the only missing part is the UML diagram editor. The swing version uses JHotDraw. I've just given a try at porting it to java-gnome. I wrote an extension of java.awt.Graphics that uses a DrawingArea. The rendering of a diagram works, but it needs more work for user interactions (moving classes ...). Here's a screenshot: http://www.bearteam.org/~laurent/umlaf-gtk.png -- Laurent Martelli la...@ao... Java Aspect Components http://www.aopsys.com/ http://jac.objectweb.org |