"When you're designing and developing new software systems, it is often hard to see how all the pieces are suppose to fit together. Unified Modeling Language (UML) is one tool that allow developers and architects to ease the process and create a big picture before committing to a particular technology.
"UML is simply a language, as its name suggests. It can be used, along with a working development methodology, to aid in designing and describing a software system. The process is called modeling. UML allows architects, developers, management, testers, designers, and users to come together and create a software model in an abstract fashion..."