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

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

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

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

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

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

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

Автореферат

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

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

003447087

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

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

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

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

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

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

325

Автореферат разослан « .» ёег-сИТ' 2008 г

Ученый секретарь

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

Васильев А В

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

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

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

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

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

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

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

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

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

1.2 Цели и задачи диссертационной работы Главной целью данной диссертации является качественное улучшение ПИ за счет применения новых подходов к их разработке

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

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

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

— доказать связи тенденций развития парадигм программирования и ПИ, а также обосновать необходимость применения АОП в разработках ПИ,

— выработать методики программирования на основе модифицированных, адаптированных к применению АОП подходов,

— разработать прототип среды ПИ портального типа на основе АОП с применением

г

Г

выработанных методик,

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

— реализовать ПИ на основе созданного прототипа среды для подтверждения непротиворечивости выдвинутой гипотезы

1.3 Предметом исследования являются методика разработки графического ПИ на основе портальных технологий

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 Автоматическая генерация конфигурации АОП из портлетной конфигурации

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

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

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

— среда ПИ портального типа, основанная на спецификации JSR168 и АОП,

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

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

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

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

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

1 9 Апробация работы Основные результаты и выводы диссертации были изложены в докладах на следующих научных конференциях «Компьютерное моделирование 2005», «XXXIV неделя науки СПбГПУ», «XXXV неделя науки СПбГПУ», а также в 4 печатных работах

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

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

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

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

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

выбранной проблематики

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

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

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

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

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

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

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

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

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

2. Обосновано применение портальных ПИ на основе сравнения объемов информации,

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

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

Портальные П|

Ьр»*ня обучения

Рис 1 Зависимость скоростей передачи информации

Таким образом, скорость передачи информации представляет собой 8-образную

функцию времени, которая в общем виде задается как

а

Ь+с*е

-кх

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

/1!еП(х) =

'Неб

г К

Ь..г + с„г*е Неб Неб

Порт

Порт

ЬП +сп *е

Порт Порт

Порт

(1)

(2)

(3)

Объемом информации, передаваемым между ПО и пользователем за промежуток времени Д1 = 12 - , является интеграл функции скорости передачи информации на промежутке от ^ до 12 В общем виде Я-образпая функция интегрируется в

ra .ах a*\n(b+c*e ) -—dx =—+----+const (4)

b+c*e~kx b kb

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

a,,rx a,, ,*ln(¿„ ,+с„ .*е в'6 ) а,. ,*1п(&„ - + с„ ,) Неб 1кб * Неб 1кб ' 1кб 4 Heu Неб' _

Ь Неб ^ Неб Ь Неб * 1кбЬ 1кб ^

Порт* ^^ Порт ^ ^ Порт ^^Ilofim * ^ ^ ^ Порт~^ ^ Порт^

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

Итогом проведенного сравнения типов ПИ стало обоснование целесообразности применения портальных ПИ

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

Табл 1 Время одной итерации конфигурации портлета, с

WebSphere Portal JBoss Portal Apache Pluto

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

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

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

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

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

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

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

2. Изучение истории развития методологии разработки ПО выявило наличие

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

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

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

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

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

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

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

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

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

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

ООП АОП

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

Сложность программы (НОгй} 14 13

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

Длина программы (НР1,еп) 165 115

Словарь программы (НРУое) 26 19

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1а 1 / 10733мс 9 32Е-05

Ij 1 /25850мс 3 87Е-05

Is I /45990мс 2 17Е-05

Е 1 54Е-04

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

061 0 25 0 14

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

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

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

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

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

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

Таким образом, каждый субъективный оцениваемый критерий представляет собой симметричную матрицу, элементом которой а(у) является оценка интенсивности проявления

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

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

1а ь ь £ £ норм

1а 1 1/3 5 6 33 0 34

I) 3 1 7 11 0 59

ь 1/5 1/7 1 1 34 0 07

£ 18 67 1

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

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

Табл 4 Веса критериев

С\У С, С, Сг Ср £ £ норм

Сш 1 1/4 1/7 1/2 2 3 89 0 08

С8 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 52 0 11

£ 48 28 1

То веса критериев равны \у(С\»)=0,08 , \у(С5)=0,16 , \у(С])=0,54 , \у(Сс)=0,11 , \у(Ср)=0,11

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

С\у С5 С, Сс СР

