на этот "эффект узнавания" и рассчитывали авторы UML. Действительно,
подразумевается, что действие — это примитивная исполняемая конструкция
языка программирования. Но UML не является языком программирования, поэтому
семантика действий до конца в UML не определяется. Можно было бы взять один
из распространенных языков программирования (или придумать еще один) и
задать семантику выполнения действий UML через примитивы выбранного языка.
UML стал бы визуальным
106
языком программирования. Но именно этого и хотели
избежать авторы — оказать предпочтение одному языку в ущерб остальным.
Универсальный язык программирования
К настоящему времени придумано и живет (т. е. имеет пользователей)
очень большое число различных языков программирования. Несколько
сотен по меньшей мере. Тенденции к унификации не наблюдается —
процесс языкотворчества продолжается. Конечно, постоянно
предпринимаются попытки "ввести" единый для всех язык
программирования, опираясь либо на достоинства продвигаемого
языка, либо на финансово-экономическую мощь заинтересованной
в
нем корпорации. Пока что такие попытки успеха не имели и, по нашему
мнению, в обозримом будущем иметь не будут. Дело в том, что языки
программирования существенно различны по той причине, что
постоянно меняются области приложения программирования,
возникают принципиально новые программные технологии, меняется и
совершенствуется архитектура компьютеров, стремительно растут их
количественные возможности. Фактор, который еще вчера был
решающим при выборе языковой конструкции, завтра может ничего не
значить. Отсюда не следует, что всеобщий язык программирования
невозможен в принципе (например, у математиков практически есть
общий язык). Но, по нашему мнению, сегодня это настолько
маловероятно, что может не приниматься во внимание (математикам
для выработки
своего языка потребовалось несколько тысяч лет).
Главной целью UML является стать lingua franca для обмена идеями в сообществе
архитекторов и разработчиков программных средств. Разработчики и архитекторы
используют разные языки программирования и не собираются от них
отказываться — это объективная реальность. Оказывать слишком явное
предпочтение только одному языку недопустимо. Раз нельзя выбрать один язык,
значит приходится отказываться от конкретного языка элементарных действий
вообще. Поэтому семантика действий в UML определена несколько расплывчато и
синтаксис не слишком строг. Расчет делается на то, что на абстрактном уровне
всем все понятно, а инструмент, ориентированный на конкретный язык
программирования, доопределит семантику действий так, как это принято в данном
языке программирования. В табл. 4.4. приведены основные сведения о действиях в
UML.
106
Приставка visual, которую использует корпорация Microsoft в названиях своих средств
программирования, строго говоря, не оправдана. В системе программирования Visual Studio
действительно используется графический интерфейс пользователя, но и только. Код программы как
был линейным текстом, так и остался. Мы склонны считать правомерным употребление термина
"визуальный" только применительно к таким языкам, где код "рисуется" в виде
схем, диаграмм и
т. п.