Информационно-справочный портал MorePC.ru

03.03.2008 КРИЗИС УНИФИЦИРОВАННОГО ЯЗЫКА МОДЕЛИРОВАНИЯ (UML): ФАКТЫ, ПРИЧИНЫ И ПУТИ ВЫХОДА

Л.В. Шуткин

Чем выше точка зрения и уровень

знаний наблюдателя, тем шире

горизонт его мышления и короче

дорога к истине.

ВВЕДЕНИЕ

Когда вы рассматриваете рисунок, изображающий сложную систему, то зачастую, понимаете его смысл без каких-либо словесных пояснений. Так происходит потому, что наш мозг в высшей степени эффективно выполняет функции восприятия, обработки и понимания зрительной (образной) информации. Не случайно русская пословица гласит “Лучше один раз увидеть, чем сто раз услышать”. По этой причине, в последние годы, одним из наиболее продуктивных направлений в проектировании компьютерных систем стало использование их наглядных схем. Наглядный (визуальный) подход к проектированию особенно отчетливо проявился в Унифицированном Языке Моделирования (Unified Modeling Language, UML), предназначенном для анализа и проектирования автоматизированных информационных систем (АИС), баз данных, компьютерных программ и иных сложных систем.

Поясним, что систему называют сложной, если наблюдатель системы для полного представления о ней, последовательно рассматривает ее не с одной, а с многих различных точек зрения. Например, при проектировании некоторой АИС разработчики рассматривают ее с точки зрения объектов и отношений между ними, с точки зрения бизнес и других процессов, а также с иных точек зрения. Еще один пример сложных систем – компьютерные программы. Они рассматриваются программистами с позиций глобальных и локальных переменных, однозначно идентифицированных имен переменных, инкапсуляции частей программных кодов, наследования и с многих других точек зрения.

Язык UML является ярким примером продуктивного использования наглядных схем в компьютерной практике. Его наглядные диаграммы широко применяются системными аналитиками и программистами, проектирующими АИС, базы данных и компьютерные программы. Однако после успешного начального этапа, в развитии этого языка наметился кризис, проявившийся в стандарте UML 2.0, выпущенном Группой Управления Объектами (Object Management Group, OMG). Дело в том, что предъявленные к стандарту технические требования не были выполнены. Тогда заговорили о кризисе языка UML. Некоторые специалисты пришли к выводу, что для его преодоления нужны принципиально новые подходы к анализу и проектированию сложных систем [1].

Наши исследования показали, что такой новый подход можно построить с помощью теории модульных систем, модульных сетей и парадигмы модульного мышления, созданных недавно в России [2,3,4]. Они основаны на теории паттернов, предложенной выдающимся американским математиком Ульфом Гренандером [5,6]. Английское слово “pattern” означает образец, трафарет, шаблон, образ, но не расплывчатый, а с четкой структурой. Поэтому можно сказать, что Гренандер создал теорию четких образных шаблонов для моделирования очень широкого круга объектов реального мира и составленных из них систем.

В основу своей теории Гренандер положил неделимые на части элементарные объекты, называемые образующими (generators). Они рисуются на бумаге и экранах компьютеров в виде наглядных схем и, вместе с тем, описываются математически символьными соотношениями, называемыми векторами признаков образующих. Образующие имеют неотделимые от них связи (bonds), которые могут соединяться друг с другом. Образующие служат моделями объектов реального мира. Из образующих путем бинарного соединения их связей (одна с одной) составляются конфигурации, моделирующие математические и физические системы.

В теории паттернов много новых оригинальных идей. Поэтому она сначала вызвала большой интерес у специалистов многих областей знаний. Однако со временем он упал, поскольку, было не ясно, что может дать практике эта новая, трудная для понимания теория. Из-за высокого уровня абстракции теория Гренандера оказалась мало пригодной для решения практических задач.

Чтобы “приземлить” теорию паттернов до уровня решения инженерных задач я ввел в ее математический аппарат дискретные ограничительные условия, исключившие понятие “абстрактная бесконечность”. Затем я интерпретировал связи образующих, как входы и/или выходы модульных объектов, а сами образующие - как модульные объекты, имеющие входы и/или выходы. Я также представил конфигурации теории паттернов в виде модульных сетей, моделирующих модульные системы, состоящие из модульных объектов. При этом предполагалось, что с выхода одного модульного объекта что-то, например, информация, товары, услуги и т.п., может передаваться на вход другого модульного объекта. Этот вход может быть открытым или закрытым. Если вход некоторого модульного объекта открыт, то через него в тело этого объекта может передаваться, например, информация, поступающая с выхода другого модульного объекта. В противном случае, когда вход закрыт, информация не передается. В теории модульных систем выходы и входы модульных объектов соединяются и разъединяются по определенным правилам, подобно тому, как соединяются днем и разъединяются ночью разводные мосты в г. Петербурге. Помимо введения в теорию паттернов дискретных ограничительных условий я частично изменил принципы построения теории модульных систем по сравнению с принципами теории Гренандера.

Эти и ряд других инноваций позволили построить теорию модульных систем, модульные сети и парадигму модульного мышления и применить их к решению практических задач в различных областях знаний, особенно, в науке о компьютерах. В частности, благодаря теории модульных систем, модульным сетям и парадигме модульного мышления удалось наметить пути преодоления кризиса языка UML.

В статье четыре раздела. В первом – перечислены факты, свидетельствующие о кризисе языка UML. Во втором – рассмотрены теория модульных систем, модульные сети и парадигма модульного мышления, благодаря которым удалось разработать предложения по преодолению кризиса UML. В третьем разделе указаны причины кризиса. Последний раздел посвящен предложениям по преодолению кризиса UML. Для его преодоления предлагается ввести в новые версии стандартов на UML модульные диаграммы и создать единую математическую платформу Модели Управления Архитектурой сложных систем (Model Driven Architecture, MDА, см. сайт www.omg.org/mda). Статья завершается Заключением.

1.ФАКТЫ, СВИДЕТЕЛЬСТВУЮЩИЕ

О КРИЗИСЕ ЯЗЫКА UML

