Моделирование предметной области необходимо для выявления, классификации и формализации сведений обо всех аспектах предметной области, определяющих свойства разрабатываемой системы.
Разработка информационных систем – это моделирование предметной области при помощи структур данных и программного кода. Структурами данных являются структуры в оперативной памяти, файлах на диске и в базах данных, а программным кодом – активная модель решаемой задачи над моделируемыми данными.
Решение, основанное на модели предметной области, предусматривает создание сети взаимосвязанных объектов, каждый из которых представляет собой осмысленную сущность предметной области. Реализация модели предметной области заключается в создании слоя объектов, описывающих различные стороны определенной предметной области. Одни объекты призваны имитировать элементы данных, которыми оперируют в данной предметной области, другие формируют бизнес-правила, по которым производится обработка данных [5].
Целью данной работы является обзор существующих подходов к построению модели предметной области и анализ применения объектно-ориентированных фреймворков при её моделировании.
Существующие методы моделирования предметной области с использованием объектно-ориентированного подхода: моделирование с использованием XML-файлов, аннотированные классы
При объектно-ориентированном подходе к моделированию предметной области сначала выделяются классы объектов, а далее в зависимости от возможных состояний объектов (жизненного цикла объектов) определяются методы обработки (функциональные процедуры), что обеспечивает наилучшую реализацию динамического поведения информационной системы.
Для объектно-ориентированного подхода разработаны графические методы моделирования предметной области, обобщенные в языке унифицированного моделирования UML. Например, на рисунке 1 представлен фрагмент модели предметной области кафедры технического вуза.
Рисунок 1. Пример диаграммы классов модели предметной области
Также при моделировании предметной области может быть использован расширяемый язык разметки XML. Он предназначен для разметки документов произвольной структуры. XML документы содержат дерево вложенных открывающих и закрывающих тегов, каждый из которых может содержать несколько пар «атрибут – значение». Таким образом, если выполнить предварительную разметку документа, то с помощью XML можно создать онтологию отдельного документа и целой предметной области [1].
С помощью конфигурационных XML-файлов осуществляется сопоставление классов с таблицами БД. При использовании файла XML можно сгенерировать основу исходного кода для классов длительного хранения.
При разработке крупных проектов довольно часто возникает ситуация, когда сквозной функционал, слабо относящийся к бизнес-логике, сильно расширяется, заполняя код однотипными конструкциями. Это может быть логирование операций, работа с кешем или проверка прав доступа [7]. В этом случае полезно использовать аннотации. Аннотация – средство, что позволяет встроить информацию поддержки в исходные файлы, то есть аннотации можно использовать для отслеживания ошибок, устранения предупреждений, генерации кода, XML файлов, маркировки классов, полей. Например, можно пометить поле аннотацией @NotNull, что означает, что данное поле не может быть равно null. Или, например, пометить метод аннотацией @Secured с указанием роли, которой должен будет обладать пользователь для выполнения этого метода.
Подход к моделированию предметной области с использованием «Фреймворк.АСУ»
При написании средних по масштабу и крупных web-проектов [6] применяются специальные языки программирования (ЯП), например, PHP или Python. При этом код при их написании на чистом ЯП растягивается на тысячи строк, в которых даже самому опытному web-программисту легко запутаться. Чтобы этого не происходило, необходима четкая структуризация кода и избавление его от дублирования. Для этого предназначены фреймворки, которые представляют собой, исходя из названия, каркас или структуру всего web-проекта. Они позволяют избавиться от повторяющегося кода и большой рутинной работы при чистом программировании.
«Фреймворк.АСУ» служит интеграционной средой при построении информационного пространства кафедры АСУ, объединяющего различные задачи учебного процесса в рамках единого интерфейса отображения и управления информацией. Основные возможности фреймворка «Фреймворк.АСУ» рассматриваются в [3] и [4].
Платформа фреймворка построена на принципах объектно-ориентированного подхода и состоит из двух основных компонентов: среды разработки, и системы управления контентом [4]. Первый компонент позволяет создавать произвольные типы объектов и связи между ними, а также управлять отображением объектов веб-проекта. Второй компонент предназначен для управления объектами как информационными элементами.
Управление контентом веб-проекта осуществляется на уровне иерархии объектов, каждый из которых может быть расположен одновременно на нескольких логических страницах. Структура информации, хранящейся в объектах, определяется набором классов, определенных разработчиком на этапе проектирования системы и может быть изменена без ущерба работающего проекта в любой момент.
Такой подход позволяет намного проще и оперативнее решать задачи, связанные с изменением структуры создаваемых данных. Гибкость “Фреймворк.АСУ” объясняется возможностью создавать произвольные типы объектов, настраивать связи между ними, а также управлять отображением объектов в рамках веб-проекта.
Ориентируясь на принципы объектно-ориентированного программирования, в «Фреймворк.АСУ» организованы классы, описывающие предметную область кафедры АСУ. Представление информационного пространства кафедры в виде совокупности классов позволяет реализовывать и легко представлять новые сущности предметной области и устанавливать связи между ними.
Рисунок 2. Фрагмент графа наследования класса CModel
Стандартизация именования объектов схемы базы данных позволяет устанавливать объектно-реляционные отношения и преобразования на основе метаданных, предоставляемых моделью.
Модель данных, кроме атрибутов каждой сущности определяет также связи между сущностями. Отношения задаются с помощью метода relations() и дают возможность легко получать данные одним запросом к базе данных из нескольких связанных между собой таблиц.
Для задания атрибутов меток используется функция attributeLabels(). Метки, заданные с помощью этой функции, в дальнейшем используются для вывода в представлении названия указанного поля таблицы базы данных.
Модель данных должна обеспечивать согласованность данных на уровне логики бизнес-процессов. Для этой цели в системе реализованы правила валидации полей. Они задаются с помощью функции validationRules(), в которой указываются поля модели, которые должны быть обязательно заполнены. Также реализованы валидаторы проверки на правильность ввода даты, выбранных значений, числового значения поля.
Для приведения данных к нужному типу используется функция fieldsProperty(). Она служит для переопределения типа данных поля в соответствии с указанным.
В процессе загрузки данных необходимо тщательно следить за тем, чтобы ни один из объектов не был считан дважды, иначе в памяти будут созданы два объекта, соответствующих одной и той же записи таблицы базы данных [4]. Для решения этой проблемы в системе организована коллекция объектов (identity map). Её использование гарантирует, что внутри одной транзакции для представления одних сущностей будут использованы одни и те же объекты. При этом обеспечивается не только изоляция транзакций разных пользователей, но и повышается производительность по причине сокращения обращений к базе данных.
Использование «Фреймворк.АСУ» для моделирования информационного пространства кафедры технического университета
Предметная область выпускающей кафедры является сложной системой, состоящей из множества взаимодействующих компонентов. Информационное моделирование предметной области выполнено с использованием методологии IDEF1X и выполнена автоматизация с использованием хранилища данных на основе реляционной СУБД и файлового хранилища. Многие из таблиц СУБД являются отражениями сущностей предметной области.
Например, таблица студентов в фреймворке представлена классом CStudent, который предоставляет доступ к записи в таблице студентов кафедры. Класс обладает как свойствами, соответствующими полям таблицы базы данных, так и свойствами, соответствующими связям с другими объектами предметной области.
Рисунок 3. Фрагмент информационной модели предметной области
Сущность студент связана со следующими сущностями:
- диплом (diploms): таблица diploms, отношение один-ко-многим, класс-менеджер CStaffManager;
- учебная группа (group): таблица study_groups, отношение один-к-одному, класс-менеджер CStaffManager и др.
Правила валидации для сущности Студент задаются функцией:
public function validationRules() {return array(«required» => array(«fio»));}
Таким образом, если не указать ФИО студента, модель при сохранении выдаст ошибку с требованием заполнить обязательные поля.
Преимущества моделирования предметной области с использованием объектно-ориентированных фреймворков
Применение фреймворков при моделировании предметной области позволяет решить следующие задачи:
- Сокращение времени на моделирование предметной области;
- Обеспечение распределённой разработки;
- Адаптация модели под конкретную предметную область, например, кафедры университета.
«Фреймворк.АСУ» объединяет в себе различные задачи учебного процесса кафедры технического университета в рамках единого веб-портала. Создание единого информационного пространства кафедры позволяет не просто хранить сведения об учебном процессе (информация об успеваемости студентов и т. п.), но и создавать более адекватные модели знаний и процессов, что обеспечивает высокую информационную поддержку учебного процесса, прослеживание показателей и, как результат, повышение эффективности управления.
Заключение
Модель предметной области описывает важные понятия предметной области и их связи между собой. Без проведения моделирования велика вероятность ошибок в решении стратегических вопросов, приводящих к экономическим потерям и высоким затратам на последующее перепроектирование системы.
Использование объектно-ориентированного фреймворка «Фреймворк.АСУ» для моделирования предметной области дает возможность моделировать не только структуру предметной области, но также и поведение отдельных объектов, относящихся к определенному типу.
Список литературы:
- Карасюк В.В. Описание концепций предметной области на базе онтологий для систем обучения // Вестник Национального технического университета Харьковский политехнический институт. 2006. № 23. С. 85-88.
- Куликов Г.Г., Набатов А.Н., Речкалов А.В. Автоматизированное проектирование информационно-управляющих систем. – Уфа: УГАТУ, 1998. – 104 с.
- Куликов Г.Г., Старцев Г.В., Бармин А.А., Бармина О.В. Методика интеграции информационно-поисковых систем и корпоративных информационных систем на основе системных моделей бизнес-процессов. // Прикладная информатика – 2014 — №1 – с. 6-15.
- Куликов Г.Г., Шилина М.А., Старцев Г.В., Бармин А.А. Структурирование контента информационного пространства технического университета с использованием процессного подхода и семантической идентификации // Вестник УГАТУ. 2014. № 4(65). С. 115-124.
- Фаулер М. Архитектура корпоративных приложений: пер. с англ. – М.: Издательский дом “Вильямс”, 2006. – 544 с.
- Булах Евгения. Техническая проза интернет-проектов [Электронный ресурс] – режим доступа: designstudio/vybiraem-ispolnitelya/texnicheskaya-proza-internet-proektov/
Использование аннотаций в PHP 5.4 для АОП и не только [Электронный ресурс] – режим доступа: type=»book» name=»ИСПОЛЬЗОВАНИЕ ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ ФРЕЙМВОРКОВ ДЛЯ МОДЕЛИРОВАНИЯ ПРЕДМЕТНОЙ ОБЛАСТИ» author=»Куликов Геннадий Григорьевич, Бармин Александр Александрович, Шамиданов Дмитрий Геннадьевич» publisher=»БАСАРАНОВИЧ ЕКАТЕРИНА» pubdate=»2017-02-21″ edition=»ЕВРАЗИЙСКИЙ СОЮЗ УЧЕНЫХ_25.07.15_07(16)» ebook=»yes» ]