Universal Modeling Language (UML)

Universal Modeling Language (UML) is a formal language that aids in the process of engineering software systems. It may also be useful in modeling organizational processes. UML has its own document format called XMI. The document format is a special case of XML, and it has a formal description in the form of an XSL stylesheet. However, most importantly, the UML documents correspond closely to graphical diagrams that one may draw on paper during the design process. It is important that there exists software which translates between the XMI document and its graphical visualization. In these notes, we will use a program called Umbrello, open source and readily available for Linux and other operating systems.

UML designer packages can be used  in three major modes:

  1. UML is used purely as a tool to document the design process.
  2. UML is used to create the design and generate prototype computer code in an implementation language of one's choice, such as C++ or Java.
  3. UML is used to extract the design from the existing code, with the purpose of reaching a better understanding of the design.

The fourth way would be to entirely formulate the design and implementation in terms of UML, with the computer being responsible for coding the design in an implementation language of one's choice. While the Rational Rose family of tools from IBM goes some way towards this goal, probably there are not many real-life software systems fully implemented in this manner.  On the other hand, to just use UML as a documentation system is probably a waste. The most useful is to use UML are a combination of 2. and 3.