Давно известно, что в различных областях знаний, будь то физика, экономика или политэкономия, периодически возникают кризисы развития. Любой из них имеет три составляющие – кризисные факты, причины кризиса и пути выхода из него. Кризис языка UML не является исключением из этого общего правила. Но сегодня для него не определены факты, указывающие на кризис, не выявлены причины его возникновения и не найдены пути преодоления. Начнем с определения фактов, свидетельствующих о кризисе UML.

Итак, какие факты свидетельствуют о кризисе языка UML? Прежде всего – это невыполнение группой OMG требований технического задания на разработку стандарта UML 2.0 в части большей понятности его диаграмм для простых пользователей, по сравнению с диаграммами стандарта UML 1.0, выпущенного ранее. Стандарт UML 2.0 получился слишком сложным из-за введения в него новых стрелок, изображающих различные виды отношений между физическими и логическими сущностями (объектами) систем. Увеличив число видов стрелок-отношений на UML диаграммах, разработчики стандарта UML 2.0 сделали его менее понятным пользователям. Им трудно понять и запомнить смысл (семантику) многих стрелок-отношений в диаграммах UML 2.0.

Сложность понимания пользователями смысла стрелок, введенных в диаграммы стандарта UML 2.0, является первым, очевидным кризисным фактом языка UML.

Второй, более глубокий и менее очевидный кризисный факт языка UML заключается в отсутствии в нем диаграмм, позволяющих пользователям наглядно изображать внутренние и внешние границы сложных модульных систем.

Третий еще более глубокий факт, свидетельствующий о кризисе UML, обнаружился при анализе роли языка UML в модели MDА. В ней имеются четыре метамодели - UML; MOF (The Meta Object Facility, Объектная метамодель); XMI/ XML (Meta data Interchange/eXtensible Markup Language, Метамодель обмена данными с помощью языка XML) и CWM (The Common Ware House Metamodel, Обобщенная метамодель хранилищ данных). Анализ показал, что язык UML недостаточно согласован с тремя другими метамоделями модели MDA и с ее предметной областью, охватывающей финансы, промышленность, транспорт, медицину, телекоммуникации и другие отрасли экономики.

С помощью теории модульных систем, модульных сетей и парадигмы модульного мышления были разработаны предложения по преодолению кризиса языка UML, приведенные в Разделе 4.

2.ТЕОРИЯ МОДУЛЬНЫХ СИСТЕМ,

МОДУЛЬНЫЕ СЕТИ И ПАРАДИГМА

МОДУЛЬНОГО МЫШЛЕНИЯ

В разработке предложений по преодолению кризиса языка UML решающую роль сыграли теория модульных систем и ее математический аппарат, описывающий общие свойства, существующих в природе и обществе реальных модулей, имеющих входы и/или выходы. Математический аппарат теории модульных систем описывает не только свойства таких модулей, но также общие свойства составленных из них модульных систем. При этом теория модульных систем предлагает простые для понимания, рисуемые на бумаге и экранах компьютеров схемы образующих и модульных сетей, которые служат наглядными моделями реальных модулей и модульных систем.

Образующие и модульные сети не только описываются математически, но и рисуются на бумаге и экранах компьютеров в виде наглядных схем. Практика показала, что люди могут решать свои задачи с помощью наглядных схем модульных сетей, изображающих реальные модульные системы и при этом ничего не знать об их математических описаниях. В этом смысле модульные сети напоминают семантические графы, которые простые люди, решая свои задачи, рисуют на бумаге и ничего не знают о математических описаниях графов.

Математический аппарат теории модульных систем делится на три части. Первую - составляют описания векторов признаков образующих, которые служат математическими моделями модулей, имеющих входы и/или выходы. Вторая часть - состоит из математических моделей модульных сетей, описывающих физические и логические модульные системы. Третья часть математического аппарата теории объединяет оптимизационные, вероятностные и иные формальные методы решения практических задач в области модульных систем.

Математический аппарат теории модульных систем труден для понимания. Поэтому я старался изложить его основы по возможности доступно, но с сохранением определенного уровня математической строгости. Таким образом, я следовал мудрому совету Альберта Эйнштейна: “Объясняйте сложное, как можно проще, но не более того”.

2.1.ОБРАЗУЮЩИЕ–МОДЕЛИ

МОДУЛЕЙ

Рассмотрим первую часть математического аппарата теории модульных систем на примере формального описания ориентированных образующих, которые служат математическими и наглядными моделями реальных модулей, имеющих ориентированные входы и/или выходы.

Образующая, входящая в состав конечного множества образующих, в общем случае, обозначается в теории модульных систем, как gi, где i = 1,2,…,n . Множество, состоящее из n образующих с разными числами входов и выходов, обозначается Gn, где n число образующих.

Ориентированные образующие с разными числами входов и выходов, а значит и представляемые ими реальные модули с разными числами входов и выходов, в общем случае, описываются следующей системой параметрических уравнений:

a(gi)= a(i, γip, δis, βimin , βirout )

Dip, Dis, Dimin, Dirout

i=const (1)

p = 0,1,2,…, pmax ; s = 0,1,2,…, smax ;

m = 0,1,2,…,mmax; r = 0,1,2,…,rmax

В первой строке системы уравнений (1) символьная запись a(gi) обозначает параметрический вектор признаков ориентированной образующей с некоторым номером i. Символы γip, δis, βimin, βirout, фигурирующие в правой части первой строки, являются параметрическими переменными, характеризующими образующую a(gi) в целом (γip), тело образующей (δis), ее входы (βimin) и ее выходы ( βirout ).

Параметрические переменные γip, δis, βimin, βirout, фигурирующие в первой строке уравнений (1), имеют области значений, в которых помещаются данные о модулях. Области называются доменами параметрических переменных вектора признаков образующей a(gi) и обозначаются буквами D с нижними и верхними индексами, которые соответствуют индексам переменных. Домены переменных обозначены во второй строке (1).

Вектор a(gi) называется параметрическим, поскольку он имеет параметры p, s, m, r, которые можно заменять числовыми значениями, взятыми из диапазонов их изменений, определенных в двух последних строках уравнений (1).