1а 0 027 0014 0216 0015 0 067

ь 0 047 0 066 0 281 0 063 0 027

I* 0 006 0 08 0 043 0 032 0015

0 34 0 48 0 18

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

05 04 03 02 0 1 О

IA IJ IS

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

В результате выбрана реализация JBoss АОР, оптимальная для разработки портальных

ПИ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рис 5 Диаграмма классов API модели ПИ

Каждый из элементов отвечает за отдельную функцию ПИ

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

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

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

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

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

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

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

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

Рис б Методика разработки ПИ на основе АОП

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

Результатом выбора реализации языка АОП по предложенному способу стал JBossAOP Для портального приложения на основе JSRI68 выделена сквошая функциональность — режимы работы VIEW, ALTVIEW и EDIT

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

WebComponent

- геп13уг(гециеЫ RendfjrRequyb! rebpjrisy RtridtrFSybpuribt) i"ini

- processActroniactioriRequest ActionPequest actionResponse AclionPesponse) void

ж

TickerPortlet

+ renderirequest RenderRequest response RenderResponse) void t processActioriCactionRccjuest ActionReauest actioriRcspon^e Ac i ionResponse) void

< < < aspftcrTze ~ < < aipreQise > > T?'3?peaj?e:

AccejsCheckAspect

TickerEditAspect AccessConfigAspea

TickerAltviewAspect TickcrViewAspect

+ renderOnvocaiiort MettiodSrrvocation) Object + proeessActlonflnvoeailon Methodinvoeaiiori) Object

# render(reci RenderRequest reso PenderPesponse context RortleiConiext) void

# processAcnon(req ActionRequest resp AttionResponse tonlext PoriletContPHt) void ~ geiModesQ PortletMadell

Рис 7 Модель портлета TicketPortlet

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

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

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

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

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

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

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

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

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

2. Методика для разработки ПИ, основанная на применении АОП

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Лицензия ЛР № 020593 от 07 08 97

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

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

Оглавление автор диссертации — кандидата технических наук Михеев, Олег Игоревич

Введение.

Объект и предмет исследования.

Актуальность работы.

Исследовательская работа.

Степень разработанности выбранной тематики.

Глава 1. Исторический аспект развития ПИ и методологий разработки ПО.

1.1 Краткая история информационных технологий и их роль в развитии общества.

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

1.3 Информационные технологии в процессе взаимодействия человека и компьютера.

1.4 Эволюция ПИ в системе информационных технологий.

1.5 Сравнение эволюции ПИ и методик программирования.

1.6 Постановка цели и задач.

Глава 2. Анализ существующих моделей ПИ.

2.1 Классификация ПИ.

2.1.1 Локальные ПИ.

2.1.2 Веб-интерфейсы.

2.1.3 Портальные ПИ.

2.2 Характеристики ПИ.

2.3 Разновидности портальных пользовательских интерфейсов.

2.3.1 Спецификации портальных серверов приложений.

2.3.2 IBM WebSphere Portal Server.

2.3.3 JBoss Portal Server.

2.3.4 Apache Pluto.

2.4 Анализ подходов к разработке портлетов.

Глава 3. Анализ теоретических аспектов разработки пользовательских интерфейсов.

3.1 Концепции традиционной разработки пользовательских интерфейсов

3.1.1 Основные термины и определения.

3.1.2 Методики программирования.

3.2 Недостатки существующих концепций разработки ПИ.

3.3 Подход к решению поставленной задачи на основе концепции АОП.

3.3.1 Концепции АОП.

3.3.2 Обоснование целесообразности применения АОП для разработки ПИ нового поколения.

3.4 Основные реализации АОП.

3.4.1 JBossAOP.

3.4.2 Spring АОР.

3.4.3 AspectJ.

3.5 Сравнение реализаций АОП.

3.5.1 Выявление критериев сравнения.

3.5.2 Анализ результатов тестирования реализаций АОП.

3.5.3 Выбор оптимальной реализации языка АОП.

3.6 Выводы.

Глава 4. Проектирование и разработка ПИ на основе АОП.

4.1 Подходы к разработке программного обеспечения.

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

4.1.2 Выбор основных методов разработки ПО для поставленной задачи

4.2 Методы проектирования.

4.2.1 Анализ.

4.2.2 Моделирование.

4.2.3 Выделение набора интерфейсов программирования.

