| 1 |
GModeler Plan |
|---|
| 2 |
------------- |
|---|
| 3 |
|
|---|
| 4 |
GModeler is different from other modeling engines in that it is created |
|---|
| 5 |
as Free Software, with extensibility in mind. GModeler is also different in |
|---|
| 6 |
that it produced nice diagrams. |
|---|
| 7 |
|
|---|
| 8 |
The motto is: What you see is what you have. All information should be in |
|---|
| 9 |
the diagrams. |
|---|
| 10 |
|
|---|
| 11 |
To come up with a real modeling evironment a lot of things have to |
|---|
| 12 |
be done: |
|---|
| 13 |
- Make the UML model editable through a tree-view and the diagrams. |
|---|
| 14 |
- Store and load projects |
|---|
| 15 |
|
|---|
| 16 |
What we have: |
|---|
| 17 |
- A generated UML meta-model (UML module). |
|---|
| 18 |
|
|---|
| 19 |
What we need: |
|---|
| 20 |
- A Tree view |
|---|
| 21 |
- A Diagram editing facility |
|---|
| 22 |
- Property dialogs |
|---|
| 23 |
- Save/Load functionality |
|---|
| 24 |
- Extension points (e.g. for code generation) |
|---|
| 25 |
|
|---|
| 26 |
Tree view |
|---|
| 27 |
--------- |
|---|
| 28 |
I think it's nice to have a MetaModel browser first. At this point a browser |
|---|
| 29 |
is available, but it outputs text. To get comfortable with the GtkTreeModel |
|---|
| 30 |
interface it would be a nice exercise to browse the meta-model through a |
|---|
| 31 |
graphical interface. |
|---|
| 32 |
|
|---|
| 33 |
Diagrams |
|---|
| 34 |
-------- |
|---|
| 35 |
We need to create diagram objects for the representation of elements. It would |
|---|
| 36 |
be easiest (aand fastest) to create those in C. We can create a small python |
|---|
| 37 |
interface on top of it. My guess is that this won't be very hard, just a lot |
|---|
| 38 |
of work. |
|---|
| 39 |
|
|---|
| 40 |
Property dialogs |
|---|
| 41 |
----------------- |
|---|
| 42 |
Maybe we can use something similar to the property editor in one of the GTK+ |
|---|
| 43 |
demos (also available in the DiaCanvas2 demo). |
|---|
| 44 |
It would be nice if we can generate property dialogs based on the information |
|---|
| 45 |
of the MetaModel (UML module). |
|---|
| 46 |
|
|---|
| 47 |
Save and load |
|---|
| 48 |
------------- |
|---|
| 49 |
The pure Python objects could be saved by the Pickle module. It would be nicer |
|---|
| 50 |
however, to store the information as XMI file. |
|---|
| 51 |
|
|---|
| 52 |
We also need some way to save the diagrams. I think it will be easiest to |
|---|
| 53 |
let the diagrams store themselves as XML data also. This way we can embed |
|---|
| 54 |
diagram information in the XML file. |
|---|
| 55 |
|
|---|
| 56 |
Extension points |
|---|
| 57 |
---------------- |
|---|
| 58 |
That's why we use Python... It should be easy... |
|---|
| 59 |
|
|---|
| 60 |
So the plan will be: |
|---|
| 61 |
- Create a Tree view of the Meta model |
|---|
| 62 |
- Create a tree view of some live data |
|---|
| 63 |
- Some elements to visualize (first Use Cases) |
|---|
| 64 |
- Create new use cases on the canvas and on the tree view |
|---|
| 65 |
- DND support between the tree view and the Diagram |
|---|
| 66 |
- Load and save functionality (maybe a full blown XMI parser) |
|---|
| 67 |
|
|---|
| 68 |
Oh, and find a nice name for this project... |
|---|
| 69 |
|
|---|