Унифицированная метамодель объектной системы

Vol. 10. No. 4 (58). 2015

П. П. Олейник, канд. техн. наук, системный архитектор программного обеспечения ОАО «Астон», доцент Шахтинского института (филиала) Южно-Российского государственного политехнического

университета им. М. И. Платова, г. Ростов-на-Дону, xsl@list.ru

Унифицированная метамодель объектной системы

В статье описана унифицированная метамодель объектной системы, разработанная автором и использованная им при разработке крупных программных комплексов в течение последних нескольких лет . Работа является развитием материала, кратко представленного в статье «Концепция создания обслуживающей корпоративной информационной системы экономического производственно-энергетического кластера», вышедшей в журнале «Прикладная информатика» в № 6 за 2014 г Актуальность задачи обоснована в кратком обзоре имеющихся работ, приведенном в начале статьи

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

Ключевые слова: 11МЦ объектно-ориентированное проектирование, базы данных, метамодель объектной системы, метаклассы .

введение

В настоящее время все чаще используется предметно-ориентированное проектирование приложений баз данных. В статье «Концепция создания обслуживающей корпоративной информационной системы экономического производственно-энергетического кластера», вышедшей в журнале «Прикладная информатика» в № 6 за 2014 г., автор привел практический пример применения данного подхода при разработке программного продукта. При этом сама модель предметной области описывалась в понятиях унифицированной метамодели объектной системы. Данная статья посвящена описанию структуры этой метамодели и является логическим продолжением и расширением работы.

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

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

обзор имеющихся работ

Идея проектирования прикладных программных продуктов на основе метамодели не нова, так как метамодели используются повсеместно. В работах [1-3] представлена метамодель объектных баз данных, соответствующих стандарту ODMG. В стандарте SQL:2003 также имеется метамодель, описывающая объектные расширения языка SQL [1; 3; 4]. При проектировании совре-

Том 10. № 4 (58). 2015

менных приложений чаще всего используют графический язык моделирования UML, стандарт которого регламентирует собственную метамодель, с которой можно ознакомиться в работах [3; 5].

Многие изображенные метамодели имеют определенные недостатки, и каждый автор пытался решить эту проблему собственными силами. Так, в работе [3] автор разработал собственную метамодель, которую применяет для реализации объектной СУБД.

Метамодель не существует независимо от остальной части приложения, а служит определенной цели. Например, в работах [6; 7] метамодель используется для облегчения процесса предметно-ориентированного проектирования.

Метамодели используются и при трансформации моделей. Так, в работах [8; 9] описаны принципы метамодельных трансформаций из метамодели языка UML в модели разработанных авторами языков.

В работах [10; 11] описаны механизмы оценки качества программного обеспечения на основе метамоделей с введением различных метрик. Работы [12; 13] посвящены вопросам расширения существующих метамоделей путем добавления новых элементов. В работе [1] автор предлагает собственную иерархию атомарных литеральных типов, которая может быть использована в любой объектной системе и построена благодаря опыту автора.

Унифицированная метамодель объектной системы

В данном разделе рассмотрим метамодель, используемую в унифицированной среде быстрой разработки корпоративных информационных систем SharpArchitect RAD Studio [14]. В работах [6; 7; 15-18] приведены первые версии диаграммы классов ме-тамодели и подробно описано назначение некоторых классов.

Перед разработкой отдельных элементов в виде иерархий классов были сформулированы критерии оптимальности, которым

должна удовлетворять готовая реализация. Заинтересованный специалист сможет найти эти критерии в статье «Концепция создания обслуживающей корпоративной информационной системы экономического производственно-энергетического кластера», вышедшей в журнале «Прикладная информатика» в № 6 за 2014 г. [19]. Также там приведена полная иерархия классов (рис. 1).

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

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

Корнем иерархии является абстрактный метакласс Class, имеющий два унаследованных: 1) InheritableClass — используется для представления метаклассов, которые могут быть наследуемыми, т. е. поддерживают наследование; 2) NotlnheritableClass — применяется для представления метаклассов, которые не могут быть унаследованы. Метакласс Enum позволяет представить перечисление или множество значений одного простого типа.