4.3 Методы и подходы разработки.

4.3.1 Метод преобразования конфигурации портальных приложений.

4.3.2 Процедура сборки проекта.

4.4 Тестирование.

4.5 Итоговый набор методов и подходов разработки ПИ на основе АОП.

4.6 Автоматизация методов на платформе Eclipse.

4.7 Выводы.

Глава 5. Разработка пользовательского интерфейса на основе АОП.

5.1 Разработка портального приложения на основе спецификации JSR 168.

5.1.1 Этап моделирования.

5.1.2 Этап разработки.

5.1.3 Этап тестирования.

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

5.3 Разработка приложения ВСР.

5.4 Разработка приложения PRF.

5.5 Разработка приложения ISG.

5.6 Выводы.

Введение 2008 год, диссертация по информатике, вычислительной технике и управлению, Михеев, Олег Игоревич

Объект и предмет исследования

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

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

Актуальность работы

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

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

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

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

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

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

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

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

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

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

Исследовательская работа

Развитие методик программирования и технологий взаимодействия пользователя с компьютером является единым целым и отражает общее направление развития информационных технологий. Основной гипотезой данной диссертации является предположение о том, что разработка пользовательских интерфейсов нового поколения, обладающих ожидаемыми от них свойствами, требует применения новой методики программирования — Aspect-Oriented Software Development (AOSD).

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

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

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

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

• обосновать необходимость применения концепций АОП для разработки ПИ нового поколения; в выработать подходы и методы программирования, адаптированные для применения АОП для разработки ПИ нового поколения;

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

• для подтверждения выдвинутой гипотезы реализовать приложение с ПИ нового поколения на основе созданного прототипа среды ПИ;

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

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

Достоверность полученных результатов обусловлена:

• корректным применением теории графов;

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

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

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

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

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

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

В диссертации разработаны методические основы разработки ПИ портального типа на основе АОП. Суть этих результатов такова:

• Предложен оригинальный набор критериев оценки языков АОП;

• Предложен и теоретически обоснован новый подход к проектированию и разработке ПИ на основе АОП;

• Предложен оригинальный подход к моделированию аспектно-ориентированных систем в рамках стандарта унифицированного языка моделирования (UML);

• Разработана новая модель ПИ на основе АОП;

• Разработан программный комплекс на основе платформы Eclipse, позволяющий автоматизировать рутинную работу разработчика и тем самым позволяющий избежать внесения в систему программных дефектов;

• Реализована среда ПИ портального типа, основанная на разработанной модели и демонстрирующая преимущества предложенного подхода к проектированию и разработке ПИ на основе АОП;

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

• среда ПИ портального типа;

• приложение для удаленного доступа к сервисам электронной почты, размещенное по адресу www.dusystems.com/mail:

• серия проектов, выполненных компанией Gemini Systems.

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

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

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

Степень разработанности выбранной тематики

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

Так, достаточно досконально описаны вопросы применения конкретных методик, входящих в наиболее популярные на настоящий момент методологии разработки программного обеспечения. Особое внимание уделяется так называемому экстремальному программированию (Extreme Programming, ХР) и методологии рационального унифицированного процесса — Rational Unified Process (RUP).

Rational Unified Process был разработан компанией Rational в 1998 году. Главный архитектор методологии Филипп Крачтен подробно описывает ее в своей книге «Rational Unified Process, The: An Introduction» [35]. Другая книга, «Rational Unified Process Made Easy: A Practitioner's Guide to the RUP, The» [34] имеет более практическое содержание и нацелена на облегчение труда разработчиков проектов, ведущихся по методологии RUP.

Экстремальное программирования — сравнительно молодая методология, появившаяся в 2000 году в процессе реализации сложного проекта, где Кент Бек был главным архитектором. Его книга «Extreme Programming Explained: Embrace Change» [4], изданная в третьей редакции в 2003 году, является первоисточником данной методологии. В «Практическом руководстве по экстремальному программированию» [64] экстремальное программирование рассмотрено с более практической точки зрения с приведением множества жизненных примеров.

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

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

Так, в «Information Architecture for the World Wide Web» [44] представлена методика по применению технологии информационной архитектуры (ИА) для веб-сайтов, позволяющей представлять информацию пользователю в гораздо более наглядном формате, чем при традиционном подходе. Третье издание, вышедшее в 2006 году, также очень интересно тем, что доработано с учетом новейших тенденций в области дизайна веб-приложений, в частности, присутствует множество примеров представления информации с применением технологии Веб 2.0.

