Надо признать, что я люблю историю. Мое любимое легкое чтение -это хорошая историческая книга. Но я понимаю, что это нравится не всем. Я говорю здесь об истории, поскольку считаю, что во многих отношениях трудно оценить место, занимаемое UML, не зная истории его развития.
В 80-х годах объекты начали выходить из исследовательских лабораторий и делать свои первые шаги в направлении «реального» мира. Язык Smalltalk был реализован на платформе, пригодной для практического использования; появился на свет и C++. В то же время разработчики начали задумываться об объектно-ориентированных языках графического моделирования.
Основные книги по объектно-ориентированным языкам графического моделирования появились между 1988 и 1992 годами. Ведущими фигурами в этом деле были Гради Буч (Grady Booch) [5]; Питер Коуд (Peter Goad) [7], [8]; Айвар Джекобсон (Ivar Jacobson) (Objectory) [24]; Джим Оделл (Jim Odell) [34]; Джим Рамбо (Jim Rumbaugh) (OMT) [38], [39]; Салли Шлаер (Sally Shlaer) и Стив Меллор (Steve Mellor) [41], [42]; Ребекка Вирфс-Брок (Rebecca Wirfs-Brock) (Responsibility Driven Design) [44].
Каждый из перечисленных авторов в то время был неформальным лидером группы профессионалов, приверженцев этих идей. Все эти методы были очень похожи, хотя между ними и существовали небольшие, но нередко раздражающие отличия. Идентичные базовые концепции обязательно проявлялись в самых разнообразных нотациях, которые вызывали путаницу в головах моих клиентов.
В это горячее время о стандартизации говорили в той же степени, в какой ее игнорировали. Команда из группы OMG пыталась разбираться со стандартизацией, но в результате получала только письма с протестами от всех ведущих методологов. (Есть такой старый анекдот. Вопрос: В чем разница между методологом и террористом? Ответ: С террористом можно вести переговоры.)
Катастрофическим событием, инициировавшим появление UML, стали уход Джима Рамбо из GE и его встреча с Гради Бучем в Rational (теперь это подразделение IBM). С самого начала было ясно, что союз Буч/Рамбо может создать критическую массу1 этого бизнеса. Гради и Джим провозгласили, что «война методов завершена - мы победили»,
1 Критическая масса (в маркетинге) - обязательный набор новшеств, которые должны быть присущи товару, чтобы он считался современным. -Примеч. Ред
по существу заявляя, что они собираются достигнуть стандартизации, пойдя по «пути Microsoft». Некоторые методологи проектирования предложили создать анти-Бучевскую коалицию.
К конференции OOPSLA '95 Гради и Джим подготовили свое первое публичное описание их совместного метода - версию 0.8 документации по Унифицированному методу (Unified Method). И что более существенно, они объявили, что фирма Rational Software купила Objectory и что Айвар Джекобсон должен присоединиться к Унифицированной команде. Rational устроила шикарный прием, празднуя выход версии 0.8. (Гвоздем программы стало первое публичное выступление поющего Джима Рамбо; мы все надеемся, что оно также было и последним.)
На следующий год процесс стал более открытым. Группа OMG, которая раньше в основном стояла в стороне, теперь стала играть активную роль. Rational вынуждена была принять идеи Айвара, а также работать с другими партнерами. Более существенно то, что группа OMG решила взять на себя ведущую роль.
Важно понять, почему вступила в дело группа OMG. Методологи проектирования, как и авторы книг, любят думать, что они важные персоны. Но я не думаю, что вопли авторов книг могут быть хотя бы услышаны группой OMG. Причиной участия группы OMG стали крики поставщиков программных средств. Поставщики испугались, что стандарт, контролируемый фирмой Rational, даст продуктам фирмы неоправданное конкурентное преимущество. В результате производители побудили группу OMG к действиям под флагом необходимости взаимодействия CASE-систем. Это был очень важный аргумент, поскольку для группы OMG взаимодействие значило очень много. Появилась идея создать язык UML, который бы позволил CASE-средст-вам свободно обмениваться моделями.
Мэри Лумис (Mary Loomis) и Джим Оделл возглавили инициативную группу, созданную для решения поставленной задачи. Оделл дал ясно понять, что готов предоставить свой метод для стандарта, но не желает поддерживать стандарт, продиктованный фирмой Rational. В январе 1997 года различные организации представили на рассмотрение свои предложения по стандартизации методов, которые бы способствовали обмену моделями. Фирма Rational сотрудничала с несколькими организациями и в соответствии со своим планом представила версию 1.0 документации по UML - первое создание, соответствующее имени Унифицированный язык моделирования (Unified Modeling Language).
Затем последовал короткий период выкручивания рук, когда объединялись различные предложения. Группа OMG приняла окончательную версию 1.1 в качестве официального стандарта OMG. Позднее были созданы другие версии. Версия 1.2 была целиком косметическая, версия 1.3 - более значимой. В версию 1.4 было введено множество детализированных понятий о компонентах и профилях, а в версию 1.5 добавили семантику действия.
Когда специалисты говорят о UML, они называют его создателями главным образом Гради Буча, Айвара Джекобсона и Джима Рамбо. Чаще всего их называют «Трое друзей» (Three Amigos), хотя шутники любят опускать первый слог второго слова. Несмотря на то что они заработали свое доброе имя в основном в связи с UML, я думаю, что не совсем справедливо отдавать им всю славу. Нотация UML впервые была сформирована в Унифицированном методе Буча/Рамбо. С тех пор была проведена большая работа в комитетах группы OMG. На этой стадии Джим Рамбо был лишь одним из тройки, которая выполнила свои тяжелые обязательства. Я считаю, что основную благодарность за создание UML заслужили именно члены комитета TJML.