RUS UKR ENG ДонНТУ / Магистры / 2010 / ФКНТ
Фрунт Андрей Александрович
Факультет компьютерных наук и технологий
Специальность: Компьютерные системы и сети
Тема выпускной работы: Исследование методов создания объектно-реляционной модели в рамках управляемой моделями архитектуры
Научный руководитель: Дорожко Леонид Иванович
Реферат по теме выпускной работы
Введение
На сегодняшний день разработка программного обеспечения (ПО) является одной из наиболее важных и прибыльных сфер бизнеса. С переходом все большего количества аспектов человеческой деятельности под управление вычислительной техники, растут и усложняются как аппаратные, так и программные комплексы промышленного и бытового электронного оборудования. В то же время, на технологию разработки ПО (software engineering) обычно возлагают большие надежды. Считается, что она должна решать задачи высокой сложности, давать высокую производительность и качество, обеспечивать эффективность сопровождения и развития программ. К сожалению, в современном виде технология разработки ПО не оправдывает эти надежды. Она отстает более, чем на столетие от машиностроения. Это больше похоже на постройку коттеджей по одиночным заказам, чем на зрелую инженерию[1]. Ведь, по сути, программисты нашего времени в большинстве своем занимаются тем же, чем занимались их коллеги полвека назад, за тем лишь исключением, что действия доступные современному инженеру оперируют значительно больше объемом данных, но их смысл от этого не меняется. Но, в отличие, например, от отрасли производства интегральных микросхем, где подходов к решению конкретной задачи конечное количество, технология разработки ПО предоставляет разработчику полную свободу выбора пути претворения поставленных целей в реальность.
Такая свобода приводит к появлению разнообразных спорных и, порой, абсурдных реализаций задачи, которая уже была решена ранее лучшим образом, но другим человеком или группой людей. Частично избавиться от подобной практики позволит переход к автоматическому производству ПО, который требует двух значительных шагов:
- необходимо перейти от разработки одиночных систем к разработке семейств систем — это позволит подготовить «правильные» компоненты реализации часто возникающих задач;
- необходимо автоматизировать сборку компонентов реализации при помощи генераторов исходных данных[1].
Таким образом, появляется возможность сосредоточиться на повторно используемых компонентах и их качественному уровню, т. к. это определяет порог качества конечного продукта. Дополнительным преимуществом подобного подхода является то, что абстрактный, не зависящий от аппаратной и языковой платформ, метод решения какой-либо задачи можно отобразить в виде решения на произвольной программно-аппаратной платформе, учитывая ее конкретные особенности, возможности и ограничения.
Процесс написания современного ПО можно условно разделить на две части: описание характеристик (свойства того или иного программно-моделируемого объекта или процесса) и реализация поведения (взаимодействие, влияние и причинно-следственные связи взаимодействия моделируемых предметов и процессов)[3].
Цель и задачи
Целью настоящей магистерской работы является исследование и разработка подхода к моделированию характеристик объектов реляционных связей, которые представляются сущностями в рамках баз данных (БД), с целью последующего автоматического отображения этих свойств на различные программно-аппаратные платформы с сохранением исходного смысла характеристик каждого объекта.
Основой и основной предметной областью является предметная область реляционных БД. Реализация метода автоматизации моделирования характеристик объектов реляционных связей и их последующего представления средствами конкретной платформы состоит из следующих задач:
- реализация теоретического набора правил для определения отдельных характеристик объектов и условия их взаимодействия, сочетания, взаимного исключения, уникальности;
- промежуточное представление характеристик объектов, их множеств и взаимодействий в виде специфического языка предметной области (Domain specific language, DSL);
- трансформация абстрактного представления в реализации для конкретных программных платформ.
Кроме решения поставленных задач необходимо исследовать способы оптимизации реализаций каждой из поставленных задач с точки зрения затрачиваемого машинного времени.
Актуальность и мотивация темы работы
Реализация модели предметной области означает пополнение приложения целым слоем объектов, описывающих различные стороны определенной области бизнеса. Одни объекты призваны имитировать элементы данных, которыми оперируют в этой области, а другие должны формализовать бизнес-правила.
В сфере корпоративных приложений можно выделить две разновидности моделей предметной области. "Простая" во многом походит на схему базы данных (БД) и содержит, как правило, по одному объекту домена в расчете на каждую таблицу. "Сложная" модель может отличаться от структуры БД, может содержать иерархии наследования и другие типовые решения. Сложная модель более адекватно представляет запутанную бизнес-логику, но труднее поддается отображению в реляционную БД.
На практике в больших проектах предпочтение отдается простой модели, т.к. ее использование позволяет разграничить логические слои приложения. В то же время, ее использование приводит к большому количеству рутинной работы по описанию сущностей, подчас, позднейшее одно изменение в любой из них может повлечь за лавину последствий в общей архитектуре приложения[2].
Моделирование характеристик сущностей на абстрактном уровне, не привязываясь к конкретной БД и языку программирования, позволяет автоматически создавать исходные коды и остальные необходимые ресурсы слоя предметной области на основе абстрактной модели данных. На основе абстрактной модели предметной области может строится абстрактный сервисный слой приложения, отвечающий за манипулирование данными, который также в автоматическом режиме может быть преображен в исходные коды реальных приложений.
Предполагаемая научная новизна
Выделение определенного подхода к созданию абстрактной объектно-реляционной модели предметной области и моделирования характеристик ее сущностей позволит по-новому взглянуть на подходы к разработке корпоративного программного обеспечения, на создание инструментов разработки и методики разработки в целом. Данный подход (на основе метода моделирования характеристик FODA и управляемой моделью архитектуры MDA) и его программная реализация позволит создавать абстрактную модель предметной области и преобразовывать ее в необходимую реальную.
Планируемые практические результаты
Конечной целью магистерской работы является создание абстрактной объектно-реляционной модели предметной области и и преобразование ее в исходные коды для существующего языка программирования и ORM-библиотеки с возможностью дополнительного создания генераторов для произвольного множества конечных платформ реализации.
Метод моделирования характеристик FODA и характеристические модели
Характеристическая модель указывает на общие и изменяемые характеристики экземпляров понятий, а также обозначает зависимости между изменяемыми характеристиками. Характеристические модели создаются в ходе процесса моделирования характеристик.
Характеристическая модель выражает смысл (intention) понятия; множество экземляров, описание которых в ней содержаться, называется распространением (extension) понятия.
В состав характеристической модели входит диаграмма характеристик, а также некоторые дополнительные сведения - в частности, краткие семантические описания и логические обоснования каждой из характеристик, места связывания, режимы связывания, открытые/закрытые свойства, и приоритеты.
На основе диаграммы характеристик понятия можно вывести харакатеристические описания (featural description) отдельных его экземпляров. Характеристическим описанием экземпляра является набор хзарактеристик (set of features). Если все описания экземпляров, которые можно вывести из первой диаграммы, идентичны всем описаниям экземпляров, выводимым из другой диаграммы, то такие две диаграммы характеристик являются эквивалентными (equivalent) [4].
Управляемая моделью архитектура MDA
Программная система или физическая система является набором соединенных вместе элементов для специфической цели. Модель системы - это набор описаний системы и ее окружения, призванных для осуществления для специфических целей, которые могут быть представлены текстово или графически. Модельно-ориентированный подход фокусируется на моделях для работы с системами, включая понимание бизнес-логики, проектирование, реализацию, развертывание, а также сопровождение и изменение [5].
Модель состоит из трех составляющих: вычислительно-независимой (CIM, Computing Independent Model), платформо-независимой (PIM, Platform Independent Model) и платформо-специфической (PSM, Platform Specific Model) моделей. Такое представление в точности повторяет модель человеческого мышления о чем-либо. Иными словами, мы владее определенной предметной областью на уровне понимания набора ее понятий, сочетание этих понятий представляет собой, в определенной степени, целостную систему взаимодействия сущностей. В конечном итоге, мысленная система воплощается человеком в жизнь с помощью того или иного инструмента.
Идея MDA состоит в том, чтобы человеку не приходилось описывать ничего, более своих мыслей, чтобы работа заключалась в мысленном моделировании составляющих систем, из взаимодействия и только передачи информации о них компьютеру, который, в свою очередь, воспринимает знания о той или иной предметной области и реализует имеющимися средствами запросы человека.
Выводы
Технологии разработки программного обеспечения стоят на пороге новой революции, так как старые методы решения задач не оправдывают возлагаемых надежд, а новые еще не столь зрелы, чтобы заменить устоявшиеся догмы. Технологии програмной инженерии такие, как MDA и FODA могут поспособствовать в переводе разработки корпоративного программного обеспечения на новый уровень с научной, а не инженерной основой.
Использованная литература
- Чарнецки К., Айзенекер У. Порождающее программирование. Методы, инструменты, применение. Для профессионалов - СПб.: Питер, 2005. - 731 с.: ил. [описание] [ISBN 0201309777 - оригинал]
- Фаулер. М.Архитектура корпоративных программных приложений. : Пер. с англ. - М. : Издательский дом "Вильямс", 2008. - 544 с. : ил. - Парал. тит. англ. [в библиотеке Google] [ISBN 0321127420 - оригинал]
- Мейер Б. Объектно-ориентированное конструирование программных систем. Пер. с англ. - М. : Издательско-торговый дом "Русская редакция", 2005. - 1232 стр. : ил. [описание] [ISBN 0136291554 - оригинал]
- Kang K. C., Cohen S. G., Hess J. A., Novak W. E., Peterson A. S. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Software Engineering Institute Carnegie Mellon University, 1990. - 161 p.[source]
- Alhir S. S. Understanding the Model Driven Architecture (MDA). Methods & Tools, 2003 [source]
- Тарасов С. Разработка на основе моделей Издательство "Открытые системы", 2007[электронный источник]
- Lang M. A., Noggle B. J. Model Driven Information Architecture. THE DATA ADMINISTRATION NEWSLETTER, 2010 [source]