Простой инструмент для рисования диаграмм последовательностей
Диаграммы UML — прекрасное средство для повышения эффективности программирования. Другое дело, что их изучение — дело хлопотное, поэтому многие самоучки (вроде меня) до поры, до времени эту «мутотень» игнорируют. И зря: когда сталкиваешься с по-настоящему успешным программистом, одна из первых вещей, которая про него выясняется — он тщательно проектирует код, прежде чем браться за долбежку клавиатуры. В этом разница между программистом и кодером.
Вовсе не обязательно выучивать огромные мануалы по UML. Достаточно взять на вооружение хоть что-то, и уже будет польза. К тому же не так много свободных инструментов, позволяющих рисовать всю совокупность диаграмм. Но кое-какой open source софт есть. Вот, например, sdedit — программа для рисования диаграмм последовательностей. Ее особенностью является то, что вместо принципа WYSIWYG («рисования» мышкой) она генерирует диаграммы на основе вводимых с консоли команд. Например, диаграмма, представляющая собой схему дистанционного обучения, может быть описана так:
Генерируется такая диаграмма:
Она может быть полезна не только для более качественного уяснения предметной области самим программистом, но и для демонстрации бизнес-процессов другим заинтересованным лицам (инвесторам, клиентам, коллегам и т.п.).
Вовсе не обязательно выучивать огромные мануалы по UML. Достаточно взять на вооружение хоть что-то, и уже будет польза. К тому же не так много свободных инструментов, позволяющих рисовать всю совокупность диаграмм. Но кое-какой open source софт есть. Вот, например, sdedit — программа для рисования диаграмм последовательностей. Ее особенностью является то, что вместо принципа WYSIWYG («рисования» мышкой) она генерирует диаграммы на основе вводимых с консоли команд. Например, диаграмма, представляющая собой схему дистанционного обучения, может быть описана так:
#![Схема обучения]
Клиент:Actor
БазаДанных: DataBase[p] "База данных"
Календарь:Screen[p] "Календарь"
Консоль:Screen[p] "Учебная консоль"
/Занятие:Занятие[a,x]
Преподаватель:Actor
Клиент:БазаДанных.регистрируется
Клиент:Календарь.выбирает свободные часы
Календарь:Преподаватель.сообщает о новом клиенте
Преподаватель:Календарь.резервирует время
Преподаватель:Клиент.подтверждает время занятия
Клиент:Преподаватель.производит оплату
[c Цикл занятий]
Преподаватель:Занятие.new
Преподаватель:Консоль.подключается
Клиент:Консоль.подключается
Занятие:Консоль.проводится
[/c]
Генерируется такая диаграмма:
Она может быть полезна не только для более качественного уяснения предметной области самим программистом, но и для демонстрации бизнес-процессов другим заинтересованным лицам (инвесторам, клиентам, коллегам и т.п.).