UML Based Software Modeling Tool

Current Status
Screen Shots
Developers Docs


This document is intended to describe what the Dachshund will be when it grows up and our plans for its development.

Dachshund is the name given to the project to develop a UML based software modeling tool. The modeling tool is designed to be used by software system designers as well as developers, and to be useful during all phases of the software life cycle. The tool will consist of a model repository, a document view of the model with an integrated diagram editor, and code-generation modules.

So what sets the dog apart from other software modeling tools out there?

  • open source and free
  • highly extensible, and tailorable to local software modeling quirks
  • integrated document and diagrams (may you never use M$ Word and OLE again)
  • generates TeX/sgml/html documentation
  • fast! this puppy is C/C++ compiled to real opcodes that run in your real machine
  • provides a framework for integrating Your development process modelTM

The Need for a New Modeling Tool

The market seems to be divided between diagram tools (like SmartDraw) at one end, and full blown CASE tools (like Rational Rose) at the other. There are a few free modelling tools, but they all seem to be java based, and while I have nothing against java, I just don't think it should be used for anything important.

The problem with the simple diagram tools, is you end up having to draw the same thing over and over -- the tool does not know how individual components in the diagram are related. At the other end of the market, Rose does a good job of taking care of modelling the software -- but it does not let you capture the ancilliary information from the requirement analysis, design synthesis, detailed design process. This leads to the situation where M$ Word and Rational Rose are being used for the design of a software system -- with tools like that it is difficult to conceptualise a simple elegant solution to any problem!

Project Status

There have been a number of minor iterators to come up with a workable architecture and tool structure. The current iteration uses a code generator to write the code that implements the UML model repository. There is another simpler interface that provides an 'untyped' (but fully verified) interface into the repository. The tool uses the Model-View-Controller design pattern to isolate the toolkit dependent code. It is based on GTK 2 and makes use of the new Tree and Text widgets. A Python interpreter is used to render the tree view and document view of the model.
Webmaster David Bryant
Last modified: Sunday, 08-Sep-2002 11:07:23 UTC