15. Martello S., Pisinger D., Vigo D. The three-dimensional bin packing problem // Operations Research. 2000. Vol. 48. N 2. P. 256-267.
УДК 004.4'236
РЕАЛИЗАЦИЯ ПРИНЦИПОВ НАСЛЕДОВАНИЯ И АГРЕГАЦИИ В МУОРБД
Микляев Иван Александрович, к.ф-м.н., доцент кафедры информационных систем и технологий, Филиал Северного (Арктического) федерального университета имени М. В. Ломоносова в г. Северодвинске Институт судостроения и морской арктической техники (Севмашвтуз), Россия,
Северодвинск, ivanmia [email protected] Жирнова Марина Анатольевна, студент, Филиал Северного (Арктического) федерального университета имени М. В. Ломоносова в г.Северодвинске Институт судостроения и морской арктической техники (Севмашвтуз), Россия, Северодвинск, таг) па2Ы [email protected]
Введение
Теория ООП выделяет три основных отношения между классами:
1. Ассоциация.
2. Агрегация и композиция.
3. Обобщение/Расширение (наследование).
Рис. 1 - Реализация принципов наследования и агрегации в ORM системе ADO.NET Entity Framework
a) Физическая модель фрагмента реляционной БД документооборота; b) Диаграмма классов Фрагмент кода реализации иерархии классов документооборота в ORM-системе
Наследование — механизм языка, позволяющий описать новый класс на основе уже существующего (родительского, базового) класса или интерфейса. При описании потомка могут быть добавлены собственные методы и свойства, а также можно пользоваться родительскими методами и свойствами [ 1].
В объектно-ориентированном программировании под агрегированием подразумевают методику создания нового класса из уже существующих классов путём включения, называемого также делегированием. Об агрегировании также часто говорят как об «отношении принадлежности» по принципу «у машины есть корпус, колёса и двигатель»[2].
В качестве примера использования объектного подхода в БД можно привести ORM-системы. ORM (англ. Object-Relational Mapping, рус. объектно-реляционное отображение) — технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных»[3].
Для связывания реляционной базы данных с объектным представлением в языках программирования существуют разные фреймворки и библиотеки. Одним из самых популярных фреймворков, применяемых в C#, является ADO.NET Entity Framework. Данный фреймворк позволяет автоматически создать классы из имеющейся реляционной БД, а также предоставляет управление данными по средствам LINQ запросов.
Следующий пример иллюстрирует применение ADO.NET Entity Framework на реляционных базах данных. На рисунке 1a представлена физическая модель сущностей «Чертеж», «Документ», «Отдел».
В ORM-системе ADO.NET Entity Framework физическая схема данного фрагмента реляционной базы данных переносится в классы С# с соответствующими отношениями наследования (рисунок 1 b).
ADO.NET Entity Framework выглядит следующим образом:
public partial class otdel
{
public otdel() {
this.documents = new HashSet<document>(); this.otdel1 = new HashSet<otdel>();
}
public int key_otdel {get; get;}
public string name_otdel {get; get;}
public Nullable<int> key_parent_otd {get; get;}
public virtual ICollection<document> documents {get; get;}
public virtual ICollection<otdel> otdel1 {get; get;}
public virtual otdel1 otdel2 {get; get;}
}
public partial class document
{
public int key_document {get; get;} public string reg_num {get; get;} public string naimenovanie {get; get;} public System.DateTime dt izdaniya {get; get;} public string soderzhanie {get; get;} public string srok deistviya {get; get;} public int key_otdel {get; get;} public virtual otdel otdel {get; get;}
}
public partial class chertezh : document
{
public string izobrazhenie {get; get;}
}
Таким образом, за счет применения ORM-системы создаются отношения наследования и агрегации. В отношении агрегации в каждом классе присутствуют поля-ссылки и список для дочерних экземпляров объектов. В отношении наследования класс «Чертеж» наследует все атрибуты «Документ» и у него существует собственный атрибут «Изображение».
Наследование и агрегация в МУОРБД
Классический подход
Под классическим механизмом реализации наследования рассматривается прямое объявление родительского объекта при описании дочернего объекта.
Например в C#: public partial class chertezh : document {...}
В ObjectPascal: type chertezh = class(document) begin ... end;
Под классическим механизмом реализации агрегации понимается объявление объектного типа у атрибута (поля) объекта.
Например в C#:
public partial class otdel {...}
public partial class document {... public virtual otdel otdel {get; get;} ...}
В ObjectPascal:
type
Totdel = class begin ... end;
document = class begin ... otdel: Totdel; ... end;
Классическая реализация наследования и агрегации на тестовой предметной области в МУОРБД была представлена в [4]. Объект «Worker» наследует атрибуты «Фамилия», «Имя», «Отчество», «Дата рождения» и «Географический объект» через допустимую характеристику «Индивид». Для этого при описании сущности «Worker» объявляется параметр «Имеет характеристики сущности» со значением-ссылкой на сущность «Индивид». Для классической реализации агрегации параметр «Имеет характеристики сущности» со значением-ссылкой на сущность «Индивид» устанавливается в подчинение к «Допустимой характеристике» «Человек». В результате доступ к полученным атрибутам сущности «Worker» производится через префиксы, например, «Человек->Фамилия».
Разработка и реализация механизмов МУОРБД производилась строго на основании прикладных задач. Агрегация была востребована в задаче автоматизированной информационной системы учета и сопровождения экспериментальных исследований.
В эксперименте результат фиксировался на изображении, где автоматически определялись множество различных точек, как относящихся к самой области исследования, так и служебных вспомогательных точек, определяющих цель и положение установки, а также предназначенных для перевода из пикселей в миллиметры.
Каждая точка имеет две координаты и цвет, таким образом, имеем множество атрибутов объекта «Изображение эксперимента» объектного типа.
Отношение агрегации, реализованное классическим методом, представлено на рисунке 2 между сущностями «Изображение эксперимента» и «Координата»[5].
Для определения атрибута объектного типа в подчинение «Допустимой характеристике» со значением наименования атрибута, устанавливается параметр «Имеет характеристики сущности» со значением-ссылкой на сущность (объект), тип которого и приписан указанному атрибуту.
В результате обращение к полям атрибута производится с префиксом его наименования и наименованием агрегированного объекта.
Например, «Правая верхняя контрольная точка-^», «Правая верхняя контрольная точка-^», «Правая верхняя контрольная точка->Цвет» [5].
Наименование
Параметр пользователя Горелка Эксперимент Координата
Изображение эксперимента
Результат эксперимента Индивид
а)
с)1=>
11
12
13
Допустимая характеристика]Левая сторона контрольного четырёхугольника]
I
Допустимая характеристнка]Правая сторона контрольного четырёхугольника]
I
Допустимая характеристика[Левая верхняя контрольная точка] Имеет характеристики сущности(Координата]
14
Ь)
Допустимая характеристика|Правая верхняя контрольная точка] + Имеет характеристики сущности]Координата] 15
Допустимая характеристика]Левая нижняя контрольная точка] Имеет характеристики сущности]КоорД1шата]
Рис. 2 - Объявление атрибута объектного типа в универсальном приложении МУОРБД: a) область объявления объектов Ь) область описания объекта с) объявление атрибута «Левая нижняя контрольная точка» объекта «Изображение эксперимента» объектного типа «Координата».
Реализация на основе механизма синтеза метаинформации и данных
При разработке автоматизированной информационной системы документооборота на предприятии был применён механизм МУОРБД синтеза метаинформации и данных [6]. Все виды и типы документов размещены в одной сущности "Документ", что позволяет варьировать их состав и описание. Но по требованиям технического задания необходимо реализовать персональный подход к представлению и обработке информации каждого вида документа. Поэтому в рамках одной сущности реализована сложная система объектов с реализацией принципов наследования и агрегации.
Логическая схема предметной области документооборота в МУОРБД представлена на рисунке 3.
■ связь многие ко многим на уровне экземпляров - связь многие на уровне экземпляров сущностей ко многим на уровне единицы информации
■ связь один ко многим на уровне экземпляров сущностей Рис. 3 - Логическая модель документооборота в МУОРБД
Объекты в сущности «Документ» объявлены через доменные значения её атрибутов, у которых установлены параметр «Управляющий атрибут». Например, атрибут «Категория» и «Наименование документа». Таким образом, через атрибут «Категория» получены объекты: «Технический документ», «Конструкторский документ», «Технологический документ», «Управленческий документ» и др. А через атрибут «Наименование документа» получены объекты: «Чертеж», «Альбом чертежей», «Письмо», «Приказ» и др.
Наследование в МУОРБД реализовано на основании синтеза метаинформации [6]. Существует три типа организации наследования в МУОРБД - через домен значений, через параметры и через допустимые характеристики.
Пример реализованной иерархии объектов: «Документ» => «Технический документ» => «Конструкторский документ» =>«Чертеж» (рисунок 4).
Определение принадлежности персональных атрибутов устанавливается объявлением параметра, определяющего атрибута этой сущности с соответствующим значением объекту. Например, для объектов «Чертеж», «Альбом чертежей», «Сборочный чертеж» и «Спецификация» установлен персональный атрибут «Группа» через управляющий атрибут «Наименования документа» [6].
Рис.4 - Реализованная иерархия объектов в информационной системе документооборота на основе механизма синтеза метаинформации и данных в МУОРБД
Нестандартные формы наследования
В МУОРБД реализована система наследования характеристик экземпляров (строк) сущности (таблицы). В этом случае характеристики нового экземпляра (строки) точно совпадают с характеристиками экземпляра (строки), у которого он их наследует. На физическом уровне сохраняется лишь отметка о наследовании параметром «Имеет значения экземпляра сущности» и значением-ссылкой на родительский экземпляр [5].
В задаче автоматизированной информационной системы документооборота по техническому заданию необходимо определить список доменных значений атрибутов в зависимости от типа документа, с которым ведётся работа. Доменные значения атрибута «Наименования документа» - «Приложение», «Эскиз» и «Доклад» - определяются объектом «Документ» и всеми дочерними объектами. Доменное значение «Временное положение»
принадлежит объекту «Управленческий документ» и всем его дочерним объектам. Доменное значение «Приказ» принадлежит объекту «Организационный документ» [6].
Литература
1. Наследование(программирование) [Электронный ресурс] - Режим доступа: https://ru.wikipedia.org/wiki/ Наследование_(программирование)
2. Агрегирование (программирование) [Электронный ресурс] - Режим доступа: https://ru.wikipedia.org/wiki/ Агрегирование_(программирование)
3. ORM-системы [Электронный ресурс] - Режим доступа: https://ru.wikipedia.org/wiki/ORM
4. И.А. Микляев, П.П. Олейник, С.М. Салибекян., Методы реализации объектных статических моделей в приложениях баз данных. Информационные технологии и вычислительные системы 1/2016 - стр. 12-31
6. Микляев И.А., Свидетельство ОФЕРНиО № 14246 (Объединённого фонда электронных ресурсов «Наука и образование») Универсальное приложение для матричной универсальной объектно-реляционной базы данных", 2010.
7. Жирнова М.А., Микляев И.А., Синтезирование метаинформации и данных Сборник докладов по материалам научно-практической конференции в рамках XLИ Ломоносовских чтений / секция «Информационные системы и технологии в экономике и управлении» /Сборник докладов. - Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Северный (Арктический) федеральный университет имени М.В. Ломоносова» филиал в г. Северодвинске Архангельской области институт судостроения и морской арктической техники, 2013. - с., стр. 38-43.
УДК 519.876.5
ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ С ПРИМЕНЕНИЕМ СИСТЕМНОГО ПОДХОДА И ИСЧИСЛЕНИЯ ОБЪЕКТОВ8
Жихарев Александр Геннадиевич, к.т.н., старший преподаватель кафедры информационных систем, Белгородский государственный национальный исследовательский университет, Россия, г.
Белгород, [email protected];
Маторин Сергей Игоревич, д.т.н., профессор, профессор кафедры информационных систем, Белгородский государственный национальный исследовательский университет, Россия, г. Белгород,
Корчагина Карина Викторовна, аспирант, ассистент кафедры информационных систем, Белгородский государственный национальный исследовательский университет, Россия, г. Белгород,
korchagina@bsu .edu.ru.
Развитие информационных технологий и, в том числе, средств и методов имитационного моделирования приводит в настоящее время к необходимости использования для их дальнейшего совершенствования результатов, полученных в рамках фундаментальных исследований. Авторами, в частности, при разработке нового метода и инструментария имитационного моделирования использован оригинальный системный подход «Узел-Функция-Объект»(УФО-подход: http://ru.wikipedia.org/wiki/У зел-Функция-Объект), основанный на данном подходе «Системно-Объектный Метод Представления Знаний» (СОМПЗ) [1] и современный математический аппарат исчисления объектов Абади-Кардели, разработанный для формализации объектно-ориентированного программирования [2]. Суть предлагаемого метода системно-объектного имитационного моделирования функционирующих систем представлена в работах [3-5], особенности программного
8 Исследование поддержано грантами РФФИ: 14-47-08003; 16-07-00193а, 16-07-00460а
28