Соотношение i=const, приведенное в третьей строке, означает, что в уравнениях (1) порядковый номер образующей, обозначенный символом i, фиксирован. При i=const, после замены в первой строке параметров m и r числовыми значениями получаются вектора признаков образующих с разными числами входов и/или выходов.

В отношении числовых значений параметров p, s, m, r устанавливается следующее соглашение. Если какой-либо параметр равен нулю, то из вектора признаков a(gi) исключается соответствующая параметрическая переменная. Например, если m=0, то исключается переменная βimin. Тогда из (1) получается параметрическая образующая, не имеющая входов, но имеющая выходы. Такая образующая называется начальной. Она моделирует реальные модули, не имеющие входов, но имеющие выходы. Если r=0, то получается параметрическая образующая без выходов, но с входами. Такая образующая называется конечной. Она моделирует реальные модули без выходов, но с входами.

Если r=m=s=0, то первое уравнение системы (1) примет вид a(i,γip) и будет представлять собой помеченную некоторым номером i вершину графа, которой присвоена переменная γip с областью значений (доменом) Dip.

В теории модульных систем рассматриваются абстрактные и семантические образующие. Абстрактные образующие заданы на “пустой информационной среде”, обозначаемой символом λ0. Когда в доменах образующей находятся только символы λ0, то это означает, что в ее доменах нет никаких данных о реальных модулях. Такая образующая называется абстрактной. Абстрактные образующие моделируют лишь структуры (скелеты) реальных модулей без учета их содержания. В отличие от абстрактной образующей, семантическая образующая имеет в каждом своем домене не только символ λ0, но и данные, характеризующие один или несколько реальных модулей.

Понятие “пустая информационная среда” и обозначающий ее символ λ0 играют важную роль в теории модульных систем. Они важны, поскольку всем переменным γ, δ, β абстрактной образующей сначала присваиваются символы λ0, которые затем заменяются данными о реальном модуле.

Абстрактная образующая с определенными числовыми значениями параметров p, s, m, r превращается в семантическую образующую следующим образом. В абстрактной образующей с числовыми значениями параметров символы λ0 заменяются данными о реальном модульном объекте. В результате она превращается в семантическую образующую, которая служит моделью этого модульного объекта. Образно говоря, данные о реальном модуле берутся из доменов и “навешиваются” на абстрактную образующую. Полученная таким способом семантическая образующая служит моделью некоторого одного реального модуля. Заметим, что на абстрактную образующую могут навешиваться не только данные, взятые из доменов, но и данные, извлеченные наблюдателем модульного объекта из его сознания.

Путем замены в векторе признаков, приведенном в первой строке уравнений (1), параметров m и r числовыми значениями, при сохранении параметров p и s, получаются параметрические вектора признаков ориентированных образующих с разными числами входов и выходов. Они служат моделями реальных модулей, имеющих различные числа входов и выходов. Например, подобные вектора признаков служат моделями всех модулей с одним входом и одним выходом, с одним входом и многими выходами, со многими входами и одним выходом и т.д. Таким образом, система уравнений (1) на уровне высокой математической абстракции описывает существующие в природе и обществе модули с разными числами входов и выходов тел модулей.

Чтобы показать, что собой представляют наглядные схемы семантических образующих с разными числами входов и выходов на Рис.1 изображены схемы образующих двух видов – синтеза и анализа. В данном случае они моделируют мыслительные акты синтеза и анализа различных цветов.

 


У образующей синтеза (Рис. 1а) много входов и один выход, а у образующей анализа (Рис.1б) один вход и много выходов. Точки на схемах образующих, называются вершинами образующих, по аналогии с вершинами графов. Точки изображают тела физических или логических модулей, а примыкающие к ним стрелки и треугольники изображают входы и выходы тел модулей. Как видно из рисунка, образующие синтеза и анализа зеркально отображаются друг в друга с изменением направлений стрелок. Образующие синтеза и анализа математически описываются соответствующими векторами признаков. Параметрический вектор признаков, описывающий образующие синтеза, получается из приведенного выше обобщенного параметрического вектора признаков системы (1), если в нем положить m=1, r>=2. А параметрический вектор признаков, описывающий образующие анализа, получается, если положить m>=2, r =1.

С помощью образующей синтеза можно грубо представить в виде модуля нейрон мозга. У нейрона есть ядро (тело), с множеством входных волокон, называемых дендритами. Дендритные волокна нейрона имеют входы, на которые поступают электрические сигналы и химические вещества с выходов других нейронов. Из тела нейрона выходит только одно толстое волокно (аксон). Аксон ветвится на множество тонких волокон, каждое из которых, как полагают, несет один и тот же выходной сигнал нейрона, поступающий на дендритные входы многих других нейронов. Эту конструкцию нейрона, можно представить, как модуль с помощью образующей синтеза. Модульное описание нейрона в некоторых случаях может оказаться более эффективным, чем графовое представление нейрона, приведенное в работе [8].

С помощью образующей анализа представляется в виде модуля видимая на экране компьютера страница веб сайта. В этом случае страница в целом, представляется мысленно и изображается на бумаге как модуль, имеющий один вход и несколько выходов. Гипертекстовые ссылки веб страницы на другие страницы сайта трактуются, как выходы из модуля. Вход в страницу трактуется, как вход в тело модуля. Образующие синтеза и анализа играют важную роль в теории модульных систем, поскольку из них составляются семантические модульные сети синтеза и анализа информации.

Из параметрического вектора a(gi) заменой его параметров m и r числовыми значениями получаются не только образующие анализа и синтеза, но и другие образующие с любыми сочетаниями чисел входов и выходов. Они служат моделями модулей с разными числами входов и выходов в тела модулей. Например, если m=r=1, то получается образующая с одним входом и одним выходом. Она служит моделью модулей, имеющих один вход и один выход.

Помимо ориентированных образующих в теории модульных систем используются неориентированные образующие. Они моделируют реальные модули, у которых каждый выход объединен (совмещен) с одним входом. Такие попарно объединенные выходы и входы называются совмещенными выходами и входами образующих.