Абстрактный базовый метакласс Custom-AttributedClass используется для представления метаклассов, которые имеют атрибуты. Метакласс DomainClass применяется для представления классов предметной области. Экземпляры класса предметной области позволяют описывать классы сущностей (например, Клиент, Продукт, Продажа), объекты которых (например, Иванов, Хлеб) сохраняются в БД. Для упрощения описания будем называть экземпляры класса предметной области просто классы предметной области (если не предполагается иное).

Абстрактный метакласс Computational-Class<TBaseClass> является базовым для

v^1

Vol. 10. No. 4 (58). 2015

Рис. 1. Унифицированная метамодель объектной системы [19] Fig. 1. Unified object system metamodel

Том 10. № 4 (58). 2015

Рис. 2. Фрагмент унифицированной метамодели объектной системы Fig. 2. Fragment of a unified object system metamodel

всех вычисляемых метаклассов, т. е. тех классов, экземпляры которых не сохраняются в БД, а вычисляются в момент выполнения программы (транзиентные). Например, оборотно-сальдовая ведомость не хранится непосредственно в БД, а вычисляется на основе инвентаризации, прихода и расхода (которые являются классами предметной области и представляются экземплярами метакласса DomainClass).

Метакласс MethodParameterClass используется для представления класса-параметра методов. В SharpArchitect RAD Studio реализуется шаблон проектирования (паттерн), называемый Объект-параметр (Parameter object), суть которого в передаче множества параметров в метод в виде единого объекта (экземпляра метакласса).

Абстрактный метакласс CodeComputatio nalClass<TBaseClass> является базовым для вычисляемых метаклассов, реализуемых

Рис. 3. Основные метаклассы, используемые

для представления классов сущностей, присутствующих в модели предметной области Fig. 3. Basic metaclasses used to represent the entity classes of the domain model

V^3

Vol. 10. No. 4 (58). 2015

с помощью программного кода на языке C#. QueryClass представляет метакласс запроса, позволяющий формировать результат на основе запросов к БД (чаще всего на основе Linq-запросов к объектам, но возможна и прямая посылка SQL-строк). HelperClass используется для представления вспомогательных метаклассов, которые могут как отображаться в интерфейсе пользователя, так и использоваться для внутренних целей при реализации бизнес-логики.

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

Корневым абстрактным метаклассом, представляющим атрибут, является Ab-stractAttribute. Унаследованные от VirtualAt-tribute классы применяются для представления атрибутов, которые не были созданы разработчиком прикладной предметной области, а были представлены системой. Они необходимы для понимания метамоде-ли и упрощения процесса разработки программного обеспечения. SystemAttribute позволяет описать атрибуты, которые являются системными и присутствуют в языке C#. Класс GeneratedAttribute применяется для представления атрибутов, которые автоматически генерируются системой. Например, при наследовании от базового древовидного класса автоматически добавляется атрибут Node, позволяющий получить дочерние узлы и таким образом образовать иерархическую структуру.

Для представления атрибутов, значения которых может задавать пользователь, используется абстрактный базовый метакласс ConcreteAttribute. Так как система реализуется на языке C#, то при сохранении значений в базе данных используются типы данных этого языка. Для описания этого момента добавлен параметрированный метакласс TypedAttribute<TDefaultValue>. TypeAttribute используется для представления свойств, значения которых могут сохранять ссылку на тип данных языка C#.

Метакласс ClassedValueAttribute<TValueC lass, TDefaultValue> используется для пред-

ставления атрибутов, значениями которых выступают экземпляры различных экземпляров классов сущностей, присутствующих в предметной области. Метакласс NotInheritableClassedValueAttribute<TValue-Class, TDefaultValue> сохраняет экземпляры ненаследуемых классов. Например, EnumAttribute, наследуемый от описанного, используется для сохранения значений перечислений/множеств.

Абстрактный метакласс MultiplicityClassed ValueAttribute<TValueClass, TDefaultValue> используется для представления значений атрибутов, которые могут хранить не только атомарные значения, но и коллекцию значений. Метакласс DesignTimeClassed-ValueAttribute<TValueClass, TDefaultValue> позволяет сохранять ссылку на экземпляры классов времени разработки. Так, BuiltlnClassAttribute используется для хранения объектов классов реализации мета-модели в SharpArchitect RAD Studio. В свою очередь, MetaModelClassAttribute позволяет сохранить информацию о классе мета-модели прикладной предметной области. Оба описанных метакласса позволяют манипулировать метамоделью в момент выполнения приложения. Подобный подход используется во многих современных языках программирования, поддерживающих обширную метаинформацию. Например, в C# имеется технология отражения (reflection), позволяющая реализовать подобные вещи.

