вопрос, конечно, провокационный. И навеян он сегодняшней беседой в одной софтферной компании, в которой я имею честь подрабатывать техническим писателем. Работа, конечно, скучная, но пока единственно возможная, учитывая совместительный ее характер.
И так вернемся к проблеме. Ах прости, а в чем собственно проблема? Да надо сначала поведать о теме беседы и ее результатах.
Хотя внимательный читатель естественно понял тему беседы, но он жаждет узнать, а каковы ее результаты.
Итак некая компания Х в городе Н занимается производством КИС. Проект возник как ответ на веления времени и был реализован на одном из предприятий страны С. Мало по малу другие компании и организации страны С стали интересоваться КИС. Это так сказать предыстория.
Беседа эе с коллекгами заключалась в том, что можно и нужно ли использовать UML в проектировании КИС, и если да, то как это возможно.
Мои оппоненты весьма не глупые люди с богатым опытом программирования и работы в разных ИТ-компаниях, высказали мысль, что UML и многие другие методики и языки моделирования - все это красивая игрушка для пускания пыли в глаза заказчику, не более.
Мотивация. КИС - сложная система с огромным количеством классов и связей между ними. Как можно представить даже часть такой системы в виде ДК и как отобразить все многообразией связей, которые возникают между объектами. Т.е. мысль такая - при реализации ДК даже небольшой части системы мы получим такую огромную диаграмму с такми количеством связей, что вся ее изобразительная значимость, ее информативность окажется бесполезной. И потом - зачем тратить огромное, гигантское количество времени на подготовку ДК, чтобы в будущем в общем никак ею не воспользоваться. При этом надо ее постоянно сопровождать, обновлять, если происходят изменения кода и т.д. и т.п.
Была высказана мысль, что время, которое потратит человек на создание такой модели существенно больше, чем он бы потратил на простое кодирование. Митивация: грамотный человек умеет строить код и без предварительного моделирования, а не грамотный - ну нам такие не нужны... Проводится мысль - может UML и неплохо, но для его овладения нужно много времени и средств, а его преподавания не поставлено на такую основу, как скажем химия, математика, физика, бухгалтерский учет и т.п. Поэтому - использование UML бессмысленно, бесполезно и даже вредно.
В их рассуждениях я заметил одну неточность на мой взгляд. Мои коллеги путают язык UML и процесс проектирования и кодирования(реализации). Я высказал мысль, что просто в компании нет грамотного процесса производства, не отработана его технологичность, а возможно просто пока вы либо не доросли до этого, либо в данной ситуации это вам не подходит - маленький коллектив - смешение ролей, когда программист является и системным аналитиком и проектировщиком и кодером и тестировщиком, а порой и внедренцем.
Очень хотелось бы выслушать ваши комментарии, а также тех, кто имеет опыт или просто знает, ответить на вопрос:
А действительно кто-то использует UML грамотно и хорошо и на всех стадиях проекта, причем проекта очень больших и сложных систем? Или UML все-таки инструмент обучения, возможно инструмент бизнес-аналитиков, и возможно рассчитан на небольшие, обозримые проекты...