Образующие, у которых все выходы и входы совмещенные являются неориентированными образующими. Они применяются, например, для моделирования двух или большего числа АИС, обменивающихся информацией через компьютерную сеть.

Неориентированные образующие описываются, в общем случае, следующей системой параметрических уравнений:

a(gi)= a(i, γip, δis, βiω )

Dip, Dis, Diω

i = const (2)

p = 0,1,2,…, pmax ; s = 0,1,2,…, smax ;

ω = 0,1,2,…, ωmax

В наглядных схемах неориентированных образующих вместо стрелок применяются линии.

Ориентированные и неориентированные образующие представляют собой логические “кирпичики”, из которых по определенным правилам составляются модульные сети, моделирующие реальные модульные системы. Каким образом из образующих конструируются модульные сети показано в 2.2.

2.2 МОДУЛЬНЫЕ СЕТИ –

МОДЕЛИ МОДУЛЬНЫХ СИСТЕМ

Во второй части математического аппарата теории модульных систем описываются модульные сети. Они получаются путем соединения образующих между собой. Из абстрактных образующих составляются абстрактные модульные сети из семантических образующих – семантические модульные сети.

Чтобы получить математическое описание ориентированных модульных сетей надо перейти от обобщенного описания отдельных ориентированных образующих, приведенного в уравнениях (1), к обобщенному описанию набора, состоящего из многих образующих. У этих образующих выходы соединены с входами, причем только попарно (т.е. выход одной образующей соединен только с одним входом другой образующей). В результате получается связанная ориентированная модульная сеть.

В теории модульных систем выход одной образующей всегда соединяется только с одним входом другой образующей. Выходы и входы образующих не могут соединяться в тройки, четверки и т.д. Этот принцип теории модульных систем отображает придуманную природой конструкцию мозга, в котором один выход нейрона, как правило, соединяется только с одним входом другого нейрона. Природа выбрала бинарный способ соединения выходов и входов нейронов в нейронной сети мозга, как основной не случайно. А потому, что если бы выходы и входы нейронов соединялись только в тройки или четверки и т.д., то наш мозг не мог бы выполнять операции синтеза информации, а, следовательно, мы не могли бы принимать решения. Следует заметить, что в нейронных сетях головного мозга выходы и входы нейронов иногда соединяются не в двойки, а в тройки за счет присоединения к выходу обычного нейрона выхода, так называемого вставочного нейрона. Причем тройные соединения выходов и входов нейронов встречается в нейронной сети спинного мозга намного реже, чем двойные. В дальнейшем этот крайне любопытный факт станет предметом наших новых исследований, основанных на теории модульных систем.

Ранее было сказано, что через границы между попарно соединенными выходами и входами реальных модулей, обычно, что-то передается в направлении от выходов к входам. Например, если модулями являются нейроны мозга, то через границы между выходами одних нейронов и входам других передаются электрические сигналы и химические вещества. Соединение выхода одного нейрона с входом другого нейрона может находиться в одном из двух состояний – либо открытым для прохождения электрического сигнала, либо закрытым. Механизм управления закрытием и открытием соединений нейронов пока еще не разгадан.

Соединение выхода одной образующей с входом другой называется в теории модульных систем связкой модульной сети.

Она служит моделью соединения выхода одного реального модуля с входом другого. Множество ориентированных образующих с разными числами входов и выходов и связок между ними математически описывается приведенной ниже системой уравнений (3). Она описывает ориентированные модульные сети в общем случае. Ориентированные модульные сети служат моделями реальных ориентированных модульных систем, например, компьютерных гипертекстов или нейронных сетей.

Система уравнений, описывающая ориентированные модульные сети, в общем случае, представляет собой набор, состоящий из n параметрических векторов признаков ориентированных образующих, который дополнен N ориентированными связками между образующими:

a(gi)=a(i, γi, pi, δi, si, βi, miin, βi, riout)

Di, pi, Di, si, Di, miin, Di, riout

i=1,2,…, n (3)

pi = 0,1,2,…, pimax ; si = 0,1,2,…, simax ;

mi = 0,1,2,…,mimax; ri = 0,1,2,…, rimax

βoutρjβin , где ρj ИСТИНА или ЛОЖЬ, в зависимости от условий

соединения-разъединения j–той связки сети, причем j=N, а N=1,2,3,…

В двух первых строках системы уравнений (3) приведены символьные описания n ориентированных образующих и их доменов. Если во всех доменах находятся только символы “пустой информационной среды” λ0, и они присвоены всем переменным γi, pi, δi,si,

βi,miin, βi,riout ,то уравнения (3) моделируют абстрактные модульные сети. Они служат моделями структур реальных модульных систем. Если в доменах помимо символов λ0 находятся также данные об одной модульной системе, и они присвоены переменным γ, δ, β вместо символов λ0, и при этом параметры p, s, m, r заменены числовыми значениями, то уравнения (3) превратятся в семантическую модульную сеть, моделирующую одну реальную модульную систему. Модульные сети, состоящие из абстрактных образующих, называются абстрактными, а модульные сети, состоящие из семантических образующих - семантическими.

Мы не рассматриваем здесь случай, когда в домены образующей помещаются данные не об одной, а о многих реальных модульных системах, имеющих одинаковую структуру. В этом случае к образующей применяются структурные преобразования подобия, которые оставляют ее структуру неизменной, но меняют ее содержание.

Две первые строки системы (3) с точностью до символов i, фигурирующих в нижних индексах параметров p, s, m, r, совпадают c двумя первыми строками уравнений (1). Третья строка системы (3) означает, что символ i пробегает значения от 1 до n. Этим она отличается от третьей строки системы уравнений (1), где i = const. Поэтому система уравнений (3) содержит не один, как в уравнениях (1), а n параметрических векторов признаков образующих. В четвертой и пятой строках уравнений (3) указаны диапазоны изменений параметров p, s, m, r.

Набор из n векторов дополнен в уравнениях (3) N ориентированными сетевыми связками. Они описываются последними строками уравнений (3). Каждая ориентированная сетевая связка представляет собой соединение переменной βout, присвоенной некоторому выходу одной образующей, с переменной βin, присвоенной некоторому входу другой образующей множества Gn.

