автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Разработка сред пользовательских интерфейсов нового поколения с применением аспектно-ориентированного программирования

кандидата технических наук
Михеев, Олег Игоревич
город
Санкт-Петербург
год
2009
специальность ВАК РФ
05.13.11
Автореферат по информатике, вычислительной технике и управлению на тему «Разработка сред пользовательских интерфейсов нового поколения с применением аспектно-ориентированного программирования»

Автореферат диссертации по теме "Разработка сред пользовательских интерфейсов нового поколения с применением аспектно-ориентированного программирования"

09-2

308

Па правах рукописи

Михеев Олег Игоревич

Разработка сред пользовательских интерфейсов нового поколения с применением аспектно-орнентированного программирования

Специальность 05.13.11 -Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

Автореферат

диссертации на соискание ученой степени кандидата технических наук

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

Работа выполнена в Государственном образовательном учреждении высшего профессионального образования «Санкт-Петербургский государственный политехнический университет».

Научный руководитель - доктор технических наук, профессор Кракау Татьяна Константиновна

Официальные оппоненты - доктор технических наук, профессор Карпов Юрий Глебович - кандидат технических наук Пинаев Дмитрий Владимирович

Ведущая организация - Федеральное государственное образовательное

Защита состоится « 02 » апреля 2009 г. в « 16 » часов на заседании диссертационного совета Д 212.229.18 в ГОУ ВПО «Санкт-Петербургский государственный политехнический университет» по адресу 195251, Санкт-Петербург, Политехническая ул., д. 29, 9 уч. корп., ауд 325.

С диссертацией можно ознакомиться в Фундаментальной библиотеке ГОУ ВПО «Санкт-Петербургский государственный политехнический университет».

Автореферат разослан « 27 » февраля 2009 г. Ученый секретарь

учреждение высшего профессионального образования "Санкт-Петербургский государственный университет"

,п

диссертационного совета Д212.229.18 кандидат технических наук, доцент

Васильев А.В.

;' о С Г. НИ С К А Я ГО С УДА Р СТВЕИНАЯ К И К I И с Т К К А 1- ! О !..' 9

1. ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

1.1 Актуальность работы. Пользовательский интерфейс (ПИ) является средством взаимодействия пользователя с программным обеспечением (ПО). Возрастающая сложность современных информационных систем предъявляет повышенные требования к функциональности ПИ, ставя перед разработчиками новые задачи по улучшению их качества, а именно: оптимизации процессов разработки ПИ, уменьшения времени и трудозатрат на разработку ПИ, улучшения потребительских характеристик ПИ.

Сильная конкуренция в области информационных технологий предъявляет все более жесткие требования ко времени выхода продукта на рынок. Постоянное сокращение сроков разработки ПО не дает возможности улучшать качество ПИ, которое уже не в полной мере удовлетворяет конечного пользователя.

Анализ предметной области показал, что одной из основных тенденций развития ПИ в настоящее время является переход к ПИ портального типа (ПИПТ), призванным повысить производительность пользователей. ПИПТ представляют собой класс программных систем, технологии поддержки которого отличаются большим разнообразием и неустоявшейся методологической базой ввиду небольшого срока их применения.

Классические методики, разработанные в конце 1980-х годов и основанные на концепции объектно-ориентированного программирования (ООП), применительно к разработке ПИ (в т.ч. портального типа) становятся причиной ряда проблем, с которыми сталкиваются разработчики. Существующая критика концепции ООП указывает на альтернативный подход к разработке ПО, работы над которым ведутся уже несколько лет — концепцию аспектно-ориентированное программирование (АОП). Концепция АОП обещает устранить выявленные недостатки ООП.

Однако применение АОП для разработки ПИПТ сопряжено с решением ряда задач на всех этапах разработки, и на настоящий момент не известны методики применения АОП для разработки ПИПТ. В настоящей диссертации выработана и автоматизирована методика разработки ПИПТ на основе аспектно-ориентированного программирования (АОП). Применение подходов и методов, входящих в предлагаемую методику позволяет:

— существенно сократить время и трудозатраты, необходимые для разработки ПИ;

— оптимизировать процессы разработки ПИ;

— гарантировать получение ПИПТ определенного качества за счет применения разработанного программного комплекса;

— улучшить потребительские характеристики ПИ.