Метакласс CustomAttributedClassedValue-Attribute<TValueClass, TDefaultValue> используется для сохранения экземпляров классов, имеющих атрибуты. В системе имеются два наследника: 1) DomainClassAttribute позволяет сохранить ссылку на экземпляр сущности предметной области описанного в метамоде-ли с помощью экземпляра метакласса предметной области. Атрибут такого типа применяется для организации отношений ассоциации и выступает для представления связей при объектном проектировании предметной области. Метакласс HelperClassAttribute позволяет сохранять ссылки на экземпляры вспомогательных классов.

74_у

Том 10. № 4 (58). 2015

Рис. 4. Основные метаклассы, используемые для представления атрибутов классов Fig. 4. Basic metaclasses used to represent the attributes of classes

-ч ПРИКЛАДНАЯ ИНФОРМАТИКА / JOURNAL OF APPLIED INFORMATICS

Vol. 10. No. 4 (58). 2015 '

Метакласс SimpleTypedAttribute<TDefault-Value> является абстрактным и выступает корневым для всех атрибутов, позволяющих сохранить атомарное литеральное значение. Вся эта иерархия является результатом многолетней работы, предпосылки которой и промежуточные решения были описаны в работе [1]. Метакласс ColorAttribute используется для сохранения цвета в формате RGB. LogicalAttribute применяется для сохранения логических значений (true и false). Метакласс DateTimeAttribute используется для сохранения дата-временных значений. Если необходимо представить только время, то следует использовать TimeAttribute. Для представления денежных атрибутов в иерархии имеется метакласс MoneyAttribute. В свою очередь, FileDataAttribute применяется для сохранения файлов различных форматов. Для сохранения объектов любого типа удобно использовать атрибут типа ObjectAttribute. Этот подход аналогичен использованию типа object в языке C#. Атрибуты типа GeographyAttribute и GeometryAttribute используются для сохранения географических координат и геометрических объектов соответственно. В свою очередь, для представления символьных строк и отдельных символов используются метаклассы StringAttribute и SymbolAttribute. Если же необходимо сохранять текст неограниченной длины и при этом с форматированием, то необходимо использовать TextAttribute. Метакласс HyperLinkAttribute используется для представления гиперссылок на различные ресурсы. ImageAttribute используется для хранения графических изображений (картинок, фото и т. п.). Абстрактный параметрированный метакласс TypedValueRangedAttribute<TDefault-Value, TValueRange> используется для представления атомарных значений, которые могут быть в определенном диапазоне значений, заданном соответствующим перечислением (параметр TValueRange). Унаследованный метакласс IntAttribute может быть использован для хранения целочисленных

значений, а DecimalAttribute — для представления дробных значений.

Для реализации поведения в SharpArchi-tect RAD Studio используются различные синтаксические конструкции и метаклассы. Наиболее часто используемыми являются методы классов, метаклассы которых представлены на рис. 5.

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

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

Иерархия довольно простая. Корневым абстрактным метаклассом, представляющим событие, является Event. AfterChange-dAttributeValueEvent используется для собы-

Method

Abstract Class

-«MetjModelltam

CodeMethod ¥

Abstract Class

Method -

HelperCodcMethad

Cfass

CodeMethod

-1- г-L-

VisualCodeMethod V

Class

-^CodeMelhod

Рис. 5. Основные метаклассы, используемые для представления методов классов Fig. 5. Basic metaclasses used to represent the class methods

1LJ

ПРИКЛАДНАЯ ИНФОРМАТИКА / JOURNAL OF APPLIED INFORMATICS /-

' Том 10. № 4 (58). 2015

Рис. 6. Основные метаклассы, используемые для представления событий Fig. 6. Basic metaclasses used to represent events

тий изменения значений атрибутов и имеет в своем составе не только название измененного атрибута, но и возможность получения значения до и после изменения. Событие AfterDeletedEvent вызывается после удаления объекта. Отметим, что физически объект не удаляется из БД, а лишь помечается как удаленный. Это связано с возможным наличием связей с другими объектами и необходимостью получения возможности восстановления случайно удаленного объекта. Именно после установки этой