Как видно из шестой и седьмой строк уравнений (3) две переменные j–той связки соединены отношением ρj, а суммарное число связок модульной сети равно N. Мы будем называть ρj отношением на j –той связке и говорить, что две переменные связки соединены отношением ρj. Связка, двум переменным которой присвоены в качестве значений символы λ0, называется абстрактной. Модульная сеть, все связки которой абстрактные, является абстрактной модульной сетью. На всех связках абстрактной сети отношение ρ всегда истинное.

Абстрактная модульная сеть служит общей структурой семантических сетей, получаемых путем присваивания переменным γ, δ, β вместо символов λ0 данных о реальных модульных системах. Связка, переменным которой присвоены в качестве значений данные, называется семантической связкой модульной сети. Она может быть истинной или ложной.

В уравнениях (3) отношение ρj на любой j–той семантической связке устанавливается между двумя ее переменными, которым присвоены данные, взятые из их доменов. При этом отношение ρj , соединяющее две переменные j–той семантической связки сети, может иметь одно из двух значений – истинное или ложное в зависимости от условия соединения-разъединения j–той связки.

Каким образом в теории модульных систем определяются условия соединения-разъединения сетевых связок? Чаще всего, они определяются в зависимости от значений данных, присвоенных переменным βout и βin . Если значения, присвоенные двум переменным связки, удовлетворяют условию соединения-разъединения j–той связки, то ρj имеет значение ИСТИНА и семантическая связка называется соединенной. Если же присвоенные переменным значения не удовлетворяют условию соединения-разъединения связки, то ρj имеет значение ЛОЖЬ и семантическая связка называется разъединенной. Значения данных, присваиваемых двум переменным связки, берутся из их доменов.

Условием соединения связки может быть равенство значений (данных), присвоенных двум ее переменным, а условием разъединения - неравенство этих значений. Если при этом значения, присвоенные двум переменным связки, равны, то связка называется истинной, в противном случае связка называется ложной. Равенство значений, присвоенных переменным, является наиболее часто встречающимся в практике условием соединения-разъединения семантических связок модульных сетей. Помимо этого простого условия на семантической связке сети могут быть установлены иные, порой очень сложные условия ее соединения-разъединения. Например, условие соединения-разъединения связки может зависеть от времени или других внешних факторов.

Особым является случай, когда условия соединения-разъединения нескольких связок сети зависят друг от друга. В этом случае возникает группа взаимозависимых связок, напоминающих систему взаимозависимых семафоров. Описания групп таких “семафорных” связок модульных сетей могут быть получены с помощью исчисления предикатов первого порядка. Семафорные связки сетей можно использовать для моделирования семафоров компьютерных программ.

Если все связки сети истинные, то модульная сеть называется регулярной. Если сеть регулярная и на всех ее связках выполняются условия соединения в виде равенства значений, присвоенных переменным связки, то модульная сеть называется равно-регулярной.

Эти определения показывают, что у теории модульных систем есть свой язык, имеющий много терминов. Язык теории модульных систем будет совершенствоваться.

Число всех связок сети, обозначается символом N, причем N>=n-1. Это соотношение означает, что уравнения (3) моделируют связанные ориентированные реальные модульные системы. В связанной модульной системе нет ни одного модуля, не соединенного хотя бы с одним модулем этой системы.

Модульная сеть может быть открытой или закрытой. Открытые модульные сети моделируют открытые реальные системы, закрытые модульные сети моделируют закрытые модульные системы. В закрытой модульной сети все выходы и входы образующих сети попарно соединены в связки сети, так что несоединенных (открытых) выходов и входов не остается. В открытой модульной сети только одна часть выходов и входов образующих сети соединена в связки. Другая часть выходов и входов остается несоединенной. Несоединенные (открытые) выходы и входы сети могут соединяться с несоединенными (открытыми) входами и выходами других модульных сетей. Тем самым соединение открытых модульных сетей моделирует соединение двух или большего числа открытых реальных модульных систем.

Сетевые связки описывают внутренние границы (внутренний профиль) семантической сети.

Выходы и входы семантической модульной сети, которые остаются несоединенными в связки, описывают открытую границу (внешний профиль) модульной сети. Внешний профиль семантической модульной сети служит моделью внешнего профиля некоторой реальной открытой модульной системы, например, некоторой АИС. Если модульная сеть закрытая, то она не имеет внешнего профиля. Закрытая сеть служит моделью некоторой закрытой модульной системы.

Мир модулей и модульных систем, существующих в природе и обществе, необычайно многообразен и сложен. Он сложен, поскольку реальные модули могут соединяться в модульные системы, а затем вновь разъединяться, когда изменяются внутренние или внешние условия. Таким образом, можно говорить о статике и динамике мира модульных систем. Многообразие модульных систем является следствием разнообразия условий соединения-разъединения выходов и входов модулей.

Модульные системы могут состоять из огромного числа соединенных друг с другом модулей. Мозг – это пример такой системы. Вероятно, наш мозг является самой сложной модульной системой, созданной природой.

Системы уравнений (1),(2),(3),(4) не только упрощаются путем придания параметрам p, s, m, r, ω нулевых значений, но и расширяются за счет разделения их параметрических переменных на смысловые группы. Так, например, в статье (9) неориентированные модульные сети применены в химии к моделированию процесса синтеза окиси углерода на золотой подложке, в присутствии воды. В этой работе атомы представлены не вершинами графов, как обычно принято, а в виде образующих (модулей) имеющих совмещенные входы и выходы двух типов. Первый тип совмещенных входов и выходов изображает валентности атомов, а второй - электрические силы Ван дер Вальса. В результате автору статьи удалось сложный процесс химического синтеза, описанный на многих текстовых страницах, наглядно представить рисунками несколькими несложных неориентированных модульных сетей.

Системы уравнений (1), (2), (3),(4) можно расширять за счет введения в них входов и выходов разных типов. Мы не рассматриваем здесь еще одну возможность расширения уравнений, которая реализуется путем введения в них индексов классов, разделяющих множества образующих на непересекающиеся классы. Таким образом, уравнения (1),(2),(3),(4) являются лишь небольшой частью обширного математического аппарата теории модульных систем.