Описание особенностей и теории портальных приложений присутствует в книгах «Web Portals: The New Gateways to Internet Information and Services» [45] и «Proven Portals: Best Practices for Planning, Designing, and Developing Enterprise Portals» [53]. Были изданы многочисленные труды, представляющие собой документацию к конкретным реализациям порталов, например, от «IBM» и «Microsoft». Описанием теории порталов применительно к спецификации порталов JSR 168 служит книга «Java Portlet Specification 1.0» [63], а дополнительным источником информации служит сама спецификация, доступная на сайте корпорации «Sun Microsystems». Дополнительную информацию можно почерпнуть в сети Интернет, где опубликован ряд статей на предмет портальных технологий и разработки портальных приложений [33][59].

Книга «Java Swing» [15] описывает использование библиотеки Swing для разработки локальных пользовательских интерфейсов. Несмотря на то, что предметом диссертации и является разработка портальных ПИ, методики разработки ПИ любых типов имеют много общего, и было бы неразумно упустить возможность ознакомиться с ними.

Намного богаче выглядит перечень литературы на предмет парадигм программирования. Объектно-ориентированное программирование, ввиду его непревзойденной популярности, описывается в тысячах книг. Базовые принципы ООП описаны одним из его идеологов Г. Бучем в книге «Object-Oriented Analysis and Design with Applications» [8]. Также концепции ООП применительно к самому популярному ООП языку С++ описаны в книге его изобретателя Б. Страуструпа «The Design and Evolution of С++» [8].

В более академичном формате концепции ООП представлены в учебных пособиях. Так, учебное пособие «Основные концепции и механизмы объектно-ориентированного программирования» [79] Е. В. Пышкина рассматривает основные понятия и механизмы, лежащие в основе ООП. Другое учебное пособие «Моделирование систем. Объектно-ориентированный подход» [71] под авторством Ю. Б. Колесова и Ю. Б. Сениченкова дополняет принципы ООП необходимой информацией по технологии практического моделирования объектно-ориентированных систем. Основным языком моделирования объектно-ориентированных систем считается язык UML, который наиболее подробно описан его авторами (Буч Г., Якобсон А., Рамбо Дж.) в трудах «UML» [67] и «UML: руководство пользователя» [66].

Гораздо меньше трудов издано по альтернативным парадигмам, в частности, по интересующей нас аспектно-ориентированной. Статья главного идеолога методологии RUP и одного из авторов языка UML А. Якобсона «The Case for Aspects, Part 1» [28] показывает актуальность и перспективы аспектно-ориентированного подхода к разработкам ПО, а сборник научных трудов и статей «Aspect-Oriented Software Development» [20] под редакцией Р. Филмана, в свою очередь, наиболее полно отражает современное состояние методологии разработки аспектно-ориентированных систем.

Научно-исследовательские работы в области АОП публикуются и отечественными авторами. Так, В.О. Сафонов, яркий представитель адептов АОП, в своем труде «Using Aspect Oriented Programming for Trustworthy Software Development» [52] рассказывает о преимуществах АОП при разработке т.н. «надежного» ПО, и представляет свою реализацию языка АОП Aspect.NET.

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

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

5.6 Выводы

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

В работе рассмотрены различные существующие типы ПИ и методики их разработки, указаны их основные достоинства и недостатки.

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

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

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

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

• Новый подход к проектированию АОП-систем, который заключается в применении расширения языка моделирования UML с помощью профайлов, входящих в стандарт UML.

• Формальная модель ПИ на основе АОП, представляющая собой набор интерфейсов программирования, необходимых для расширения компонентами ПИ. Представлены варианты модели как для портальных ПИ, разрабатывающихся по стандарту JSR 168, так и для портальных ПИ в свободной форме.

• Методика преобразования портлетной конфигурации в конфигурацию АОП на основе XSL-преобразования, позволяющая избежать двойного определения поведения портлетов.

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

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

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

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

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

Библиография Михеев, Олег Игоревич, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. Aldawud О., Elrad Т., Bader A. A UML Profile for Aspect Oriented Development Электронный ресурс., 2003. Режим доступа:http://lgl.epfl.ch/workshops/aosd2003/papers/AldawudAOSDUMLProfile.pdf