метки вызывается данное событие. Метакласс AfterLoadedEvent позволяет создать обработчик события, возникающего после загрузки объекта из БД. Метакласс AfterSavedEvent описывает событие, возникающее после сохранения объекта в БД. Метакласс BeforeDeletingEvent используется для представления события, возникающего перед удалением объекта. Если необходимо выполнить определенные действия перед сохранением, то необходимо создать экземпляр метакласса BeforeSavingEvent. Программный код инициализации нового объекта выполняется в объекте типа InitializationEvent.

В настоящее время неотъемлемым этапом разработки любой крупной системы является написание валидационных правил, которые проверяются в определенный момент времени (чаще всего при сохранении объекта) и подтверждают целостность и непротиворечивость данных. В работах [16; 19] были описаны критерии оптимальности, выделенные при проектировании иерархии. Иерархия валидационных правил представлена на рис. 7. Корневым абстрактным метаклассом является ValidationRule. Непосредственно от него унаследован ClassCheckingValidationRule, который по-

Рис. 7. Основные метаклассы, используемые для представления валидационных правил Fig. 7. Basic metaclasses used to represent the validation rules

Vi!

Vol. 10. No. 4 (58). 2015

зволяет описывать правила проверки условий на уровне класса (так как реализует интерфейс IClassLevelValidationRule). Метакласс InvertaЫeClassCheckingValidatюn-Rule позволяет описывать инвертируемые условия, т. е. в отличие от обычных валидационных правил, требующих удовлетворения критерию, инвертирующие правила позволяют требовать не удовлетворения условию (т. е. инвертировать результат). Реализованный метакласс CriteriaCheckingValidationRule позволяет задать логическое проверяемое условие в виде строки и указать набор атрибутов, которые нарушают это условие. ConcreteAttri-butesValidationRule описывает валида-ционные правила, в которых участвуют определенные атрибуты класса, унаследованные от ConcreteAttribute. Производный метакласс RequiredAttributesValidationRule позволяет указать, какие атрибуты класса являются обязательными и не могут содержать пустых значений. Производные от абстрактного параметрированного метакласса TypedAttributesValidationRule<TAttribute> позволяют описать валидационные правила, действие которых распространяется только на атрибуты определенного типа (типа, указанного в ТАйпЬ^е). Метакласс Regular-ExpressionAttributesValidationRule используется для указания регулярного выражения, которому должны соответствовать значения строковых атрибутов ^ппдАНпЬ^е).

Абстрактный параметрированный метакласс TypedValueRangedAttributesValidation-Rule<TValueRangedAttribute, TValueType> используется для создания правил проверки вхождения значения в определенный диапазон. Его наследники RangeDateTimeAttri-butesValidationRule, RangeDecimalAttributes-ValidationRule, RangeTimeAttributesValidation-Rule, RangeIntAttributesValidationRule используются для указания диапазона дата-временных, дробных, временных и целочисленных атрибутов соответственно.

UniqueCombinationAttributesValidationRule является базовым абстрактным метаклассом, позволяющим указать уникальность

комбинации значений атрибутов. Его наследник UniqueCombinationSimpleAttributes-ValidationRule применяется при задании уникальности комбинации простых атомарных значений. Другой наследник UniqueCombi-nationRunTimeClassedCollectionAttributes-ValidationRule<TClassValueAttribute> используется для атрибутов, которые представляют собой коллекцию значений. Он позволяет определить уникальность атрибутов для каждого элемента коллекции. В настоящий момент имеется лишь один унаследованный реализованный метакласс UniqueCombinati-onDomainClassCollectionAttributesValidation-Rule, который позволяет задать уникальную комбинацию для значений атрибутов сущности предметной области.

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

Для этого предусмотрена иерархия метаклассов визуализационных правил, представленная на рис. 8. Корневым базовым метаклассом является VisualizationRule. ActionsVisualizationRule позволяет описать визуализационные правила для различных действий, таких как кнопки Сохранить, Создать новый, Редактировать и т. п. Метакласс AttributesVisualizationRule позволяет описать визуализационные правила для атрибутов класса. Экземпляры MethodsVisualizationRule позволяют опреде-

Рис. 8. Основные метаклассы, используемые для представления визуализационных правил Fig. 8. Basic metaclasses used to represent the visualization rules

T^j

Том 10. № 4 (58). 2015