Теория модульных систем представляет реальные модульные системы в виде трудных для понимания простыми пользователями математических соотношений, описывающих модульные сети. К счастью, модульные сети не только представляются математически, но также изображаются в виде простых, понятных людям схем, рисуемых на бумаге или экранах компьютеров. Благодаря этому люди могут решать свои задачи, рисуя наглядные схемы модульных систем на бумаге и экранах компьютеров ничего не зная об их математических описаниях.

На Рис.2 в качестве примера показана наглядная схема ориентированной модульной сети, состоящей из двух образующих - синтеза и анализа.


Схема изображает рассмотренный ранее мыслительный акт синтеза-анализа информации о цвете. Из уравнений (3) можно получить математическое описание этой модульной сети. Для этого надо положить i=2 и, используя уравнения (3), описать математически сначала образующую синтеза, затем образующую анализа и, наконец, сеть в целом. В схеме сети, показанной на Рис.2в всего лишь две образующие, но схемы модульных сетей могут состоять из многих образующих. Наглядные схемы образующих и модульных сетей открыли путь к применению теории модульных систем на практике.

Помимо ориентированных модульных сетей в теории модульных систем используются неориентированные модульные сети. Они служат моделями реальных модульных систем, составленных из неориентированных модулей. Неориентированные модульные сети применяются, например, для моделирования двух или большего числа АИС, обменивающихся XML-документами через компьютерную сеть.

Система уравнений, описывающих неориентированные модульные сети, в общем случае, представляет собой набор, состоящий из n параметрических векторов признаков неориентированных образующих, который дополнен N неориентированными связками между образующими:

a(gi)=a(i, γi, pi, δi, si, βi, ωi )

Di, pi, Di, si, Di, ωi

i=1,2,…, n (4)

pi = 0,1,2,…, pimax ; si = 0,1,2,…, simax ;

ωi = 0,1,2,…, ωimax

β1ρjβ2 , где ρj ИСТИНА или ЛОЖЬ , в зависимости от условий

соединения-разъединения j–той связки сети, причем j=N, а N=1,2,3, …

Неориентированные модульные сети, составленные из неориентированных образующих, служат моделями реальных модульных систем, состоящих из модулей, у которых выходы и входы объединены в пары. В теории модульных систем используются также комбинированные модульные сети, состоящие из ориентированных и неориентированных образующих. Их можно применить в качестве моделей компьютерных программ. Можно также построить модульно-графовые сети. Возможность их построения основана на математическом единстве теории модульных систем и теории графов. Модульно-графовые сети, возможно, помогут программистам проектировать компьютерные программы.

Применение теории модульных систем и наглядных схем модульных сетей к решению практических задач в различных областях знаний привело к построению парадигмы модульного мышления.

Третью часть математического аппарата теории модульных систем составят оптимизационные, вероятностные и иные методы решения задач в области физических и логических модульных систем. Эта часть теории находится в начальной стадии развития.

В уравнениях (1), (2), (3), (4) отсутствует время и они, по сути дела, описывают статику мира модулей и модульных систем, но есть еще его динамика. Математический аппарат теории модульных систем, описывающий динамику модульных систем пока еще развит слабо.

3. ПРИЧИНЫ КРИЗИСА UML

В первом разделе статьи приведены факты, свидетельствующие о кризисе языка UML. Теперь мы рассмотрим причины их появления.

Напомним, что первый кризисный факт заключался в усложнении диаграмм стандарта UML 2.0 из–за увеличения числа стрелок, изображающих различные виды отношений между объектами. В результате возникли трудности в понимании UML диаграмм пользователями.

В чем же причина этого кризисного факта? По нашему мнению, она заключаются в том, что в природе и обществе между объектами систем существует очень большое число различных видов отношений. Так как их число велико, то все они не могут быть изображены различными видами стрелок. Кроме того, введя в стандарт на UML новые виды стрелок-отношений, разработчики стандарта отошли от принципа сокрытия информации на визуальных диаграммах высокого уровня по отношению к диаграммам более низких уровней. Если для разработчиков стандартов на UML отход от принципа сокрытия информации на UML диаграммах может оказаться в какой-то мере полезным, то в отношении рядовых пользователей языка UML он крайне нежелателен.

Итак, причина первого кризисного факта языка UML заключается в невозможности отображения стрелками на его диаграммах многочисленных отношений между физическими и/или логическими объектами реального мира.

Причина второго кризисного факта (отсутствие в стандартах на UML выразительных модульных диаграмм), по нашему мнению, заключается в нечетком определении в стандарте UML 2.0 понятия интерфейс. В результате в нем появились невыразительные рисунки, изображающие интерфейсы сложных систем в виде круга и круга, охваченного полукруглой цапфой. А ведь по определению Международной организации по стандартизации интерфейс это не круг, а граница, у которой определены ее характеристики [7].

Интерфейсный круг и круг с цапфой не порождают в сознании пользователей зрительные образы границ между модульными объектами и между модульными системами, состоящими из модулей. На первый взгляд может показаться не важным, что интерфейсы на UML диаграммах представлены невыразительно. Однако это не так, поскольку понимание смысла UML фигур и диаграмм их пользователями играет первостепенную роль в успехе их применения на практике.

Предлагаемые в последнем разделе данной статьи вместо кругов рисунки связок модульных сетей выразительно и понятно для пользователей изображают внутренние и внешние границы сложных систем. В отличие от кругов связки модульных сетей не только изображаются в виде наглядных фигур, но и описываются математически. Кроме того, они обеспечивают соблюдение в UML диаграммах принципа сокрытия детальной информации. Модульные фигуры и диаграммы были построены с помощью модульных сетей. На модульных диаграммах интерфейсы представлены связками модульных сетей, из чего следует, что интерфейс – это граница между двумя сторонами и интерфейсы могут быть согласованными или несогласованными.

Третий кризисный факт языка UML заключается в несогласованности метамодели UML с другими метамоделями модели MDA. В чем его причины?