2. Alexander С., Silverstein М., Ishikawa S. A Pattern Language: Towns, Buildings, Construction. Oxford University Press, 1977. -1216c.- ISBN 0-19-501919-9

3. Bates В., Freeman E., Freeman E., Sierra K. Head First Design Patterns. -O'Reilly, 2004. 676 c. - ISBN 0-596-00712-4

4. Beck K. Extreme Programming Explained: Embrace Change. Addison Wesley Professional, 2004. - 224 c. - ISBN 0-321-27865-8

5. Boehm В., Gray Т., Seewaldt T. Prototyping vs. specifying: A multi-project experiment // Proceedings of the 7th international conference on Software engineering. IEEE Press, 1984.

6. Boehm В., Turner R. Balancing Agility and Discipline: A Guide for the Perplexed. -Addison Wesley Professional, 2003. 304 c. - ISBN 0-321-18612-5

7. Bond M., Haywood D., Law D., Longshaw A., Roxburgh P. Sams Teach Yourself J2EE in 21 Days. Sams, 2004. - 1032 c. - ISBN 0-672-32558-6

8. Booch G. et al. Object-Oriented Analysis and Design with Applications. Addison Wesley Professional, 2007. - 720 c. - ISBN 0-201-89551-X

9. Booch G., Rumbaugh J., Jacobson I. Unified Modeling Language User Guide, The. -Addison Wesley Professional, 2005. 496 c. - ISBN 0-321-26797-4

10. Boring E.G. Psychology A Factual Textbook. - Read Books, 2007. - 568 c. -ISBN 9-781-40674750-8

11. Brooks F.Jr. Mythical Man-Month, The: Essays on Software Engineering, Anniversary Edition. Addison Wesley Professional, 1995. — 336 c. - ISBN 0-20183595-9

12. Card S.K, Moran T.P., Newell A. The Psychology of Human-computer Interaction. Lawrence ErlbaumAssociates, 1983. - 472 c. - ISBN 0898598591

13. Chandra A. et al Architecting Portal Solutions. IBM Press, 2003. - 496 c. -ISBN 0-7384-9864-5

14. Chidamber S., Kemerer C. A Metrics Suite for Object Oriented Design // IEEE Transactions on Software Engineering. IEEE Press, 1994.

15. Cole В., Eckstein R., Elliott J., Loy M., Wood D. Java Swing. O'Reilly, 1998. -1278 c. - ISBN 0-596-00408-7

16. Collins D. Designing Object-Oriented User Interfaces. — Benjamin/Cummings, 1995. 608 c. - ISBN 0-805-35350-X

17. Committee on the Fundamentals of Computer Science Computer Science: Reflections on the Field, Reflections from the Field. CSTB Publications, 2004. — 216 c. - ISBN 0-309-09429-1

18. Constantine L. Peopleware Papers: Notes on the Human Side of Software, The. — Prentice Hall, 2001. 368 c. - ISBN 0-13-060123-3

19. Englebart D., English W. A research center for augmenting human intellect // AFIPS Conference Proceedings of the 1968 Fall Joint Computer Conference. -, 1968.

20. Filman R., Elrad Т., Clarke S., Aksit M. Aspect-Oriented Software Development. Addison-Wesley, 2005. - 395-410 c. - ISBN 0-321-21976-7

21. Fleury M., Stark S., Richards N. JBoss 4.0 The Official Guide. Sams, 2005. -648 c. - ISBN 0-672-32648-5

22. Fowler M., Rice D., Foemmel M., Hieatt E., Mee R., Stafford R. Patterns of Enterprise Application Architecture. Addison Wesley Professional, 2002. - 560 c. -ISBN 0-321-12742-0

23. Futrell R., Shafer D., Safer L. Quality Software Project Management. Prentice Hall, 2002. - 1680 c. - ISBN 0-13-091297-2

24. Groher I., Schulze S. Generating Aspect Code from UML Models Электронный ресурс., 2003. Режим доступа:http://lgl.epfl.ch/workshops/aosd2003/papers/Groher-AspectCodeFromUML.pdf

25. Herrmann S. Composable Designs with UFA Электронный ресурс., 2002.

26. Режим доступа: http://swt.cs.tu-berlin.de/~stephan/publications/UFA.pdf