лить правила для визуализационных методов (экемпляры VisualCodeMethod).

Как видно, SharpArchitect RAD Studio является зрелым программным продуктом, предназначенным для разработки объектно-ориентированных приложений баз данных, и предоставляет унифицированную метамо-дель, позволяющую описать отдельные как статические, так и динамические элементы приложений. Описанная среда разработки была протестирована на различных проектах, описанных в [17; 19].

выводы и дальнейшие исследования

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

Список литературы

1. Oleynik P. P. Implementation of the Hierarchy of Atomic Literal Types in an Object System Based of RDBMS // Programming and Computer Software. 2009. Vol. 35. No. 4. Р. 235-240.

2. CattellR. G, Barry D. K. The Object Data Standard: ODMG 3.0, Morgan Kaufmann Publishers, 2000. — 288 p.

3. Habela P. Metamodel for Object-Oriented Database Management Systems. Ph. D. Thesis // Submitted to the Scientific Council of the Institute of Computer Science, Polish Academy of Sciences, 2002. — 142 p. URL: http://www.sbql.pl/phds/ PhD%20Piotr%20Habela. pdf

4. Information technology — Database languages — SQL. Part 2: Foundation (SQL/Foundation). URL: http://wiscorp.com/sql200n. zip

5. Iyengar S., Brodsky S. Metadata Integration using UML, MOF and XMI, November 2000. — 88 p. URL: http://www.omg.org/news/meetings/work-

shops/presentations/umLpresentations/Tutoria%o20 4-1%20-%20UMLJ_ecture4_R2.pdf

6. Oleynik P. P. Domain-driven design the database structure in terms of metamodel of object system // Proceedings of 11th IEEE East-West Design & Test Symposium (EWDTS'2013), Institute of Electrical and Electronics Engineers (IEEE), Rostov-on-Don, Russia, September 27-30. 2013. Р. 469-472.

7. Oleynik P. P. Using metamodel of object system for domain-driven design the database structure // Proceedings of 12th IEEE East-West Design & Test Symposium (EWDTS'2014). Kiev, Ukraine, September 26-29. 2014. DOI: 10.1109/EWDTS. 2014.7027052.

8. Soon-Kyeong K., Carrington D., Duke R. A metamodel-based transformation between UML and Object-Z // Human-Centric Computing Languages and Environments. Proceedings IEEE Symposia. 2001. Р. 112-119.

9. Rahim L. A. Mapping from OCL/UML metamodel to PVS metamodel // Information Technology, ITSim 2008. International Symposium. 2008. Р. 1-8.

10. McQuillan J. A., Power J. F. A Metamodel for the Measurement of Object-Oriented Systems: An Analysis using Alloy // Software Testing, Verification, and Validation, 2008. 1st International Conference, 2008. Р. 288-297.

11. Debnath N., Riesco D., Montejano G., Uzal R., Baigorria L., Dasso A, Funes A. A technique based on the OMG metamodel and OCL for the definition of object-oriented metrics applied to UML models // Computer Systems and Applications, 2005. The 3rd ACS/IEEE International Conference, 2005.

12. Debnath N., Riesco D., Montejano G., GrumelliA., Maccio A., Martellotto P. Definition of a new kind of UML stereotype based on OMG metamodel // Computer Systems and Applications, 2003. Book of Abstracts. ACS/IEEE International Conference, 14-18 July 2003.

13. Misbhauddin M., Alshayeb M. Extending the UML Metamodel for Sequence Diagram to Enhance Model Traceability // Software Engineering Advances (ICSEA), 2010. Fifth International Conference, 22-27 Aug. 2010. Р. 129-134.

14. Олейник П. П. Программа для ЭВМ «Унифицированная среда быстрой разработки корпоративных информационных систем SharpArchitect RAD Studio». Свидетельство о государствен-

-ч ПРИКЛАДНАЯ ИНФОРМАТИКА / JOURNAL OF APPLIED INFORMATICS

Vol. 10. No. 4 (58). 2015 '

ной регистрации № 2013618212 от 04 сентября 2013 г.

15. Олейник П. П. Иерархия классов метамодели объектной системы // Объектные системы — 2012: материалы VI Международной научно-практической конференции (Ростов-на-Дону, 10-12 мая 2012 г.) / под общ. ред. П. П. Олей-ника. Ростов на/Д: ШИ ЮРГТУ (НПИ), 2012. С. 37-40. URL: http://objectsystems.ru/files/2012/ Object_Systems_2012_Proceedings.pdf