Первая причина заключается в следующем. Сегодня математической базой языка UML и его наглядных диаграмм служат, в основном, теория графов и теория реляционных баз данных. Они позволяют описывать математически и изображать наглядно, в виде семантических графов и реляционных таблиц объекты реального мира и отношения между ними. Но графы и таблицы мало пригодны для математического описания и наглядного представления границ между двумя сторонами. Подобные границы проходят, например, между информационными системами, обменивающимися данными через компьютерную сеть, или между взаимодействующими модульными блоками компьютерных программ. Границы между взаимодействующими сторонами могут быть согласованными или несогласованными. Несогласованные границы имеют, например, АИС, которые в процессе эксплуатации наращиваются для выполнения дополнительных функций. На границах наращиваемых АИС могут оказаться несогласованными правовые, информационные, программные и иные аспекты взаимодействия АИС. Несогласованные границы появляются и в компьютерных программах, когда они дополняются в процессе эксплуатации новыми функциями.

С помощью связок модульных сетей, рисуемых на UML диаграммах высоких уровней, можно скрывать согласованные и несогласованные аспекты взаимодействия между АИС или между программными модулями. Затем их можно раскрывать на диаграммах более низких уровней. Тем самым с помощью связок модульных сетей в UML диаграммах реализуется принцип сокрытия информации.

Вторая причина третьего кризисного факта UML, связана с математикой. Чтобы понять ее надо обратиться к математическим основам метамодели UML и других метамоделей модели MDA. Сегодня их математическими основами являются теория графов, теория реляционных баз данных, теория автоматов и исчисление предикатов первого порядка. Однако среди них нет теории, позволяющей описывать формально и наглядно изображать на бумаге согласованные и несогласованные внутренние и внешние границы модульных систем.

Подобная теория должна также обеспечивать на UML диаграммах высокого уровня сокрытие информации о многочисленных отношениях, возникающих на внутренних и внешних границах сложных модульных систем. Этим двум требованиям удовлетворяет теория модульных систем, поскольку она предлагает, как было показано в Разделе 2, математические описания и наглядные изображения внутренних границ модульных систем в виде связок, соединяющих выходы и входы модулей, объединенных в модульные сети. С помощью сетевых связок можно скрывать на UML диаграммах высоких уровней информацию о многих отношениях между модульными объектами. Несоединенные выходы и входы модульных сетей описывают математически и наглядно изображают внешние границы открытых модульных систем.

Таким образом, вторая причина третьего кризисного факта UML заключается в отсутствии среди математических основ метамодели UML и других метамоделей модели MDA теории, позволяющей описывать внутренние и внешние границы сложных модульных систем.

Последняя причина третьего кризисного факта UML, связана с особенностями мышления разработчиков стандартов на UML. Сегодня они мысленно представляют структуры и содержание сложных систем в виде графов и таблиц. Эти два давно известные метода мышления, которые можно рассматривать, как две парадигмы мышления людей, обеспечивают объектно-ориентированный подход к анализу и проектированию объектных систем. Но графы и таблицы не создают образных представлений о модульных системах и их внутренних и внешних границах. Для этого нужны модульно-ориентированный подход к проектированию сложных систем и модульный метод мышления о сложных системах.

Практика показала, что знания о теории модульных систем и модульных сетях и умение работать с ними порождают в умах людей модульное мышление, помогающее преодолеть кризис языка UML. Образно говоря, эти новые знания поднимают наше мышление на большую высоту, с которой видны, как объектные, так и модульные системы.

4. ТРИ ПРЕДЛОЖЕНИЯ ПО

ПРЕОДОЛЕНИЮ КРИЗИСА UML

Наше первое предложение по преодолению кризиса языка UML заключается в применении в нем новых интерфейсных фигур (пиктограмм) и модульных диаграмм (Рис.3).


Как видно из рисунка сущность предложения состоит в замене фигур, изображающих интерфейсы в UML стандартах (Рис.3а), новыми интерфейсными фигурками, наглядно показывающими границы между двумя сторонами (Рис.3б). Круг, изображающий интерфейс в стандарте UML предлагается заменить кругом, разделенным жирной линией либо ромбом, разделенным жирной линией, либо просто короткой жирной линией с двумя черточками на ее концах. Круг, охваченный цапфой, с примыкающими к ним внешними линиями, предлагается заменить кругом, разделенным жирной линией или ромбом, разделенным жирной линией или просто жирной линией с черточками (Рис.3б). Новые интерфейсные фигуры (пиктограммы), изображенные на Рис.3б, соединяются в модульные UML диаграммы, понятные широкому кругу простых пользователей, проектирующих сложные модульные систем. Один из трех возможных вариантов модульных UML диаграмм, изображающих взаимодействие двух АИС, показан на Рис.3в.

Что дадут пользователям языка UML новые интерфейсные фигуры и составленные из них модульные диаграммы, показанные на Рис.3? Они позволят им изображать с помощью модульных UML диаграмм интерфейсные границы между взаимодействующими АИС или блоками компьютерных программ в виде связок модульных сетей. Кроме того, внешние границы открытых модульных систем можно будет изображать полукругами или треугольниками.

Эта идея привела к построению метода Модульно-ориентированного анализа и проектирования сложных систем

(МОАП). Он был применен к проектированию территориально-распределенных АИС, обменивающихся информацией через компьютерные сети. Метод МОАП может быть применен также к проектированию компьютерных программ. Он позволяет изображать в виде наглядных модульных диаграмм произвольное число взаимодействующих между собой АИС или блоков компьютерных программ. Метод МОАП дополняет широко известный метод Объектно-ориентированного анализа и проектирования сложных систем. Если метод ООАП, эффективно описывает сложные объектные системы, то метод МОАП - сложные модульные системы.