1.2 Цели и задачи диссертационной работы. Главной целью данной диссертации

является разработка методики разработки ПИГТТ с применением АОП, которая бы привела к улучшению качества ПИ.

Достижение поставленной цели потребовало решения следующих задач:

— исследовать исторический аспект развития парадигм программирования и ПИ;

— исследовать современное состояние методологий программирования и разработки ПИ;

— обосновать необходимость применения АОП для разработки ПИ;

— выработать подходы и методы программирования, адаптированные для применения АОГ1 для разработки ПИПТ;

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

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

1.3 Предметом исследования является методика разработки ПИПТ.

1.4 Методы исследования. В диссертации используется теоретический аппарат, основанный на концепциях объектно-ориентированного и аспекгно-ориентированного программирования, теория графов, математический аппарат - методы индукции, анализа иерархий Т. Саати, интегральные вычисления.

1.5 Обоснованность и достоверность полученных результатов подтверждаются:

— корректным применением теоретических положений;

— оценкой эффективности применения предлагаемой методики разработки с помощью общепризнанного набора метрик, удовлетворяющих стандартам организаций ISO и IEEE;

— строгим соответствием представленной модели стандартам унифицированного языка моделирования (UML);

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

— гарантией получения на выходе разработанной среды разработки ПИПТ определенного уровня качества;

— при помощи эксперимента;

— позитивным опытом внедрения и эксплуатации ПО, разработанного с применением предложенной методики.

1.6 Научные результаты и их новизна. В диссертации впервые предложена методическая основа разработки ПИПТ на основе АОП. В частности:

— обосновано применение АОП для разработки ПИ;

— предложена, теоретически обоснована и практически реализована методика разработки ПИПТ на основе АОП, представляющая собой комплекс методов и подходов к

проектированию, разработке и тестированию.

1.7 Положения, выносимые на защиту. На защиту выносится методика, существенно улучшающая качество и процесс разработки ПИПТ, и включающая следующие основные пункты:

1. Модель ПИПТ, основанная на АОП и выраженная в наборе интерфейсов программирования приложений (API).

2. Метод моделирования аспектно-ориентированных систем на основе расширения языка UML.

3. Метод генерации конфигурации АОП из портлстной конфигурации.

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

5. Подходы к тестированию систем с применением АОП.

1.8 Практическая значимость работы. На основе научных результатов, полученных в диссертационной работе, был реализован ряд программных продуктов, предназначенных для конечных пользователей. Среди них:

- среда ПИПТ, основанная на спецификации JSR168 и АОП;

- программный комплекс для разработки ПИПТ, основанный на платформе Eclipse;

- приложение удаленного доступа к электронной почте, апробированное компанией DuSystems;

- три проекта, разработанных компанией Gemini Systems.

Предложенный метод моделирования аспектно-ориентированных систем предоставляет архитекторам возможность использовать стандартный язык UML, ранее не содержавший конструкций для моделирования аспектов.

Разработана система характеристик реализаций языков АОП, которая легла в основу предложенного способа оценки реализаций АОП, используемого для принятия решения о применимости той или иной реализации для конкретного проекта разработки ПО.

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

1.9 Апробация работы. Основные результаты и выводы диссертации были изложены в докладах на следующих научных конференциях: IEEE С/ЕМ Chapter, «Компьютерное моделирование 2005», «XXXIV неделя науки СПбГПУ», «XXXV неделя науки СПбГПУ», а также в 5 печатных работах.

1.10 Внедрение. Предложенная технология разработки ПИ внедрена в ООО «Джеминай Системе СПб» и ООО «ДюСистемс».

1.11 Структура н объем работы. Работа содержит введение, 5 глав, заключение.

2. СОДЕРЖАНИЕ РАБОТЫ

Во введении обосновывается актуальность работы, формулируются цель, задачи, объект и предмет диссертационного исследования, показана научная новизна и практическая ценность полученных результатов. Приводится структура диссертации.

В первой главе рассматривается исторический аспект развития информационных технологий, при этом особое внимание уделяется путям развития языков программирования и ПИ. Подчеркивается важность связи эволюции методик программирования и ПИ, дается краткий литературный обзор предметной области. Выделяется круг задач, возникающих в результате увеличения сложности ПО и, в частности, ПИ. Обосновывается актуальность выбранной проблематики.

