Look at the screenshot below and then read about the features, or try it.

Platform-Independent: DesignPark is written in Java, for use with any Java2 runtime environment.
Easy to Use: In most cases items are connected together simply by dragging and dropping them onto each other. All items have context menus- you click an item and up pops a list of what you can do with it.
Requirements Capture: Actors and use cases are supported along with <uses> and <extends> relationships between use cases. State (activity) charts can be created to link use cases into business processes. Use cases can be described as object interactions using scenarios.
Modeling: Classes can be connected together with association, aggregation, composition, dependency, or generalization (inheritance) relationships. Multiplicities, role names and qualifiers are supported. State charts allow events, actions and activities to be modeled.
Code Generation: Java source code can be generated with get and set operations for attributes, and operations for traversing associations. State information is included in the generated code to show the effect of calling each operation.
Reverse Engineering: Java classes, including the native java classes in rt.jar, can be imported from a JAR file.
You need a java runtime environment, which you can get from www.javasoft.com.
Soon you will be able to download DesignPark from here, but meanwhile you can get it via email from tryit@white-park.freeserve.co.uk.
Why not try our on-line UML test here....
You can test your UML knowledge online by taking our test.