Дипломная работа Голубев Александр Михайлович 541 группа Допущен к защите. Зав кафедрой

Loading...


Pdf көрінісі
бет1/3
Дата22.11.2020
өлшемі1.19 Mb.
түріДиплом
  1   2   3

Санкт-Петербургский Государственный Университет 

Математико-механический факультет 

 

Кафедра информатики 



 

 

Расширение гипертекстовой модели языка WebML средствами 

поддержки вариативности 

 

 



Дипломная работа 

 

Голубев Александр Михайлович 



541  группа 

 

 



 

Допущен к защите. 

Зав. кафедрой: 

д.ф.-м.н., профессор Косовский Н. К. 

 

Научный руководитель: 



к.ф.-м.н., доцент Кознов Д. В. 

 

Рецензент: 



ст. преп. Смирнов М. Н. 

 

 



 

Санкт-Петербург 

2010


St. Petersburg State University 

Faculty of Mathematics and Mechanics 

 

Chair of Computer science 



 

 

WebML hypertext model extension with variability support tools 

 

 



 

Graduate paper 

 

Golubev Alexander 



541 group 

 

 



 

Admitted to proof. 

Head of the chair: 

PhD, Professor N.Kosovskyi 

 

Scientific advisor: 



PhD, Associate Professor D.Koznov  

 

Reviewer: 



Senior Lecturer M.Smirnov 

 

 



 

 

St. Petersburg 



2010

 

Оглавление 

1. Введение ..................................................................................................................................... 5

 

2. Постановка задачи ..................................................................................................................... 7



 

3. Обзор ........................................................................................................................................... 8

 

3.1. Семейства программных продуктов ..................................................................................... 8



 

3.2. Диаграммы возможностей (feature diagrams) ..................................................................... 10

 

3.3. Язык WebML ......................................................................................................................... 11



 

3.3.1. Общее описание языка .............................................................................................. 11

 

3.3.2. Гипертекстовая модель ............................................................................................. 11



 

3.4. Пакет  WebRatio .................................................................................................................... 12

 

3.5. Платформа Eclipse и технология GMF ............................................................................... 13



 

4. Управление вариативностью .................................................................................................. 15

 

4.1. Общая схем разработки продуктов семейства................................................................... 15



 

4.2. Модель вариативности ......................................................................................................... 17

 

4.2.1. Уровень проекта ........................................................................................................ 17



 

4.2.2. Уровень профиля сайта ............................................................................................. 18

 

4.2.3. Уровень области ........................................................................................................ 19



 

4.2.4. Более глубокие уровни вариативности ................................................................... 19

 

4.2.5. Проблемы предложенной модели ............................................................................ 20



 

4.3. Процесс создания конкретных продуктов ......................................................................... 21

 

5. Архитектура программных средств ....................................................................................... 22



 

5.1. Общая схема работы редактора PLWeb ............................................................................. 22

 

5.2. Реализация модели вариативности ..................................................................................... 23



 

5.2.1. Редактор PLWeb ........................................................................................................ 24

 

5.2.2. Работа с редактором .................................................................................................. 25



 

5.3. Генерация проекта WebRatio конкретного продукта ........................................................ 27

 


 

5.4. Реализация синхронизации на различных уровнях........................................................... 27



 

5.4.1. Синхронизация гипертекстовой модели с моделью вариативности .................... 27

 

5.4.2. Обновление проектов продуктов семейства ........................................................... 28



 

6. Особенности реализации ........................................................................................................ 29

 

6.1. Использование особенностей хранения гипертекстовой модели WebRatio ................... 29



 

6.2. Работа с XML, использование SAX и DOM парсеров ...................................................... 29

 

7. Заключение ............................................................................................................................... 32



 

7.1. Результаты ............................................................................................................................. 32

 

7.2. Дальнейшие пути развития .................................................................................................. 32



 

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

 

Приложение. Пример .................................................................................................................. 35



 

 


 

1. 



Введение 

Web-приложения  являются    популярными  и  чрезвычайно  востребованными  в 

современном  мире.  Своей  популярностью  они  обязаны  распространенности  Интернета, 

простоте  использования    Web-браузеров  в  качестве  клиентского  приложения,  удобству 