27. Holdener А.Т. Ill Ajax: The Definitive Guide. O'Reilly, 2007. - 656 c. - ISBN 0-596-52838-8

28. Holzner S. Ant: The Definitive Guide. O'Reilly, 2005. - 334 c. - ISBN 0-59600609-8

29. Jacobson I. The Case for Aspects, Part 1 Электронный ресурс., 2003. — Режим доступа: http://www.jaczone.com/papers/10sd.Jacobson32-37.pdf

30. Jacobson I., Ng P. Aspect-Oriented Software Development with Use Cases. -Addison Wesley Professional, 2004. 464 c. - ISBN 0-321-26888-1

31. Jayaswal В., PattonP. Design for Trustworthy Software: Tools, Techniques, and Methodology of Developing Robust Software. Prentice Hall, 2006. - 840 c. - ISBN 0-13-187250-8

32. Kan S. Metrics and Models in Software Quality Engineering. — Addison Wesley Professional, 2002. 560 c. - ISBN 0-201-72915-6

33. Kapur D., Musser D., Stepanov A. Tecton, A Language for Manipulating Generic Objects Электронный ресурс., 1981. Режим доступа: http://www.stepanovpapers.com/Tecton.pdf

34. Klaene М. Understanding the Java Portlet Specification Электронный ресурс., 1995. — Режим доступа: http://www.developer.com/java/web/article.php/3366111

35. Kroll P., Kruchten P. Rational Unified Process Made Easy: A Practitioner's Guide to the RUP, The. Addison Wesley Professional, 2003. - c. - ISBN 0-321-16609-4

36. Kruchten P. Rational Unified Process, The: An Introduction. Addison Wesley Professional, 2003. - 336 c. - ISBN 0-321-19770-4

37. Linger R., Hausler P. The Journey to Zero Defects with Cleanroom Software Engineering // Creativity!. -, 1992.

38. Linwood J., Minter D. Building Portals with the Java Portlet API. Apress, 2004. - c.-ISBN 1-59059-284-0