16. Олейник П. П. Иерархия классов представления валидационных правил объектной системы // Объектные системы — 2013: материалы VII Международной научно-практической конференции (Ростов-на-Дону, 10-12 мая 2013 г.) / под общ. ред. П. П. Олейника. Ростов на/Д: ШИ (ф) ЮРГТУ (НПИ), 2013. С. 14-17. URL: http:// objectsystems.ru/files/2013/Object_Systems_2013_ Proceedings.pdf

17. Олейник П. П. Элементы среды разработки программных комплексов на основе организации метамодели объектной системы // Бизнес-информатика. 2013. № 4 (26). С. 69-76. URL: http://bijournal. hse.ru/data/2014/01/16/1326593606/1BI%20 4(26)%202013.pdf

18. Олейник П. П. Предметно-ориентированное проектирование структуры базы данных в понятиях метамодели объектной системы // Объектные системы — 2014: материалы VIII Международной научно-практической конференции (Ростов-на-Дону, 10-12 мая 2014 г.) / под общ. ред. П. П. Олейника. Ростов на/Д: ШИ (ф) ЮРГПУ (НПИ) им. М. И. Платова, 2014. С. 41-46. URL: http://objectsystems.ru/files/2014/Object_ Systems_2014_Proceedings.pdf

19. Олейник П. П., Кураков Ю. И. Концепция создания обслуживающей корпоративной информационной системы экономического производственно-энергетического кластера // Прикладная информатика. 2014. № 6. С. 5-23.

References

1. Oleynik P. P. Implementation of the Hierarchy of Atomic Literal Types in an Object System Based of RDBMS. Programming and Computer Software, 2009, vol. 35, no. 4, pp. 235-240.

2. Cattell R. G., Barry D. K. The Object Data Standard: ODMG 3.0. Morgan Kaufmann Publ., 2000. 288p.

3. Habela P. Metamodel for Object-Oriented Database Management Systems. Ph. D. Thesis. Submitted to the Scientific Council of the Institute of Computer Science, Polish Academy of Sciences, 2002. 142p. Available at: http://www.sbql.pl/phds/ PhD%20Piotr%20Habela. pdf

4. Information technology — Database languages — SQL. Part 2: Foundation (SQL/Foundation). Available at: http://wiscorp.com/sql200n. zip

5. Iyengar S., Brodsky S. Metadata Integration using UML, MOF and XMI. November 2000. 88 p. Available at: http://www.omg.org/news/meetings/work-shops/presentations/uml_presentations/Tutorial%20 4-1%20-%20UML_Lecture4_R2.pdf