обновления  и  поддержки  без  распространения  и  установки,  а  также  кросс-

платформенности.  Многие  современные  приложения  не  просто  имеют  Web-аналоги,  а 

изначально создаются таковыми. Среди Web-приложений сейчас можно найти не только 

привычные  почтовые  клиенты,  аукционы  и  Интернет-магазины,  но  и  такие  "тяжелые" 

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

Увеличение  числа  Web-приложений  и  их  активное  использование  в  бизнес-

решениях  привело  к  значительному  увеличению  требований  к  качеству  и  надежности 

таких  приложений.  Одним  из  путей  повышения  этих  характеристик  традиционно 

считается  использование  модельно-ориентированного  подхода  (Model  Based  Approach)  с 

автоматической генерацией кода по моделям  [1]. Для этих целей был создан ряд языков 

моделирования,  ориентированных  на  Web-приложения  –  OOHDM  [2,  3],  UWA  [4], 

WebML [5, 6], WISDOM [7] и другие. 

Наиболее  зрелым  на  сегодняшний  день  языком  моделирования  является  язык 

WebML  (Web  Modeling  Language)  [6].  WebML  предоставляет  собой  средства  для 

графического 

описания 

процесса 

проектирования 

сложных 

Web-приложений, 

работающих с большим объемом данных. Основными целями языка WebML являются: 

 



задать структуру Web-приложения с помощью высокоуровнего описания, которое 

может быть использовано для дальнейшей разработки и поддержки приложения; 

 

предоставить несколько представлений (view) одной и той же информации; 



 

разделить описание Web-приложения на несколько частей – страницы, навигацию, 



представления  и  базу  данных,  каждая  из  которых  может  разрабатываться 

независимо; 

 

хранить метаинформацию, полученную в ходе разработки, в рамках единой модели 



и использовать ее в дальнейшем для динамического создания Web-страниц; 

 



явно моделировать поведение системы для конкретных пользователей или групп; 

 



 

определить  операции  с  данными,  для  обновления  содержания  сайта  или 

взаимодействия с внешними сервисами. 

Язык  WebML  реализован  в  CASE-системе  WebRatio  [8],  которая  предоставляет 

возможности  моделирования  и  автоматической  генерации  интерфейсных  Web-

приложений.  В  дополнение  к  этому  модели,  уже  имеющиеся  или  вновь  созданные  в 

WebRatio,  могут  быть  использованы  как  заготовки  при  разработке  новых  приложений  – 

при  этом  значительно  сокращается  требуемое  время  и  ресурсы.  WebRatio  позволяет 

создавать  большие  и  сложные  решения,  такие  как:  корпоративные  информационные 

системы,  порталы  и  системы  управления  контентом,  системы  электронной  коммерции  и 

другие. 

Метод разработки семейств программных продуктов (Software Product Lines) – это 

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

наборы  похожих  приложений, повторно  используя  общие  активы  разработки [9].  Одним 

из  способов  реализации  product  lines  является  создание  обобщенного  приложения  с 

отмеченными  точками  вариативности,  на  базе  которого  строятся  конкретные  продукты. 

Использование этого метода может не только сократить время и расходуемые ресурсы на 

проектирование,  разработку  и  тестирования  приложений,  но  и  повысить    качество 

создаваемых продуктов.  

При  наличии  возможности  разрабатывать  семейства  программных  продуктов  в 

CASE-системах  можно  получать  высококачественные  и  надежные  приложения,  затратив 

меньшее  количество  ресурсов.  Кроме  того,  получившиеся  приложения  будут  просты  в 

поддержке и дальнейшей разработке. 

В  данной  работе представлен  подход к  разработке  семейств  Web-приложений  – в 

модельно-ориентированный  подход  WebML  добавляются  средства  поддержки 

вариативности. А именно, на основе главной модели WebML – гипертекстовой модели – 

строится  модель  вариативности,  с  помощью  которой  задается  множество  продуктов 

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

компоненты. В работе так же представлен редактор PLWeb реализующий данный подход. 


 

2. 



Постановка задачи 

Основной  целью  данной  работы  является  разработка  системы,  позволяющей  на 

основе  продукта  WebRatio  создавать  семейства  программных  продуктов  посредством 

добавления вариативности в гипертекстовую модель  WebML. Для достижения этой цели 

