Project Proposal by Martin Stacey


Customizable diagramming tool

Software

Object oriented language with a good GUI toolkit

Covers

Graphics, computational modelling, XML

Skills Required

Programming, preferably experience with XML

Challenge

Conceptual ?? Technical ??? Programming ????

Brief Description

There are a lot of software systems for drawing diagrams that are essentially graph structures comprising nodes that represent 'things' and arcs that represent relationships between the 'thing' elements. Such diagrams include entity relationship diagrams, data flow diagrams, PERT charts, Petri nets, and the activity diagrams, class diagrams, communication diagrams, and state machine diagrams of UML. These software systems range from relatively simple tools to enormously powerful and elaborate CASE tools that not only allow you to draw many different kinds of diagrams but keep track of how entities are used in different places and related to each other, and even generate code for you.

But what if you want to draw a diagram that Enterprise Architect won't give you? Perhaps because it's in a diagramming notation that you just invented? How can you do that?

Your challenge in this project is to build a concept demonstrator prototype for a customizable diagramming tool, that the user can adapt to produce graph-structure diagrams with the sets of symbols they want to have. This will need to include an interface for selecting and dragging and dropping objects onto a canvas, moving the objects around the canvas to reposition them, and for drawing lines of different sorts representing relationships between them. The lines should remain connected to the objects and move with them. It will also need to include an interface for constructing and naming a set of symbols for the objects and relationships that the diagramming notation includes; the diagramming notation should be savable in a file from which it can be reloaded; this should ideally be in a new XML markup language for diagram notations. The system should be able to save and reload diagrams from files; these should ideally be in an appropriate XML markup language.

Extensions

Good features for the system to include would be


Back to