6. Oleynik P. P. Domain-driven design the database structure in terms of metamodel of object system. Proceedings of 11th IEEE East-West Design & Test Symposium (EWDTS'2013). Institute of Electrical and Electronics Engineers (IEEE), Rostov-on-Don, Russia, September 27-30, 2013, pp. 469-472.

7. Oleynik P. P. Using metamodel of object system for domain-driven design the database structure. Proceedings of 12th IEEE East-West Design & Test Symposium (EWDTS'2014), Kiev, Ukraine, September 26-29, 2014. DOI: 10.1109/EWDTS. 2014.7027052

8. Soon-Kyeong K., Carrington D., Duke R. A metamodel-based transformation between UML and Object-Z. Human-Centric Computing Languages and Environments. Proceedings IEEE Symposia, 2001, pp. 112-119.

9. Rahim L. A. Mapping from OCL/UML metamodel to PVS metamodel. Information Technology, ITSim 2008. International Symposium, 2008, pp. 1-8.

10. McQuillan J. A., Power J. F. A Metamodel for the Measurement of Object-Oriented Systems: An Analysis using Alloy. Software Testing, Verification, and Validation, 2008. 1st International Conference, 2008, pp. 288-297.

11. Debnath N., Riesco D., Montejano G., Uzal R., Baigorria L., Dasso A., Funes A. A technique based on the OMG metamodel and OCL for the definition of object-oriented metrics applied to UML models. Computer Systems and Applications, 2005. The 3rd ACS/IEEE International Conference, 2005.

12. Debnath N., Riesco D., Montejano G., Grumelli A., Maccio A., Martellotto P. Definition of a new kind of UML stereotype based on OMG metamodel. Computer Systems and Applications, 2003. Book

80

Том 10. № 4 (58). 2015

of Abstracts. ACS/IEEE International Conference, 14-18 July 2003.

13. Misbhauddin M., Alshayeb M. Extending the UML Metamodel for Sequence Diagram to Enhance Model Traceability. Software Engineering Advances (ICSEA), 2010 Fifth International Conference, 22-27 Aug. 2010, pp. 129-134.

14. Oleynik P. P. Computer program «The Unified Environment of Rapid Development of Corporate Information Systems SharpArchitect RAD Studio». The certificate on the state registration № 2013618212. 04 september 2013 (in Russian).

15. Oleynik P. P. Class Hierarchy of Object System Metamodel. Object Systems — 2012: Proceedings of the Sixth International Theoretical and Practical Conference. Rostov-on-Don, Russia, 10-12 May, 2012. Edited by Pavel P. Oleynik, pp 37-40 (in Russian). Available at: http://objectsystems.ru/ files/2012/Object_Systems_2012_Proceedings. pdf

16. Oleynik P. P. Class Hierarchy for Presentation Validation Rules of Object System. Object Systems — 2013: Proceedings of the Seventh International Theoretical and Practical Conference (Rostov-on-Don, 10- 12 May, 2013) / Edited by

Pavel P. Oleynik, Russia, Rostov-on-Don: SI (b) SRSTU (NPI), 2013. pp. 14-17 (in Russian). Available at: http://objectsystems.ru/files/2013/Object_ Systems_2013_Proceedings. pdf

17. Oleynik P. P. The Elements of Development Environment for Information Systems Based on Metamodel of Object System. Business Informatics, 2013, no. 4 (26), pp. 69-76 (in Russian). Available at: http://bijournal.hse.ru/data/2014/01/16/132 6593606/1BI%204 (26) %202013.pdf

18. Oleynik P. P. Domain-driven design of the database structure in terms of object system metamodel. Object Systems — 2014: Proceedings of the Eighth International Theoretical and Practical Conference (Rostov-on-Don, 10-12 May, 2014), edited by Pavel P. Oleynik, Russia, Rostov-on Don: SI (b) SR-SPU (NPI), 2014, pp. 41-46 (in Russian). Available at: http://objectsystems.ru/files/2014/Object_Sys-tems_2014_Proceedings. pdf

19. Oleynik P. P., Kurakov Yu. I. The Concept Creation Service Corporate Information Systems of Economic Industrial Energy Cluster. Prikladnaya informati-ka — Journal of Applied Informatics, 2014, vol. 6, pp. 5-23 (in Russian).

P. Oleynik, Aston OJSC, Shakhty Institute (branch) of Platov South Russian State Polytechnic University (NPI), Rostov-on-Don, Russia, xsl@list.ru

Unified object system metamodel

The article presents a unified object system metamodel, developed by the author and used them in the development of large software systems over the past few years. This paper is the development of the material, briefly presented in the article «The Concept Creation Service Corporate Information Systems of Economic Industrial Energy Cluster», published in the Applied Informatics journal in № 6 from 2014. The urgency of the problem is reasonable overview of existing work presented in this article. The article presents the latest to date version of the metamodel and describes the main constituent elements. Attention is paid to the hierarchy of metaclasses used in the simulation application domain entities. Also considered metaclass hierarchy representing the different types of atomic and class attributes. Attention is given to the description and dynamic (behavioral) component by implementing the methods and events classes. Finally, conclusions are made about the future development work. Behavioral characteristics are implemented through various validation rules. The article deals with the decisions relating to the management of visibility and accessibility of the individual elements of graphic controls. All elements of the metamodel was tested under a variety of complex database applications. Further development of this paper is the development of custom UML-profile that allows to simplify the process of designing the program and database structure. This profile can be used in teaching students the design and implementation of software. Keywords: UML, object-oriented design, database, object system metamodel, metaclasses.

About author: P. Oleynik, PhD in Technique, Associate Professor, System Architect Software For citation: Oleynik P. Unified object system metamodel. Prikladnaya Informatika — Journal of Applied Informatics, 2015, vol. 10, no. 4 (58), pp. 70-81 (in Russian).

v_81