было необходимо решить следующие задачи. 

1.  Изучить  язык  WebML,  его  гипертекстовую  модель,  продукт  WebRatio,  а  так  же 

существующие вариативные модели. 

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

модель вариативности на базе языка WebML. 

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

WebRatio, использующие эту вариативную модель. 

4.  Опробовать разработанные средства на реальном примере. 

 


 

3. 



Обзор 

3.1. 

Семейства программных продуктов 

Семейство программных продуктов – это набор программных систем, обладающих 

отличительными  характеристиками,  удовлетворяющими  потребностям  определенного 

сегмента  рынка,  основывающихся  на  определенном  наборе  общих  ресурсов,  а  так  же 

разрабатываемых определенным способом [10]. Разработка таких семейств предоставляет 

много  преимуществ  по  сравнению  с  традиционными  подходами  к  разработке 

программного обеспечения. Среди них можно выделить повышение производительности 

труда,  повышения  качества  выпускаемых  продуктов,  уменьшение  общей  стоимости 

разработки, уменьшение времени вывода на рынок и другие. Многие крупные компании, 

такие  как  Nokia,  HP,  LG  и  Philips,  успешно  используют  данный  подход  в  повседневной 

практике. 

Основная  идея  подхода  заключается  в  использовании  общей  базы  ресурсов  для 

разработки связанных между собой продуктов. Часто для достижения этой цели строится 

обобщенный  продукт  с  отмеченными  точками  вариативности.  Благодаря  таким  точкам 

появляется возможность отобразить все возможные вариации продукта. 

Среди переиспользуемых ресурсов можно выделить следующие: 

 

требования и их анализ; 



 

предметная модель; 



 

архитектура программного обеспечения



 

работы по улучшению производительности; 



 

документация; 



 

планы по тестированию, тест-кейсы и тестовые данные; 



 

человеческие ресурсы, их знания и навыки; 



 

процессы, подходы и инструменты



 

бюджеты, расписания и планы работ; 



 

компоненты и сервисы. 



Согласно  [10]  процесс  разработки  семейства  программных  продуктов  состоит  из 

трех основных видов деятельности: 



 

1)  разработка общих активов (core asset development); 



2)  разработка целевых продуктов (product development); 

3)  управление разработкой (management). 

При  разработке  общих  активов  на  основе  требований  к  продуктам,  стратегий 

разработки, производственных ограничений и наличия ресурсов, активов и опыта строятся 

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

спецификации  области  охвата.  В  процессе  разработки  целевых  продуктов  используются 

данные об общих активах, а также добавляются требования, выдвигаемые к конкретным 

продуктам.  Для  каждого  из  требований  принимается  решение  о  его  реализации  – 

отдельная,  как  новый  общий  ресурс  или  нужная  функциональность  уже  реализована  в 

общих  активах.  Управление  разработкой  подразумевает  под  собой  контроль  за 

исполнением  метода  разработки,  определенного  для  семейства,  управление  проектами, 

конфигурационное  управление,  а  так  же  анализ  рынка,  обеспечение  ресурсами, 

управление взаимодействием с внешним миром, разрешение конфликтов, стратегическое 

планирование и управление людьми. 

Все  три  вида  деятельности  имеют  выраженный  итеративный  характер  и  тесно 

связаны между собой. 

В  [10]  так  же  выделяется  несколько  основных  подходов  к  разработке  семейства 

программных  продуктов,  характеризующий  последовательность  создания  тех  или  иных 

активов. 

 



Упреждающий (proactive) – разработка общих активов в начале: 

разработка общей концепции в первую очередь; 



продукты  быстро  выводятся  на  рынок,  с  минимальным  количеством 

написанного кода; 

требуются большие начальные инвестиции и заранее изученные требования. 



 

Реагирующий (reactive) – разработка одного или нескольких продуктов в начале: 



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

общая концепция может сильно измениться; 

гораздо меньшие начальные инвестиции; 



архитектура  и  другие  общие  активы  должны  быть  надежны,  расширяемы  и 

должны подходить для будущих продуктов. 


10 

 



 

Накапливающий  (incremental)  –  поэтапная  разработка  основных  общих  активов  с 

изначальным планом создать семейство программных продуктов. 