Развитие методик программирования и технологий взаимодействия пользователя с компьютером являются взаимосвязанными процессами, поэтому развитие концепций ПИ зачастую служило толчком к адекватному развитию технологий программирования. Па настоящий момент общепринятым подходом к реализации ПИ является применение ООП, в частности, шаблона проектирования «модель-вид-контроллер» (МУС), выделяющего три роли в процессе визуального отображения и обработки информации.

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

Существует также тенденция объединения локальных и Веб-ПИ в портальные решения. Портальные решения призваны агрегировать функции разнообразных служб, как локальных, так и распределенных, — в одно целостное содержание. Это содержание доступно пользователю на странице портала, состоящей из множества портлетов и отображаемой на разнообразных устройствах - от персонального компьютера до мобильного телефона.

Исходя из обозначенной тенденции ПИ, являющейся результатом стремлений конечных пользователей к унификации доступа к необходимой им информации, а также предположения о взаимосвязи развития методик программирования и технологий взаимодействия пользователя с компьютером, можно сделать вывод о целесообразности применения новых методик программирования для разработки ПИ.

Во второй главе производится анализ современного состояния теории ПИ:

1. Проведена классификация ПИ по признакам сферы их применения, подходам к-реализации. Выделены три основные категории ПИ:

- локальные ПИ - предназначены для работы на локальной рабочей станции, отрисовывают свои элементы, используя средства, предоставляемые операционной системой (ОС);

- Веб-ПИ - используются для доступа к распределенным сетевым сервисам, для отрисовки элементов используется клиентское ПО - Веб-браузеры;

- портальные ПИ (ПИПТ) - предназначены для интеграции доступа к локальным и распределенным службам в единую оконную среду. Для использования большинства портальных ПИ также требуется наличие браузера.

2. Обосновано применение ПИПТ на основе сравнения объемов информации, передаваемых между ПО и пользователем, вводные для которого получены из области когнитивной психологии.

Производительность работы пользователя с ПИ изменяется динамически по мере обучения пользователя. Из теории психологии известно, что процесс обучения представляет собой Б-образную кривую. Применительно к обучению пользователей работе с компьютерными программами это утверждение подтверждено неоднократными практическими экспериментами.

Относительная простота Веб-ПИ выражается в более высокой производительности на начальном этапе использования. ПИПТ обладают ббльшим потенциалом производительности работы пользователя по сравнению с Веб-ПИ, но и требуют больших усилий от пользователя на начальном этапе. У каждой категории ПИ есть предел производительности, когда дальнейшее обучение уже невозможно и скорость передачи информации постоянна. Графически эти зависимости скоростей передачи информации от времени обучения представлены на Рис. 1.

Таким образом, производительность работы пользователя в ПИ представляет собой Б-образную функцию времени, которая в общем виде задается как:

п \ а

Ь+с*е

Соответственно:

Г / \ _ ОШ

?Веб{х)~-=Г77 (2)

bnr+c„r*e liffi lift)

j% i \ _a Порт_

* Порт X--=17"7 (3)

bn +c„ *e

Порт Порт

Производительность работы пользователя с ПИ выражается объемом информации, передаваемым в единицу времени. Объемом информации, передаваемым между ПО и пользователем за промежуток времени At = t2 - I], является интеграл функции скорости передачи информации на промежутке от ti до t2. В общем виде S-образная функция интегрируется в:

г а , ах я*1п(й+с*е~*Л)

-dx=—-+-—--1-const (4)

b+c*e

-k b kb

Промежуток времени Д1 [0; х] за который объем передаваемой информации портальных ПИ сравняется с объемом, передаваемым Веб-ПИ, рассчитывается решением уравнения:

ЬВеб k Веб Ь Веб кВебЬ 1кб ..

-к ( ' ап х ап *1п[Ьп +с„ *е п"'""') an *ln(bn +с„ )

_ Порт Порт Порт Порт_' Порт ' Порт Порт

^ Порт ^ Порт^ Порт ^ Порт ^ Порт

Итогом проведенного сравнения типов ПИ стала выработка базы для обоснования целесообразности применения ПИПТ, на основе которой возможно оценить обоснованность использования (или перехода к) ПИПТ в каждом конкретном случае.

3. Произведен сравнительный анализ существующих разработок в области ПИПТ. Рассмотрены серверы портальных приложений IBM WebSphere Portal, JBoss Portal, Apache Pluto, поддерживающие единственный существующий в настоящее время стандарт портальных приложений JSR 168. При изменении конфигурации поведенческих сущностей портлетов каждый из порталов требует удаления и последующего добавления данного портлета, что неизменно приводит к временным затратам (Табл. 1).

WebSphere Portal JBoss Portal Apache Pluto

Суммарное время, затрачиваемое на конфигурацию поведенческих сущностей и обновление портлетного приложения 40 45 45

В результате проведенной работы во второй главе обоснована целесообразность дальнейших исследований применения ПИПТ и подготовлена база для последующего сравнения с полученными результатами.

В третьей главе делается заключение о современном состоянии теории разработки ПИ и о необходимости ее совершенствования, производится поиск решения на основе исследования предметной области:

1. Проведенный анализ современных подходов к разработке ПИ позволил выявить следующие недостатки их методов и средств, основанных на ООП:

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

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

- необходимость редактирования кода для изменения поведения компонентов ПИ.

2. Изучение истории развития методологии разработки ПО выявило наличие альтернативного подхода к проектированию и разработке, развивающегося с 70-х годов -Generic Programming (обобщенное программирование), которое устраняет недостатки ООП, предоставляя возможность динамического перехода сущностей из одного класса в другой. Основным идеологом данного подхода считается A.A. Степанов. Этот подход был реализован в виде библиотеки STL, но не получил развития в современных языках программирования.

А.Л. Фуксман в 1979 году опубликовал научный труд по проблематике выделения функций системы в отдельные сущности. В нем предлагалась концепция вертикальных слоений, или сосредоточенного описания рассредоточенных действий (функций) — действий, чья программная реализация представляла собой несколько фрагментов, находящихся в разных местах основной программы. Кончина Фуксмана не позволила ему продолжить свои исследования.

Один из идеологов ООП И.Якобсон в многочисленных трудах делает заключение о наличии недостатков в ООП и заявляет о своих разработках, датированных началом 1980-х годов и призванных устранить указанные выше недостатки посредством динамической модификации поведения сущностей. Эти разработки Якобсон называет предтечей АОП.

3. Новаторская концепция АОП заключается в декомпозиции всех сущностей на аспекты, описывающие поведенческие единицы. АОП также предоставляет следующие преимущества:

- изложение требований к системе на языке с дружественным человеку синтаксисом;

- улучшение декомпозиции системы на стадии моделирования;

- повторное использование кода, реализующего сквозную функциональность;

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

Для подтверждения преимуществ АОП была произведена оценка качества ПО с помощью общепринятых стандартизированных метрик (Табл. 2). Предметом сравнения выступал шаблон МУС, реализованный в одном случае на основе ООП, а в другом - на основе АОП.

Табл. 2, Метрические характеристики реализаций шаблона МУС

ООП АОП

Дипломатическая сложность (СС) 4 4

Сложность программы (HDiff) 14 13

Усилия разработчика (IIEff) 2710 1928

Длина программы (HPLen) 165 115

Словарь программы (HPVoc) 26 19

Объем программы (НРУЫ) 717 459

Количество строк кода (LOC) 140 96

Недостаток связности методов (LOCOM1) 0 нет

Недостаток связности методов (LOCOM2) 10 0

Недостаток связности методов (LOCOM3) 16 нет

Количество классов (NOC) 6 5

Общее число операндов в программе (Noprnd) 88 51

Общее число операторов в программе (Noprtr) 77 64

Количество вызываемых удаленных методов (NORM) И 7

Число уникальных операндов программы (NUOprnd) 21 13

Число уникальных операторов программы (NUOprtr) 5 6

Отклик на класс (RFC) 21 17

Взвешенная насыщенность класса (WMPC1) 8 8

Взвешенная насыщенность класса (WMPC2) 9 9

Результаты сравнения подтвердили преимущества АОП в среднем на треть. Полученные результаты анализа позволили выявить необходимость применения новых методов и подходов для разработки ПИ нового поколения.

4. Предложен оригинальный перечень критериев оценки языков АОП, выявленных при изучении нескольких реализаций языков АОП:

- поддержка различных моделей вплетения (CW). Существует три модели: статическая (на стадии компиляции), загрузочная (на стадии загрузки байткода в виртуальную машину) и динамическая (возможность вплетения в работающем приложении);

- отделение функциональности приложения от его структуры (CS): структура приложения должна быть как можно меньше зависима от его аспектно-ориентированной функциональности, и применение аспектов не должно отражаться в исходном коде;

- сохранение целостности приложения (CI): применение аспектного подхода к приложению не должно влиять на его функциональность. Многие реализации АОП используют для своей работы технологии модификации байткода, способные производить некорректные изменения в приложении;

- простота настройки приложения (СС): конфигурация аспектов и ее изменение должны быть просты. Важными факторами является то, в каком виде представлена конфигурация, насколько она разнесена и количество операций на ее изменение в работающей системе;

- производительность (CP): применение аспектов не должно влиять на производительность приложения. Большинство современных реализаций АОП не способны удовлетворить запросам приложений, где производительность является ключевым фактором.

5. На современном этапе АОП его основными реализациями являются языки AspecU (Ц), JBoss АОР (Ij), Spring АОР (Is). Произведен сравнительный анализ реализаций языков АОП по предложенному набору критериев. Для обоснованного выявления оптимальной реализации применен метод анализа иерархий Т. Саати. Иерархия анализа представлена на Рис. 2.

Рис. 2. Иерархия сравнения реализаций АОП.

Единственным критерием, поддающимся объективной оценке, является Ср. Измерение производительности производилось экспериментальным способом и выражалось величиной, обратной ко времени исполнения эталонного исходного кода. Производительность представлена матрицей:

1а 1 / 10733мс 9.32Е-05

ь 1 /25850мс 3.87Е-05

ь 1 /45990мс 2.17Е-05

Е 1.54Е-04

, после нормализации:

0.25 0.14

Для неподдающихся объективной оценке критериев метод Саати требует их попарного сравнения с использованием оценок, значения которых приведены в Табл. 3.

Табл. 3. Значения оценок интенсивности проявления критериев

Оценка Значение

1 Равная важность

5 Существенное превосходство одного над другим

9 Очень сильное превосходство одного над другим

Таким образом, каждый субъективный оцениваемый критерий представляет собой симметричную матрицу, элементом которой а(У) является оценка интенсивности проявления сущности 1 относительно сущности ] по рассматриваемому критерию. Например, значение а(у) = 9 означает очень сильное превосходство 1 над ^ Метод Саати предполагает построчное сложение оценок и нормализацию полученных сумм на всех уровнях сравнений.

Экспертные оценки критериев выявлены автором в процессе работы над прототипами ПИ на основе АОП. Например, для критерия С к матрица будет выглядеть следующим образом:

1а ь Ь Е Е норм

1а 1 1/3 5 6.33 0.34

Ь 3 1 7 11 0.59

ь 1/5 1/7 1 1.34 0.07

I 18.67 1

Т.е. по критерию «Поддержка различных моделей вплетения» лидирует реализация .Шовв АОР с оценкой 0,59.

Для выявления окончательных интегральных оценок необходимо выявить веса критериев. Для этого необходимо произвести попарное сравнение критериев (Табл. 4) и сложить оценки по такому же принципу, как и в предыдущем случае.

с«, с8 С, Сс Ср £ £ норм

с* 1 1/4 1/7 1/2 2 3.89 0.08

С5 4 1 1/4 1/2 2 7.75 0.16

с, 7 4 1 9 5 26 0.54

Сс 2 2 1/9 1 1/3 5.44 0.11

СР 1/2 1/2 1/5 3 1 5.2 0.11

£ 48.28 1

Т.о. веса критериев равны: \у(СЧ<)=0,08 , ш(Ск)=0,16 , уу(С1)=0,54 , \у(Сс)=0,11 , \у(Ср)=0,11.

Окончательное сравнение альтернатив реализаций АОП производится с помощью получения их интегральных оценок. Например, результат оценки ЛЗозэ АОР по критерию «Поддержка различных моделей вплетения» 0,34 будет равен: 0,34 * 0,08 = 0,027. Итоговая матрица сравнения реализаций языков АОП выглядит как:

£

0.34 0.48 0.18

Результаты сравнения графически представлены на Рис. 3.

1А М 15

Рис. 3. Результаты сравнения реализаций АОП

Для дальнейшей работы в данной работе была выбрана реализация ЛЗовБ АОР, являющаяся по оценкам автора оптимальной для разработки ПИПТ. Также в результате проведенной работы был выработан метод выбора реализации АОП.

В четвертой главе предлагается комплекс методов и подходов к проектированию и разработке ПИ с применением АОП, основанный на анализе классических методологий.

С\У С* С, Сс СР

1а 0.027 0.014 0.216 0.015 0.067

Ь 0.047 0.066 0.281 0.063 0.027

и 0.006 0.08 0.043 0.032 0.015

ПСР

шсс

0С1 ВС8 йсю

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

Выделение сквозной функциональности заключается в дополнении стадии анализа отдельной задачей по формированию перечня сквозной функциональности, исходя из общих требований к системе. Задача разделяется на три шага:

1. Выявление функциональности системы и ее структуризация с помощью сценариев использования с ролями «пользователь» и «система» (при необходимости — «подсистема»);

2. Выявление компонентов системы, необходимых для реализации выявленной функциональности системы;

3. Анализ компонентов системы на предмет содержания в них сквозной функциональности и ее последующая структуризация с помощью сценариев использования. В данном случае сценарии использования будут включать роль пользователя и другие роли, представляющие собой выявленные компоненты системы.

Выбор реализации АОП основан на методе, приведенном в третьей главе. Каждая разрабатываемая система обладает уникальными требованиями к платформе и средствам разработки. Следовательно, оценки для каждой системы будут различаться.

Моделирование АОП-систем в виде профайла расширения UML. Предложенный профайл используется для построения диаграмм классов для описания структуры приложения на уровне базовых элементов языка программирования. В случае языка Java базовыми элементами являются классы. Профайл состоит из следующих компонентов:

— ModelElement - базовый элемент моделей UML;

— Classifier - элемент описания поведенческих и структурных свойств;

— ActivityModel - модель логики, выполняемой в аспекте;

— Class - базовая сущность языка ООП - класс;

— Aspect - класс, представляющий собой аспект;

— Aspectize - стереотип вплетения аспектов в классы, содержащий описание точки вплетения (поинткат).

Профайл АОП представлен на Рис. 4.

Cnrc::CluslTlcr

Corc::ActiviiyMo(let

1 I

<<Aspect>> < <Aspectize> >

1 - pomtcut String

1 0 "

Рис. 4. Профайл АОП

Результатом моделирования АОП-системы является выявление перечня базовых элементов, которые необходимо реализовать. В зависимости от назначения и функций системы, перечень базовых элементов в модели может быть разнообразным.

Для спецификации перечня и структуры базовых элементов под требования конкретной задачи разработки портальных ПИ на основе АОП выработан подход к реализации базовых ■}цементов, представляющий собой модель, выраженную в виде набора интерфейсов — АР1 (Рис. 5).

Рис. 5. Диаграмма классов API модели ПИ Каждый из элементов отвечает за отдельную функцию ПИ.

— PortletAspect - класс, определяющий методы, необходимые для реализации в компонентах ПИ. Метод render должен содержать логическую модель аспекта, вызываемую для перерисовки визуального содержания портлета. Метод processAction вызывается портальным контейнером для операций, не приводящих к изменению содержания портлета. Логика аспекта получает доступ к необходимым данным, ассоциированным с конкретным вызовом метода посредством параметра invocation. В частности, invocation несет в себе информацию о параметрах, переданных вызывающим компонентом в методы, для render -

это PortletRequest и PortletResponse, для processAction — ActionRequest и ActionResponse.

- WebComponent - класс, переопределяющий методы, требуемые портлетной спецификацией (интерфейсе Portlet). Метод render переопределен с перенесением логики родительского класса, и именно в него вплетается указание PortletAspect. Родительский метод не вызывается для обхождения вызова метода GenericPortlet.doDispatch, что блокирует его действия по вызову логики, связанной с состоянием и режимом работы.

Дескриптор поставки портального приложения является описанием поведения, которым обладают портлеты. Практически все реализации языков АОП имеют свои собственные дескрипторы, описывающие поведение сущностей и выражающиеся либо в конфигурационных файлах, либо в аннотациях, либо в исходных текстах сущностей. Для избежания повторения конфигурации поведения портлетов в нескольких местах предложен метод автоматизации преобразования конфигурации портальных приложений, а именно, файла portlet.xml, в приемлемый для выбранной реализации языка АОП формат. Для изменения конфигурации АОП в случае JbossAOP требуется отредактировать файл jboss-aop.xml. Для автоматизации данного процесса предлагается преобразование файла настроек портлетов portlet.xml в файл jboss-aop.xml на основе технологии XSLT. Автором был разработан исходный код подобного преобразования.

Метод преобразования конфигурации и подход к реализации базовых элементов сопряжены с рутинной работой программиста, которая наиболее часто становится источником программных дефектов. Для исключения потенциальных ошибок, допускаемых программистом в процессе преобразования конфигурации и реализации базовых элементов, они были автоматизированы в программном комплексе на платформе Eclipse в виде встраиваемых модулей. При работе с файлом портлетной конфигурации portlet.xml пользователю становятся доступны действия Produce JBossAOP Configuration и Generate Classes. Первое действие приводит к автоматической генерации конфигурации АОП (с использованием XSL трансформации), второе — к генерации классов аспектов с соответствующими методами для последующей реализации разработчиками. Контекстное меню при работе в среде Eclipse представлено на Рис. 6.

На этапе тестирования системы применение АОП дает возможность выделить особый

Produce JBossAOP Configuration,

:Génerate Classes

iípi'ugiaxml

Рис. 6: Реализация подходов в среде Eclipse

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

1. Динамическое добавление и удаление тестируемой функциональности, ведущее к прямым временным преимуществам;

2. Применение АОП позволяет без модификации сторонней библиотеки и прозрачно для тестируемой системы эмулировать возникновение любого желаемого исключения при вызове любого метода библиотеки, что априори уменьшает трудоемкость процесса тестирования;

3. Подмена вызовов, недоступных (либо отличающихся своим поведением) во время тестирования служб вызовами фиктивных объектов (Mock objects), позволяют смоделировать среду конечного использования системы без установки существующих в ней служб.

Комплекс шагов предлагаемой методики схематично представлен на Рис. 7.

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

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

Для портального приложения на основе JSR168 выделена сквозная функциональность — режимы работы VIEW, ALTVIEW и EDIT.

Моделирование аспектно-ориентированной системы было выполнено с использованием предложенного оригинального профайла языка UML и использовало предложенный набор базовых элементов. Модель портлета TickerPortlet представлена на Рис. 8.

+ rfir<Uf?(fI-'4»Jt-'!»l FL'ilÜVlRtJL]uybl, г D'jJiJflM' P tr f 11_ J trг P !Г ^ ] I, | - t-l J'llij

+ processActiantaemnRequesl: ¿itionRequesl, actionResponse : AciicnReSDonse) \roid

TjckwPimlet

+ renderiraquest; RenderRequest, response ; Penderttesponse): wd

I orotc55Ailion(actiofiRequu5t AitionRGquasf. actioriRcspafiie . AiliunResponse) vuid

<<aspB«ttgy> <<а5ДВШгг>>

AccessChe ckAspect

TIcMlEdHAtl»««

AccessCtinrieAspecl

TickerAltvlewAMiecl

TtckerVlewAspett

ronleiAspea

-Ä-

+ renderflnvocalion : Methodlnwxation) Object + processAi:uon(mvnrallnn Methoälnvocauori) ■ oojen

Ä rendertreq : RenaerRequest, resp : RenderResponse, comext Ponletcomext): wd # |jrciu!«Ai:tinn(riiq AiilnnRequiHi, геьр AriliinReifmristf, . rwn Рцп'^н'ипп i1) и)10 - gstMoctesO . PcnleiMcdel)

Рис. 8. Модель портлета TickeiPortlel

Система сборки проекта реализована на платформе Ant. Для автоматической генерации конфигурации аспектов был добавлен вызов XSL-преобразования портлетной конфигурации.

При отладке приложения при помощи АОП было получено среднее время на операцию по привязке функциональности к портлету равное 5 секундам.

Сравнение процессов тестирования приложения по классическим и предложенным подходам выявило значительные преимущества последних. Так, процедура добавления и удаления тестируемой функциональности, тестирование обработки исключительных ситуаций и подмена вызовов служб оказались на порядок менее трудоемкими при использовании АОП.

Рассмотрено приложение по доступу к электронной почте, эксплуатируемое компанией DuSystems и построенное на модели портального ПИ в свободной форме.

Рассмотрены три приложения, созданные компанией Gemini Systems с применением предложенных методов и подходов. Так, в приложении ВСР (Business Continuity Portal) был применен подход к выделению наборов интерфейсов для случая спецификации JSR 168. В приложении PRF были использованы подходы выделения сквозной функциональности, сборки проекта и тестирования. В приложении ISG применялась подход к выделению интерфейсов программирования для случая портального приложения в свободной форме, а также подход к выделению сквозной функциональное™, который позволил добиться реализации требований по высокой безопасности приложения.

3. ОСНОВНЫЕ РЕЗУЛЬТАТЫ И ВЫВОДЫ

В диссертационной работе решена научная задача выработки методики разработки ПИПТ, которая позволяет применять АОП. В свою очередь, применение АОП для разработки ПИПТ улучшает качество ПО и решает проблемы существующих подходов, основанных на

концепции ООП.

Основными результатами диссертационной работы являются:

1. Теоретическое обоснование необходимости выработки нового подхода к разработке ПИПТ, основанного на АОП и за счет этого существенно улучшающего их функциональность и процесс разработки.

2. Методика разработки ПИПТ, позволяющая применять АОП и гарантирующая получение на выходе ПИПТ определенного уровня качества.

3. Практическая реализация комплекса шагов предложенной методики в виде автоматизированного комплекса на базе платформы Eclipse.

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

Общее преимущество от применения предложенной методики представлено в Табл. 5.

Табл. 5. Сводная таблица преимуществ от применения АОП, с.

Трудоемкость ООП Трудоемкость АОП Преимущество, %

Отладка исходного кода 43 5 88,37

Тестирование 43 10 76.74

Разработка исходного кода (среднее преимуществ метрических оценок) 32

Общее (среднее) преимущество 65.71

Помимо представленных количественных характеристик, применение предложенных методов и подходов приводит к улучшению функциональности портальных ПИ, пользователям становится доступной гибкая настройка поведения визуальных компонентов — портлетов.

Результаты, полученные в процессе выполнения проектов с использованием разработанной технологии, позволили сделать вывод о работоспособности и эффективности средств и методик разработки ПИ, основанных на концепциях АОП.

4. СПИСОК ПУБЛИКАЦИЙ ПО ТЕМЕ ДИССЕРТАЦИИ

1. Михеев О.И. Аспектное моделирование в UML // Компьютерное моделирование 2005: Труды VI Международной научно-технической конференции. - СПб.: Изд-во Политехи, унта, 2005. - С. 307-309.

2. Михеев О.И. Сравнение характеристик основных языков аспектно-ориентированного программирования // XXXIV неделя науки СПбГПУ: Материалы Всероссийской межвузовской научно-технической конференции студентов и аспирантов. Ч. V. - СПб.: Изд-во Политехи, ун-та, 2006. - С. 84-86.

3. Михеев О.И., Нгуен Д. Практическое применение АОП при разработке

пользовательских интерфейсов на основе Веб-технологий // XXXV неделя науки СПбГПУ: Материалы Всероссийской межвузовской научно-технической конференции студентов и аспирантов. Ч. V. - СПб.: Изд-во Политехи, ун-та, 2007. - С. 56-58.

4. Михеев О.И. Применение аспектно-ориентированного подхода к разработке оконных графических интерфейсов // Научно-технические ведомости СПбГПУ. №3. -СПб.: Изд-во Политехи, ун-та, 2007.-С. 101-106. (из списка ВАК)

5. Иванова Е.Б., Михеев О.И., Нгуен Д.В. Осуществление удаленного доступа к электронным документам с использованием аспектно-ориентнрованного подхода // Научно-технические ведомости СПбГПУ. №3. - СПб.: Изд-во Политехи. Ун-та, 2008. -С. 18-21. (из списка ВАК)

Лицензия ЛР № 020593 от 07.08.97

Подписано в печать 19.02.2009. Формат 60x84/16. Печать цифровая. Усл. печ. л. 1,0. Уч.-изд. л. 1,0. Тираж 100. Заказ 4086b.

Отпечатано с готового оригинал-макета, предоставленного автором, в Цифровом типографском центре Издательства Политехнического университета. 195251, Санкт-Петербург, Политехническая ул., 29. Тел.: (812) 550-40-14 Тел./факс: (812) 297-57-76