UML
UML - язык представляющий из себя кружочки, стрелочки, квадратики и много других незамысловатых фигур а также правила и значения для их связывания между собой для каждой из 8 типов диаграмм.

Все эти диаграммы делают чтобы описать программный проект который нужно реализовать. Причом описывают достаточно подробно ( 8 типов диаграмм как никак ) чтобы не оставалось никаких подвешенных вопросов. Позже по ним генерируется основной код-оболочка который далее заполняется непостредственно кодом.

Сдавали "мы" диаграммы для SMTP и POP3 сервера
Давайте познакомимся с некоторыми из них:
читать дальше