3.2. 

Диаграммы возможностей (feature diagrams) 

Одной  из  основных  задач  разработки  семейств  программных  продуктов  –  явное 

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

часто,  используются  для  этого  [11].  Они  представляют  собой  визуальное  представление 

возможностей  и  их  зависимостей  в  виде  И/ИЛИ-дерева.  Под  возможностью  понимается 

явный, отличительный аспект, качество или характеристика программного продукта. 

Отношения  возможностями  и  их  родителями  в  дереве  могут  быть  следующих 

типов: 


 

обязательные – возможность необходимо включать всегда; 



 

необязательные – возможность можно не включать; 



 

"или" – хотя бы одна из возможностей должна быть включена; 



 

альтернативные – одна из возможностей должна быть включена. 



 

Рисунок 1: пример диаграммы возможностей [12] 

 

 



 

11 

 

3.3. 



Язык WebML 

3.3.1. Общее описание языка 

Язык  WebML  был  разработан  для  моделирования  Web-приложений,  обладающих 

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

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

Язык  WebML  состоит  из  нескольких  частей,  каждая  из  которых  является 

независимой  моделью.  Эти  модели  описывают  проектируемое  приложение  с  разных 

уровней абстракции. 

 



Модель  данных  (data  model)  –  описывает  абстракцию  организации  данных 

приложения.  Совместима  с  моделью  сущность-связь,  используемой  при 

проектировании баз данных. 

 



Модель  запросов  (derivation  model)  –  расширение  модели  данных  вычислимыми 

конструкциями.  Является  аналогом  представлений  (view)  в  проектировании  баз 

данных.  При  написании  запросов  используется  язык  WebML-OQL  (WebML-

Object Query Language). 

 

Гипертекстовая модель (hypertext model) – описывает построение и навигацию в 



разрабатываемом  Web-приложении.  Более  подробно  данная  модель  будет 

рассмотрена ниже. 

 

Модель представления (presentation model) – определяет конкретный внешний вид 



приложения. 

3.3.2. Гипертекстовая модель 

С  помощью  гипертекстовой  модели  описывается  клиентский  интерфейс  Web-

приложения: наборы страниц, доступные пользователям, элементы, находящиеся на этих 

страницах, навигация между ними и их связи с базой данных.  

Структура  Web-приложения  описывается  в  терминах  страниц  (pages).  Они 

являются  непосредственными  элементами  интерфейса,  показываемыми  пользователю, 

который  заходит  на  сайт.  Страницы  обычно  состоят  из  нескольких  контент-модулей  – 

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

данных. Страница может быть помечена как домашняя  (home) – она будет показываться 


12 

 

первой  при  заходе  пользователя  на  конкретный  профиль  сайта,  как  ориентировочная 



(landmark)  –  ссылка  на  такую  страницу  будет  доступна  на  всех  остальных  страницах 

профиля сайта или как страница по-умолчанию для какой-либо области сайта (default). 

Профили  сайта  (site  views)  и  области  (area)  позволяют  организовать  страницы  в 

иерархическую  структуру.  Профили  сайта  являются  крупнейшими  структурными 

элементами.  Они  описывают  часть  Web-приложения,  разработанную  для  определенного 

класса  пользователей  (например,  клиентов,  простых  посетителей,  менеджеров, 

администраторов и др.) Профили могут быть открытыми (public) или закрытыми (private), 

во втором случае для доступа к ним необходима аутентификация.  

Области  представляют  собой  группы  страниц,  объединенных  общим  назначением 

(например,  область  работы  с  продуктам,  область  поддержки,  область  решений,  и  т.  д.). 

Области  могут  наследоваться.  Так  же  как  и  страницы,  области  могут  быть  помечены 

ориентировочными  (landmark)  –  ссылки  на  такие  области  будут  присутствовать  на  всех 

страницах профиля сайта. 

Навигация  в  приложении  описывается  с  помощью  ссылок  (links).  Ссылки  могут 

быть определены между контент-модулями на одной странице, между контент-модулями 

на  разных  страницах  или  между  страницами.  Информация  передаваемая  вместе  со 

ссылками  называется  контекстной  (context).  Ссылки,  которые  передают  такую 

информацию  называются  контекстными  (contextual  links).  Обычно  такая  информация 

