SalesforcePlantUML is a native Force.com application that renders UML class diagrams for a given set of Apex classes or SObjects. The diagrams are rendered by an external declarative UML service / library called PlantUML.
PlantUML is a free and open source UML tool for drawing UML diagrams from a simple and human readable text description. It ca be used as a stand-alone application or can be used from many different IDEs. Dependencies for PlantUML are a Java virtual machine and an installation of Graphviz. To create the UML diagrams, PlantUML has a meta-language defined that allows the diagram creator to describe the UML as a series of text statements which the graphics engine translates into standard UML notation. The graphics engine is written in Java and is distributed in both JAR and source code form. 
All the information required to render such diagrams is extracted via Apex code and very ugly ;) and unstable Regular Expressions. This should definitely be replace by code that uses the new Tooling API. Feel free to collaborate.
This page render a UML class diagram that show standard and custom SObjects, their fields for a given permission set and related metadata (e.g. pages and triggers)
- Open page YOUR_ORG_URL/apex/erdCreator
- Select SObjects (If you choose too many or too complex classes you might get Limit errors.) 3 Choose some options
and for SObjects including field permissions and related metadata (pages, trigger,...)
This page renders a UML class diagram that show classes, their attribute, methods, inner classes and relations to other classes. It also calculates basic complexity metrics like LOC and Cyclomatic complexity.
- Open page YOUR_ORG_URL/apex/classDiagramCreator
- Select classes (If you choose too many or too complex classes you might get Limit errors.) 3 Choose some options
This app makes use of third-party components also hosted on GitHub: