A diagramming program with support for a wide variety of modeling languages, such as Unified Modeling Language (UML), Deployment Diagrams, Network Diagrams and many others. It is also extensible to accommodate custom diagrams. Common uses might include Entity Relationship Diagrams for databases, Class Models for object oriented languages and the creation of workflows for documenting business processes.
Diagrams and models can be output in in a variety of formats and are generally of high quality. There is support for integrating into Microsoft products and programming languages, such as Entity Relationship Models can directly create Microsoft SQLServer databases, and Class Diagrams can create classes in C#. Support for other languages such as Java or C++ can be extended but don't enjoy the same level of support.
While no programming skills are required to use this product for diagraming, some programming skill would be required to fully utilize many advanced features of this product.