необходима для корректного отображения контент-модулей. 

3.4. 

Пакет  WebRatio 

WebRatio  –  это  многоцелевая  среда  разработки,  предназначенная  для  построения 

уникальных Web-приложений в различных областях. В WebRatio реализован язык WebML 

и предоставляются возможности создания всех необходимых моделей языка. Для модели 

данных и гипертекстовой модели в пакете реализованы графические редакторы диаграмм. 

По  окончанию  процесса  моделирования  приложения,  существует  возможность 

автоматической  генерации  кода  приложения.  Среда  WebRatio  построена  на  основе 

платформы Eclipse. 



13 

 

 



Рисунок 2: пример гипертекстовой диаграммы в редакторе WebRatio. 

3.5. 

Платформа Eclipse и технология GMF 

Eclipse  –  это  популярная,  постоянно  развивающаяся  платформа  для  создания 

инструментов  разработки  программного  обеспечения  [13].  Наиболее  известные 

приложения,  построенные  на  основе  этой  платформы  -  различные  Eclipse  IDE, 

предназначенные для разработки ПО на множестве языков программирования (Javа, С++, 

PHP, Python и другие).  

Разработка  платформы  началась  в  2001  году  фирмой  IBM  в  качестве  

корпоративного  стандарта  разработки  на  разных  языках  для  платформы  IBM.  В 

дальнейшем  исходный  код  был  полностью  открыт  и  сделан  общедоступным  после  того, 

как Eclipse была передана для дальнейшего развития независимому от IBM сообществу. 

Начиная  с  версии  3.0  в  основе  архитектуры  Eclipse  лежит  реализация  технологии 

OSGi  (Open  Services  Gateway  initiative)  –  спецификация  динамической  модульной 

структуры  для  Java.  Это  позволяет  разделить  функциональность  системы  между 


14 

 

плагинами  (plug-in).  Таким  образом,  для  добавления  дополнительной  функциональности 



достаточно  реализовать  необходимый  плагин  или  набор  плагинов  с  определенным 

интерфейсом. 

Graphical Modeling Framework (GMF) – это фреймворк для разработки графических 

редакторов на основе платформы Eclipse [14]. С технической точки зрения он объединяет 

технологии  Eclipse  Modeling  Framework  (EMF)  [15]  –  средство  генерации  Java-кода  по 

моделям)  –  и  Graphical  Editing  Framework  (GEF)  [16]  –  фреймворк  предоставляющий 

средства  для  создания  графических  редакторов.  GMF  был  впервые  выпущен  для  версии 

Eclipse 3.2 Callisto в июне 2006. 

В  основе  разработки  графического  редактора  на  платформе  Eclipse  GMF  лежит 

модельно-ориентированный  подход.  Пользователь  создает  несколько  моделей,  по 

которым автоматически генерируется код редактора. 


15 

 



Достарыңызбен бөлісу:
  1   2   3
Loading...


©melimde.com 2020
әкімшілігінің қараңыз

    Басты бет
рсетілетін ызмет
Жалпы ережелер
ызмет стандарты
дістемелік кешені
бекіту туралы
туралы хабарландыру
бойынша жиынты
біліктілік талаптары
кіміні аппараты
жалпы біліктілік
Конкурс туралы
ойылатын жалпы
мемлекеттік кімшілік
білім беретін
жалпы конкурс
Барлы конкурс
республикасы білім
ызмет регламенті
ткізу туралы
конкурс атысушыларына
біліктілік талаптар
атысушыларына арнал
дістемелік сыныстар
идаларын бекіту
Республикасы кіметіні
облысы кімдігіні
рсетілетін ызметтер
мемлекеттік ызмет
мемлекеттік мекемесі
Мектепке дейінгі
стандарттарын бекіту
Конкурс ткізу
дебиеті маманды
мерзімді жоспар
білім беруді
дістемелік материалдар
жалпы білім
ауданы кіміні
мектепке дейінгі
конкурс туралы
облысы бойынша
рметті студент
мыссыз азаматтар
Мемлекеттік кірістер
дарламасыны титулды
Конкурс жариялайды
дістемелік кешен
ызметтер стандарттарын
разрядты спортшы
мелетке толма
директоры бдиев

Loading...