UMLGraph facilitates the declarative specification and drawing of UML class and sequence diagrams. One can specify a class design using the Java syntax complemented by Javadoc tags. Running the UmlGraph doclet on the specification generates a Graphviz diagram specification that can be automatically processed to create Postscript, GIF, SVG, JPEG, fig, or Framemaker drawings. Similarly, sequence diagrams are specified using declarative pic macros and compiled with the GNU plotutils pic2plot program into a PNG, PNM, (pseudo) GIF, SVG, AI, Postscript, CGM, FIG, PCL, HPGL, Regis, or TEK drawing.
astah* is a UML and mind map modelling tool for Agile software development. It provides developers with an easy-to-use sketching and modeling tool for drawing diagrams such as UML, ERD, DFD, and mind maps. Various versions are available, including a free edition and a Web-based communication server edition that allows users to share and comment on diagrams.
QM is a graphical UML modeling tool for designing and implementing real-time embedded applications based on the QP state machine frameworks from Quantum Leaps. QM provides a graphical UML state machine diagram editor and generates production-quality, portable, and human-readable C or C++ code that is fully traceable from the design.
QP Active Object Frameworks is a family of event-driven, RTOS-like, active object frameworks for microcontrollers. The QP frameworks provide thread-safe execution of active objects (concurrent state machines) and support both manual and automatic coding of UML statecharts in readable, production-quality C or C++. Automatic code generation of QP code is supported by the free QM modeling tool. The QP family consists of QP/C, QP/C++, and QP-nano frameworks, which are all professionally developed, strictly quality controlled, well documented, MISRA-compliant, and commercially licensable. All QP frameworks can run on "bare metal", completely replacing a traditional RTOS. Ports and ready-to-use examples are provided for Cortex-M3, Cortex-M4, Cortex-M0, RX600, MSP430, C28x, C55x, AVR, ARM7, ARM9, ColdFire, PIC24, dsPIC, M16C/R8C, H8, HC08, 8051, Arduino, and mbed. QP/C and QP/C++ can also work with a traditional (RT)OS such as POSIX (Linux, QNX), Windows, VxWorks, ThreadX, uC/OS, or FreeRTOS.