Простой инструмент для рисования диаграмм последовательностей

Диаграммы UML — прекрасное средство для повышения эффективности программирования. Другое дело, что их изучение — дело хлопотное, поэтому многие самоучки (вроде меня) до поры, до времени эту «мутотень» игнорируют. И зря: когда сталкиваешься с по-настоящему успешным программистом, одна из первых вещей, которая про него выясняется — он тщательно проектирует код, прежде чем браться за долбежку клавиатуры. В этом разница между программистом и кодером.

Вовсе не обязательно выучивать огромные мануалы по UML. Достаточно взять на вооружение хоть что-то, и уже будет польза. К тому же не так много свободных инструментов, позволяющих рисовать всю совокупность диаграмм. Но кое-какой open source софт есть. Вот, например, sdedit — программа для рисования диаграмм последовательностей. Ее особенностью является то, что вместо принципа WYSIWYG («рисования» мышкой) она генерирует диаграммы на основе вводимых с консоли команд. Например, диаграмма, представляющая собой схему дистанционного обучения, может быть описана так:

#![Схема обучения]
Клиент:Actor
БазаДанных: DataBase[p] "База данных"
Календарь:Screen[p] "Календарь"
Консоль:Screen[p] "Учебная консоль"
/Занятие:Занятие[a,x]
Преподаватель:Actor

Клиент:БазаДанных.регистрируется
Клиент:Календарь.выбирает свободные часы
Календарь:Преподаватель.сообщает о новом клиенте
Преподаватель:Календарь.резервирует время
Преподаватель:Клиент.подтверждает время занятия
Клиент:Преподаватель.производит оплату
[c Цикл занятий]
    Преподаватель:Занятие.new
    Преподаватель:Консоль.подключается
    Клиент:Консоль.подключается
    Занятие:Консоль.проводится
[/c]


Генерируется такая диаграмма:



Она может быть полезна не только для более качественного уяснения предметной области самим программистом, но и для демонстрации бизнес-процессов другим заинтересованным лицам (инвесторам, клиентам, коллегам и т.п.).