39. Lopes С. AOP: a historical perspective (what's in a name?) // Aspect-Oriented Software Development. —, 2005.

40. Mangano S. XSLT Cookbook. O'Reilly, 2005. -11A c. - ISBN 0-596-00974-7

41. Massol V., O'Brien T. Maven: A Developer's Notebook. O'Reilly, 2005. - 224 c. -ISBN 0-596-00750-7

42. McCabe T. A Complexity Measure // IEEE TRANSACTIONS ON SOFTWARE ENGINEERING. IEEE Press, 1976.

43. McConnell S. Code Complete, Second Edition. Microsoft Press, 2004. - 960 c. -ISBN 0-7356-1967-0

44. Monnox A. Rapid J2EE Development: An Adaptive Foundation for Enterprise Applications. Prentice Hall, 2005. - 432 c. - ISBN 0-13-147220-8

45. Morville P., Rosenfeld L. Information Architecture for the World Wide Web. -O'Reilly, 2006. 456 c. - ISBN 0-596-52734-9

46. Mullins C. DB2 Developer's Guide. Sams, 2004. - 1512 c. - ISBN 0-67232613-2

47. Nathan A., Lehenbauer D. Windows Presentation Foundation Unleashed. Sams, 2006. - 656 c. - ISBN 0-672-32891-7

48. Osgi Alliance OSGi Service Platform. IOS Press, 2003. - 604 c. - ISBN 9781586033118

49. Pedersen S. Maximize use of unit testing with JBoss АОР Электронный ресурс., 2004. Режим доступа: http://folk.uio.no/staalep/aop/testing.html

50. Rashid A., Sawyer P., Moreira A., Araujo J. Early Aspects: A Model for Aspect-Oriented Requirements Engineering // IEEE Joint International Requirements Engineering Conference Proceedings. — IEEE Computer Society Press, 2002.

51. Raymond E.S. Art of Unix Programming, The. Addison Wesley Professional, 2003. - 560 c. - ISBN 0-13-142901-9

52. Rodriguez J. et al. IBM WebSphere Portal V5 A Guide for Portlet Application Development. IBM Press, 2004. - 570 c. - ISBN 0-7384-9851-3

53. Safonov V.O. Using Aspect Oriented Programming for Trustworthy Software Development. WileyBlackwell, 2008. - 338 c. - ISBN 0-470-13817-3

54. Sullivan D. Proven Portals: Best Practices for Planning, Designing, and

55. Developing Enterprise Portals. Addison Wesley Professional, 2003. - 224 c. -ISBN 0-321-12520-7

56. Suzuki J., Yamamoto Y. Extending UML with Aspects:Aspect Support in the Design Phase Электронный ресурс., 1999. — Режим доступа: http://www.cs.umb.edu/~jxs/pub/ecoop99.pdf

57. Tatnall A. Web Portals: The New Gateways to Internet Information and Services.- Idea Group, 2004. 380 c. - ISBN 1-59140-438-X

58. Unhelkar B. Process Quality Assurance for UML-Based Projects. — Addison Wesley Professional, 2002. 432 c. - ISBN 0-201-75821-0

59. Vinju J., Kam K. The effect of Ajax on performanceand usability in web environments Электронный ресурс., 2006. Режим доступа: http://homepages.cwi.nl/~paulkythesesMasterSoftwareEngineering/2006/YouriOpTR oodt.pdf

60. Walters E. Essential Guide to Computing: The Story of Information Technology, The. Prentice Hall, 2000. - 528 c. - ISBN 0-13-019469-7

61. Ziebold G., Sum M. Best Practices for Applying Ajax to JSR 168 Portlets Электронный ресурс., 2007. — Режим доступа:http://developers.sun.com/portalserver/reference/techart/ajax-portlets.html

62. Xerox PARC Электронный ресурс., 2007. Режим доступа: http://en.wikipedia.org/wiki/XeroxPaloAltoResearchCenter

63. Open Source Portals in Java Электронный ресурс., 2007. — Режим доступа: http://java-source.net/open-source/portals

64. User Interface Электронный ресурс., 2007. — Режим доступа: http://en.wikipedia.org/wiki/Userinterface

65. Java Portlet Specification 1.0 Электронный ресурс., 2003. — Режим доступа: http://jcp.org/abouUava/communityprocess/final/jsrl68/index.html

66. Астелс Д., Миллер Г., Новак М. Практическое руководство по экстремальному программированию. — М.: Издательский дом "Вильяме", 2002.- 320 с. ISBN 5-8459-0329-7

67. Бордовский Г.А., Извозчиков В.А., Исаев Ю.В., Морозов В.В. Информатика в понятиях и терминах. М.: Просвещение, 1991. - 208 с. - ISBN 5-09-002694-7

68. Буч Г., Рамбо Дж., Джекобсон A. UML: руководство пользователя. — М.: ДМК, 2000. 432 с. - ISBN 5-93700-009-9

69. Буч Г., Якобсон А., Рамбо Дж. UML: 2-е издание. СПб: Изд-во "Питер", 2006. - с. - ISBN 5-469-00599-2

70. Винер Н. Кибернетика, или Управление и связь в животном и машине. — М.: Наука, 1983. 344 с. - ISBN

71. Дейтел Х.М., Дейтел П.Дж., Сантри С.И. Технологии программирования на Java 2: Книга 1. -М.: ООО Бином-Пресс, 2003. 560 с. - ISBN 5-9518-0017-Х

72. Колдовский В. Разработка ПО: метрики программных проектов Электронный ресурс., 2007. Режим доступа: http://itc.ua/article.phtml? ID=27774

73. Колесов Ю.Б., Сениченков Ю.Б. Моделирование систем. Объектно-ориентированный подход. СПб.: БХВ-Петербург, 2006. - 192 с. - ISBN 594157-579-3

74. Котляров В.П. Технологии программирования. Основы современного тестирования программного обеспечения, разработанного на С#. — Изд-во СПбГПУ, 2004. 168 с. - ISBN 5-7422-0576-7

75. Михеев О.И. Применение аспектно-ориентированного подхода к разработке оконных графических интерфейсов // Научно-технические ведомости СПбГПУ. СПб.: Изд-во СПбГПУ, 2007.

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

77. Михеев О.И. Сравнение характеристик основных языков аспектно-ориентированного программирования II XXXIV неделя науки СПбГПУ. Изд-во СПбГПУ, 2006.

78. Михеев О.И. Практическое применение АОП при разработкепользовательских интерфейсов на основе Веб-технологий // XXXV неделя науки СпбГПУ. -Изд-во СПбГПУ, 2007.

79. Остерн М. Обобщенное программирование и STL. — Невский диалект, 2004. 544 с. - ISBN 5-7940-0119-4

80. Павлов В. Анализ вариантов применения аспектно-ориентированного подхода при разработке программных систем Электронный ресурс., 2003. — Режим доступа: http://www.javable.eom/columns/aop/workshop/01/index.pdf

81. Пышкин Е.В. Основные концепции и механизмы объектно-ориентированного программирования. СПб: БХВ-Петербург, 2005. — 640 с. -ISBN 5-94157-554-8

82. Раскин Д. Интерфейс: новые направления в проектировании компьютерных систем. СПю: Символ-Плюс, 2004. - 272 с. - ISBN 5-93286-030-8

83. Рейволд Б.У. Универсум информации: Жизнь и деятельность Поля Отле. -М.: Книга, 1976. 401 с. - ISBN

84. Саати Т. Принятие решений. Метод анализа иерархий. — М.: Радио и связь, 1993.-316 с. ISBN 5-256-00443-3

85. Фуксман A.JI. Технологические аспекты создания программных систем. — М.: Статистика, 1979. 184 с. - ISBN

86. Черноруцкий И.Г. Методы оптимизации и принятия решений. — СПб.: Изд-во Лань, 2001.-384 с. ISBN 5-8114-0387-9

87. Шилейко A.B., Шилейко Т.И. Беседы об информатике. — М.: Мол. гвардия, 1989. 287 с. - ISBN 5-235-00496-51. Список аббревиатур

88. AOSD (Aspect-Oriented Software Development) — разработка аспектно-ориентированного ПО.

89. AOUI (Aspect-Oriented User Interface) аспектно-ориентированный пользовательский интерфейс.

90. API (Application Programming Interface) — программный интерфейс приложения.

91. CLI (Command Line Interface) — ПИ командной строки.

92. GL (Generation Language) — поколение языка.

93. GUI (Graphical User Interface) графический ПИ.

94. HTML (HyperText Markup Language) язык разметки гипертекста.

95. HTTP (HyperText Transfer Protocol) протокол передачи гипертекста.

96. EE (Institute of Electrical and Electronics Engineers) — институт электро- и электронной инженерии. Создан в 1963 в США.

97. O (International Organization for Standardization) — международная организация по стандартизации, созданная в 1947 году.

98. Java ЕЕ (Java Platform, Enterprise Edition, до версии 5.0 — Java 2 Enterprise Edition или J2EE) — набор спецификаций и соответствующей документации для языка Java, описывающей архитектуру серверной платформы для задач средних и крупных предприятий.

99. JCP (Java Community Process) — процесс сообщества Java.

100. JSR (Java Specification Request) запрос на спецификацию Java.

101. C (Lines Of Code) — количество строк исходного кода.

102. COM (Lack Of Cohesion Of Methods) — недостаток единства методов.

103. MVC (Model-View-Controller) модель-вид-контроллер.

104. NORM (Number Of Remote Methods) — количество дистанционных методов. ООШ (Object-Oriented User Interface) — объектно-ориентированный ПИ. RFC (Response For Class) отклик на класс.

105. RUP (Rational Unified Process) рациональный унифицированный процесс.

106. STL (Standard Template Library) — библиотека стандартных шаблонов.

107. ТСРЯР — набор сетевых протоколов, на которых базируется Интернет. Название образовано из аббревиатур двух базовых протоколов — TCP (Transmission Control Protocol ) и IP (Internet Protocol)

108. UML (Unified Modeling Language) унифицированный язык моделирования.

109. URI (Universal Resource Identifier) — универсальный идентификатор ресурса.

110. WPMC (Weighted Methods Per Class) — взвешенные методы на класс.

111. ХР (eXtreme Programming) — экстремальное программирование.

112. АОП — Аспектно-Ориентированное Программирование (Aspect-Oriented Programming, АОР) — парадигма программирования, основанная на идее разделения функциональности, особенно сквозной функциональности, для улучшения разбиения программы на модули.

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

114. ИА Информационная архитектура (Information Architecture, IA) — совокупность методов и приемов структурирования информации (знаний или данных).

115. ПИ пользовательский интерфейс.

116. ПО — программное обеспечение.

117. УДК — универсальная десятичная классификация.