Диссертация (1148239), страница 8
Текст из файла (страница 8)
Рассмотрим возможностинаиболее зрелых из них, а затем сформулируем требования к современной DSMплатформе.422.4.1. MetaEdit+MetaEdit+ [15], на наш взгляд, на данный момент является наиболее зрелымкоммерческим продуктом в данной области. По сути эти целых два инструментария:MetaEdit+ Modeler, являющийся гибко настраиваемой CASE-средой, и MetaEdit+Workbench — DSM-платформа, с помощью которого создаются предметноориентированные решения на основе MetaEdit+ Modeler.ЯвляясьпоначалуакадемическойразработкойколлективауниверситетаJyväskyla, Финляндия (по данным [102], данной исследовательской группой на 2008год было опубликовано более 150 статей), в 1990-х годах продукт становитсякоммерческим и активно применяется в индустрии до сегодняшнего дня. На моментнаписания текста текущей является версия MetaEdit+ 5.1.MetaEdit+ является продуктом с почти двадцатилетней историей и представляетсобой пример инструмента, очень хорошо решающего базовые задачи DSM-подхода:создание новых графических языков с помощью метамоделирования, быстраяразработка генераторов, автоматическое создание графического редактора путемконфигурации платформы метамоделью языка, наличие сетевого репозитория смногопользовательским доступом и т.п.
Однако то, что MetaEdit+ являетсязакрытымкоммерческимпродуктом,недаетнаучномусообществуипромышленным компаниям полноценно расширять имеющийся инструментарий(только с помощью открытого API). А большое количество коммерческих клиентовделает продукт консервативным и негибким к новым тенденциям в области. Врезультате создаваемые DSM-решения обладают лишь базовым функционалом.2.4.2. Microsoft Modeling SDKДругим распространенным коммерческим продуктом в данном направленииявляется технология Modeling SDK компании Microsoft [76]. Проект развивается с2003 года и представляет собой надстройку для среды разработки Visual Studio,43позволяющая с помощью метамоделирования задавать предметно-ориентированныерешения, интегрируемые с данной средой. Visual Studio является профессиональнойсредой программирования, поддерживающей целый ряд текстовых языков итехнологий, и Microsoft Modeling SDK призвана дополнить существующие в VisualStudio средства разработки также и инструментами, основанными на диаграммах.Microsoft Modeling SDK предоставляет своим пользователям все стандартныесредства для метамоделирования в широком смысле: редактор абстрактногосинтаксиса, редактор форм, средства задания шаблонов генерации.
Особенностьютехнологии является то, что зачастую требуется ручное кодирование на C# –например, для задания нетривиальных фигур для элементов, для заданияограничений на модели, для определения управляющих конструкций при заданииправил генерации кода и т.п.Технология Microsoft Modeling SDK является довольно зрелой и хорошоподходит для программистов, использующих стек технологий и инструментыMicrosoft, для остальных же ее применимость видится сомнительной – созданиенетривиальных DSM-решений практически неизбежно потребует навыков владенияVisual Studio и программирования на C#.2.4.3.
Eclipse Modeling ProjectEclipse Modeling Project (EMP) является открытым проектом, развиваемым приучастии академических и промышленных организаций с начала 2000-х годов.Проект базируется на основе платформы Eclipse и фактически состоит из несколькихдесятков более мелких проектов, каждый из которых имеет свою направленность.Нередки случаи, когда создаются новые проекты с единственной целью интеграциимежду собой инструментов, созданных в рамках других проектов (например,Modeling Amalgamation Project [17]). Данная платформа по факту является самойпопулярной площадкой для исследований в области модельно-ориентированнойразработки ПО, однако на ее основе созданы также несколько известных44коммерческих систем визуального моделирования (например, Borland Together [8]или Rational Software Architect [18]).Платформа имеет большое количество разработчиков и активно развивается,регулярно появляются новые проекты.
Однако, порог вхождения для использованияданной платформы довольно большой. Это происходит потому, что проектызачастую развиваются отдельно и независимо друг от друга. Каждая группаразработчиков выпускает документацию только по своему проекту (в видедокументации онлайн или научных публикаций).
Актуальной информации повзаимодействию инструментов, созданных в разных проектах, крайне мало (редкимиисключениями можно считать [44] или [88]). При этом, учитывая темпы развитияпроектов, составляющих EMP, информация теряет актуальность довольно быстро, втом числе и проектная документация, представленная на веб-сайтах проектов. Всеэто приводит к тому, EMP является проектом, предоставляющим широкий спектрвозможностей для хорошо разбирающихся в платформе разработчиков, при этом неочень дружественным для начинающих.2.2.4.
AToM3Платформа AToM3 также является некоммерческой академической разработкой,создававшейся для исследований в области трансформации моделей. Проектоткрытый и разрабатывался сотрудниками университета Макгилла (Квебек, Канада)при участии исследователей из Мадридского автономного университета. На данныймомент проект закрыт, авторы занимаются разработкой платформы для текстовыхпредметно-ориентированных языков MetaDepth [14].Платформапредоставляетметамоделирования,пользователюособенностьюAToM3стандартныеявляетсяинструментымощныймеханизмтрансформации моделей, основанный на графовых грамматиках.
Определяятрансформации, автор языка может задавать преобразования между языками,определять генераторы кода и создавать интерпретаторы/отладчики диаграмм.45Средаактивноориентированныхиспользоваласьрешений,авторамидемонстрирующихдлясозданияпредметно-использованиеописанныхмеханизмов, однако после 2009 года проект по сути не развивается. Представляясобой интересную академическую разработку, платформа AToM3, на наш взгляд, неможет считаться достаточно зрелой для использования в коммерческих проектах.2.4.5.
MetaLanguageПроект MetaLanguage [31, 45, 151] развивается силами исследователей изВысшей Школы Экономики в городе Пермь. Платформа реализует традиционныйнабор средств метамоделирования, позволяя создавать графические редакторы,репозиторий, валидаторы, средства трансформации моделей и др. Особенностьюсистемы является возможность изменения синтаксиса языка во время работы с ним.Это достигается за счет интерпретации метамодели языка при создании моделей спомощью данного языка (подобный подход также реализован в платформеMetaEdit+, рассмотренной выше).Исходные коды системы MetaLanguage недоступны, готовую версию дляскачивания в рамках данного исследования также найти не удалось, поэтому сделатьвыводы относительно применимости ее в промышленной или академическойразработке не представляется возможным.2.4.6.
Сравнительный анализЗавершает данный обзор сравнительный анализ DSM-решений, которые могутбыть созданы на базе рассмотренных платформ (см. табл. 1). Анализ таблицыпоказывает,чтоизчетырехпредставленныханалоговсамаябогатаяфункциональность получаемых DSM решений у платформы Eclipse. Однакоплатформа крайне сложна в применении. Видятся актуальными работы как поупрощению процесса использования DSM-платформ, так и упрощение самихрешений, созданных на их основе – разработка средств, позволяющих сделать их46более удобными при использовании непрофессионалами.Таблица 1. Сравнение возможностей сред разработки, создаваемых на базенекоторых DSM платформMetaEdit+AToM3EMPMS ModelingQRealSDKУсловияЗакрытыйОткрытоераспространениякоммерческий(EPL)ПООткрытое ПОпродуктОтделимостьрешенияДа,отврамкахЗакрытыйОткрытоекоммерческий(ApacheпродуктVersion 2.0)ДаНетНетНетWindowsWindows,ПОLicenseModelerплатформыКроссплатформеннWindows, Linux,Windows, Linux,Windows,остьSolaris, Mac OSSolaris, Mac OSLinux, Solaris,XXMac OS XLinux,Solaris, Mac OS XОсобенностиРаботасАвтоматическаяМеханизмТолько базоваяРаспознаваниередакторовтаблицамиираскладкаавтодополненфункциональножестов, поддержкадиаграммматрицамиия моделейсть редакторарядаэлементовидругие проектымоделированияПоддержкаСетевойПосредствомкоманднойрепозиторийсистем контроляинтеграцииверсийVisual StudioверсийразработкиСовместноеэвристикНетПосредствомПосредствомссистемДаДаДаНетДаНетДаДаРеализуетсяДаконтроляиспользованиеязыковСредстватрансформациикодированиеммоделейна C#ВизуализацияДа,путемотладкиинтеграциисоДа,внутреннийДа,РеализуетсяДа,внутреннийкодированиеммеханизммеханизмна C#наРеализованнРеализуетсяЗаданныесязыке OCL илиые на Pythonкодированиемпомощьюязыкана C#ограничениймеханизмстороннимивнутреннийсредамиВерификаторыиОграниченияЗаданныеанализаторытольконамоделейсинтаксис языкаJavaилиреализованные наC++47Последним столбцом в таблице представлена платформа QReal, разработкакоторой велась в рамках данного исследования и которой посвящены последующиеглавы работы.2.5.
Требования к современной DSM платформеМинимальный набор инструментальных средств, входящих в предметноориентированное решение, которое может быть приносить пользу на практике,составляет графический редактор и средство трансформации создаваемых моделей вописания на другом языке (например, генератор кода в случае текстового целевогоязыка). В соответствии с [102], простейший редактор должен быть способенсохранять и загружать модели с диска; добавлять и удалять экземпляры объектов;соединять объекты с помощью связей; отображать и раскладывать (автоматическиили с помощью перетаскивания) элементы и связи между ними на диаграммах;изменять свойства уже существующих объектов и связей между ними.