Как научиться применять
UML?
UML - (Unified Modeling
Language — унифицированный язык
моделирования давно уже стал стандартом
de-facto. Многие софтверные компании, принимая
на работу программистов интересуются его
знаниями UML (и отсутствие таковых явно не
является плюсом). А уж про аналитиков и
нечего говорить. Без знания и умения
работать с диаграммами UML, аналитикам
просто указывают на дверь.
UML - это не
язык в прямом смысле этого слова, не такой
язык как, например, язык программирования.
Это - набор правил, который можно
назвать стандартом, составления диаграмм,
необходимых в ходе разработки и внедрения
программного обеспечения и описания
бизнес-процессов.
Каждая диаграмма
предназначена для отражения определенной
информации. Значки на диаграммах и их
связи также имеют строго оговоренное
назначение, и должны применяться
определенным образом. Единообразное
применение диаграмм и гарантирует то, что
каждый участник проекта будет понимать то,
что что хотел сказать автор диаграммы.
Сейчас
книг по UML издается огромное количество. В
одном только Озоне
я нашел 116 книг с упоминанием UML в заголовке.
Вас не удивляет, почему книг так много? К
примеру, учебников английского языка в Озоне
всего 62 наименования. Неужели UML настолько
сложнее английского, что требует стольких
разъяснений? Или может быть все эти книги
слабо помогают в изучении UML? Да не может
такого быть! Именитые авторы пишут и
переписывают свои книги, печатают новые
издания и все без толку?
Единственный
вывод, который можно сделать исходя из
обилия литературы, что ее покупают.
Действительно, у меня самого штук пять
книг в названии которых встречается эта
аббревиатура. Интересно, почему ее все-таки
покупают? Видов диаграмм и правил их
составления значительно меньше, чем
правил в английском языке. А уж видов значков на диаграммах ни в какое сравнение
не идет с количеством слов, которые нужно
запомнить, чтобы бегло читать
текст, я не говорю уж о том, чтобы писать.
Итак, имеется проблема, есть
большое количество литературы, а
создавать диаграммы правильно, как не
умели аналитики, так и не умеют. Казалось
бы что здесь сложного? Купил одну-две -
десять книг по UML, все их прочитал и вуаля!
Как-то
меня попросили помочь изобразить сложный
алгоритм на диаграмме деятельности.
Бизнес-процесс никак не хотел
укладываться в "плавательные дорожки".
А потом оказалось, что на одной диаграмме
одновременно присутствовали дорожки
отвечающие на вопрос "кто" и
отвечающие на вопрос "где", т.е.
получалось не два измерения, а три, что для
данной диаграммы изобразить просто не
представлялось возможным. Пришлось
разбить эту диаграмму на две. Кстати, в
нотации Aris эта проблема решается за счет
добавления дополнительных элементов, а в
UML можно решить только созданием отдельных
диаграмм или на крайний случай -
комментариями.
В составлении диаграмм - нет единого решения.
Одну и ту же диаграмму можно нарисовать по
разному. Здесь невозможно 100% сделать
одинаковые диаграммы. Каждый аналитик
нарисует диаграммы по своему, и хорошо,
если он соблюдает хотя бы нотации UML.
Если
вам скажут "нарисуйте дом", то какой
дом вы нарисуете? У каждого человека свой
взгляд на вещи. Если вы хотите изучить
рисование дома и прочтете книгу о том, как
рисовать дома, то как хорошо вы сможете их
рисовать? Вот тоже самое и здесь. Вы прочли
книгу об UML и что?
Чтобы научиться плавать
- нужно плавать. Чтобы научиться применять
UML нужно его применять. Возникает вопрос:
как это сделать. Можно взять пример из
книги, для которого уже создана диаграмма
и, перед тем как читать, попытаться создать
такую диаграмму самому. Можно найти в
Интернете уже созданные диаграммы, но
здесь та же проблема. Мы опять будем читать
о том, как кто-то где-то и когда-то тем или
иным образом "рисовал дом".
Лучше
всего учиться рисовать диаграммы самому
на простых задачах. Как обучают только что
пришедших на работу аналитиков? Дают им
простое задание, они его выполняют,
задание проверяют, исправляют ошибки и
дают новое. И, постепенно, аналитик
начинает не просто понимать как нужно
отображать тот или иной случай на
диаграмме, он начинает сам, своими руками
рисовать диаграммы без дополнительных
вопросов. Просто чтение - не дает
результата. Только практика поможет
научиться применять UML в работе.