SDMetrics Core is a Java library to calculate metrics of structural design properties such as coupling, size, and complexity for UML designs. It also checks design rules to automatically detect incomplete or incorrect design, and adherence to style guidelines such as circular dependencies or naming conventions. The library provides an XMI parser for import of XMI 1.x files with UML1.3/1.4 models, and XMI 2.0/2.1 files with UML 2.x models. Design metrics, rules, and XMI import are highly customizable.
Umple can be used for pure UML modeling. Or it can be used to add UML constructs, such as associations and state machines to code written in Java, PHP, or Ruby. It generates code in these languages that can save a large amount of programming effort and result in higher quality. The UmpleOnline tool allows you to edit UML diagrams graphically, and watch the Umple textual code being written in real time. This works the other way too: you can write textual Umple and watch the corresponding UML diagram appear. Umple is being extended to support patterns, tracing, and a variety of other features. Umple is written in itself, which is central to maintaining its quality. Umple can be used today by any programmer or modeler.