Примерами сложных объектных систем являются реляционные базы данных, а примерами сложных модульных систем – системы управления базами данных (СУБД). Проектирование и стандартизацию сложных систем лучше всего начинать с описания их внутренних и внешних границ. В этой связи, можно вспомнить работы по стандартизации границ СУБД, выполненные Американским Институтом Стандартов (ANSI). Они начались с составления типовой схемы СУБД, на которой интерфейсы (границы) между блоками СУБД были изображены короткими интерфейсными линиями с наружными черточками. Они пересекали посредине линии, попарно соединяющие блоки СУБД. Предполагалось, что затем типовые характеристики интерфейсов между блоками СУБД будут описаны в соответствующем стандарте. Таким образом, типовые интерфейсы изображались Институтом на схеме СУБД аналогично жирным линиям с черточками, показанным на Рис.3в. С точки зрения теории модульных систем схема типовой СУБД была изображена Институтом в виде модульной сети, а интерфейсы, в виде сетевых связок. Однако специалисты Института этого не знали, так как в то время не было теории модульных систем.

Метод МОАП и связки модульных сетей, нарисованные на UML диаграммах, скрывают информацию о многочисленных аспектах взаимодействия АИС, правовых, информационных, программных и иных. Тем самым реализуется принцип сокрытия информации на UML диаграммах высокого уровня. Затем аспекты взаимодействия и их детальные характеристики раскрываются на диаграммах более низкого уровня в виде таблиц протоколов взаимодействия АИС. Метод МОАП был применен к совершенствованию АИС Консолидированного бюджета Российской Федерации, функционирующего на основе компьютерной сети [2].

Метод МОАП отдельно или в сочетании с методом ООАП можно применить к анализу и проектированию структур и содержания компьютерных программ.

Если интерфейсные фигуры и модульные диаграммы включить в стандарты на язык UML, то это позволит устранить две первые причины его кризиса, указанные в Разделе 3.

Второе предложение по преодолению кризиса языка UML имеет математический характер. Оно заключается в применении формального аппарата теории модульных систем к решению проблемы согласования метамодели UML с метамоделями CWM, MOF, XMI/XML, входящими в состав модели MDA.

Исследования системы уравнений (3) показали, что существует математическое единство теорий модульных систем, графов и реляционных баз данных. Мы не приводим здесь его доказательства из-за громоздкости. Заметим, только, что оно основано на упрощении параметрической системы уравнений (3) путем приравнивания нулю сначала ее параметров mi , ri, si, а затем параметров mi , ri, pi.

Доказательство существования математического единства теорий модульных систем, графов и реляционных баз данных приводит к созданию единой математической платформы метамоделей модели MDA. С ее помощью устраняется несогласованность языка UML с другими метамоделями модели MDA и, как следствие, устраняется третья причина кризиса языка UML.

Математическое единство теорий модульных систем и графов создает предпосылки для построения модульно-графовых сетей и их применения в диаграммах языка UML. Модульно-графовые сети могут быть использованы для решения актуальных задач науки о компьютерах и других областей знаний.

Третье предложение по преодолению кризиса языка UML заключается в распространении среди пользователей UML диаграмм и специалистов, разрабатывающих UML стандарты, знаний о теории модульных систем, модульных сетях и модульном мышлении. Предложение может быть реализовано распространением этих знаний в интересах всего мирового сообщества через Интернет и печатные издания.

ЗАКЛЮЧЕНИЕ

С помощью теории модульных систем в статье выполнены рассуждения о кризисе языка UML, завершившиеся предложениями по его преодолению.

Теория модульных систем и язык UML находятся в начальной стадии развития и многие их проблемы пока еще не решены. Укажем некоторые из них.

Язык UML, занимает центральное место среди метамоделей MDA, поскольку он тесно связан с мышлением. В этой связи возникает проблема определения взаимосвязей UML с методами мышления людей.

Перспективной является проблема применения модульных сетей к моделированию структур и содержания компьютерных программ и описанию характеристик границ между программными блоками. Она делится на ряд вторичных проблем. Одна из них заключается в следующем. Сегодня наиболее интересной задачей в области Анализа Изменений Программного Обеспечения (Software Change Impact Analysis, SCIA) является визуализация софтвера с целью определения типовых шаблонов, описывающих модульные блоки компьютерных программ. Предложенные в статье модульные диаграммы языка UML могут оказать существенную помощь в создании типовых программных шаблонов.

Еще одна, увлекательная проблема заключается в применении формального аппарата теории модульных систем и наглядных схем модульных сетей к исследованию нейронных сетей мозга, нейрокомпьютеров и гипотезы об аналогии Всемирной Паутины (WWW) и нейронных сетей головного мозга.

В заключение особо отметим, что главный эффект от теории модульных систем, модульных сетей и их использования на практике, состоит в создании парадигмы модульного мышления, коренным образом изменяющей мышление людей о структурах и содержании сложных систем, обладающих модульными свойствами.

Литература

1. Robert B. France, Sodipto Ghosh, Trung Dinh-Trong. Model-Driven Development Using UML 2.0: Promises and Pitfalls, Computer (IEEE Computer Society. V.38, No2, February 2005)

2. Шуткин Л.В. Парадигма модульного мышления в компьютерной науке и практике. // М., НТИ, Сер.2, 2004, No.10, с 1-12.

3. Шуткин Л.В. Парадигма модульного мышления. Журнал Химия и жизнь N 3, 2006, с 38-43 (Вы найдете статью в Интернете, если в поисковом окне сайта www.google.ru напишите ключевые слова “модульное мышление”)

4. Шуткин Л.В. Анализ теории модульных систем с помощью метафоры Холтона.

// М., НТИ, Сер.2, 2007, No.10, с 1-12.

5. Grenander U. Lectures in Pattern Theory, Springer-Werlag, New York, Heidenberg Berlin, vol.I (1976) Рattern Synthesis, vol.II (1978) Pattern Analysis, vol.III (1981) Regular Structures. Рус. пер.: У. Гренандер. Лекции по теории образов. Под ред. Ю. Журавлева. – М., Мир, 1979-1983.

6. Grenander U. General Pattern Theory, Oxford University Press, 1993, 904 pp.

7. Стандарт ISO/IEC WD1 2382-01, (Версия 1998-06)

8. Haykin S. Neural networks. A Comprehensive Foundation (Second Edition), Prentice Hall, inc. 1998.

9. Комаров С.М. Модули Ван-дер-Ваальса. Журнал Химия и жизнь N 3, 2006, c. 43.