МГТУГА

Категории раздела

История воздухоплавания [31]
Системное программное обеспечение [55]
Сети 3-4 курс [41]
Методы и средства защиты информации [17]
Вычислительный системы [42]
про САПР [41]
Безопасность жизнедеятельности. БЖД. [46]
Интернет-технологии ГА [49]

Статистика


Онлайн всего: 4
Гостей: 4
Пользователей: 0

Форма входа

Каталог статей

Главная » Статьи » Интернет-технологии ГА

65.Основные концепции АОП
65.Основные концепции АОП
Аспектно-ориентированный подход
рассматривает программную систему как
набор модулей, каждый из которых
отражает определенный аспект — цель,
особенность функционирования системы.
Набор модулей, образующих программу,
зависит от требований к программе,
особенностей ее предметной области.
Наряду с функциональными требованиями
к программе предъявляются и
общесистемные требования, например:
целостности транзакций, авторизованного
доступа к данным, ведения журнала
событий и т. д. При проектировании
программной системы разработчик
выбирает модули так, чтобы каждый из
них реализовывал определенное
функциональное требование к системе.
Однако реализация некоторых требований
к программе зачастую не может быть
локализована в отдельном модуле в
рамках процедурного или объектно-
ориентированного подхода. В результате
код, отражающий такие аспекты
функционирования системы, будет
встречаться в нескольких различных
модулях. Традиционные парадигмы
программирования используют при
проектировании программы
функциональную декомпозицию и не
позволяют локализовать сквозную
функциональность в отдельных модулях.
Необходимость реализации сквозной
функциональности имеющимися
средствами ведет к тому, что некоторый
компонент содержит код, отражающий
множество ортогональных требований к
системе. Это делает такой модуль
узкоспециализированным, ухудшает
возможности его повторного
использования и в некоторых случаях
приводит к дублированию кода. В свою
очередь, это вызывает повышение
вероятности внесения ошибок, увеличение
времени отладки, снижает качество
программы и в большой степени
затрудняет ее сопровождение. Аспектно-
ориентированный подход в некоторых
случаях позволяет избежать описанных
проблем и улучшить общий дизайн
системы, обеспечивая возможность
локализации сквозной функциональности
в специальных модулях — аспектах.
AspectJ как одна из реализаций АОП
АОП можно поддерживать в рамках уже
существующих языков. Так, в частности,
исследовательский центр Xerox PARC
разработал систему AspectJ,
поддерживающую АОП в рамках языка
Java. Этот пакет встраивается в такие
системы разработки, как Eclipse, Sun ONE
Studio, Forte 4J и Borland JBuilder. В
данной работе AspectJ был выбран из-за
того, что данная реализация АОП обладает
наиболее широкими возможностями.
AspectJ — это простое и практическое
расширение языка Java, которое добавляет
к Java возможности предоставляемые
АОП. Пакет AspectJ состоит из
компилятора (ajc), отладчика (ajdb), и
генератора документации (ajdoc).
Поскольку AspectJ является расширением
Java, то любая программа, написанная на
Java, будет правильной с точки зрения
семантики AspectJ. Компилятор AspectJ
выдает байт-код совместимый с
виртуальной машиной Java. Поскольку в
качестве базового языка для AspectJ был
выбран язык Java, то он унаследовал от
Java все преимущества и спроектирован
таким образом, что будет легко понятен
разработчикам Java. Добавленные
расширения касаются в основном
способов задания правил интеграции
аспектов и java-объектов. Данные правила
выражаются в ключевых понятиях
AspectJ:
 JoinPoint — строго определенная точка
выполнения программы,
ассоциированная с контекстом
выполнения (вызов метода,
конструктора, доступ к полю класса,
обработчик исключения, и т.д.)
 Pointcut — набор (срез) точек JoinPoint
удовлетворяющих заданному условию.
 Advice — набор инструкций языка java,
выполняемых до, после или вместо
каждой из точек выполнения (JoinPoint),
входящих в заданный срез (Pointcut)
 Aspect — основная единица
модульности AspectJ. В аспектах
задаются срезы точек выполнения
(Pointcut) и инструкции, которые
выполняются в точках выполнения
(Advice)
 Introduction — способность аспекта
изменять структуру Java-класса путем
добавления новых полей и методов, так
и иерархию класса.
Pointcut и Advice определяют правила
интеграции. Аспект — единица,
напоминающая класс в ООП, соединяет
элементы pointcut и элементы advice
вместе, и формирует модуль на срезе
системы.
Категория: Интернет-технологии ГА | Добавил: mgtuga (28.12.2010)
Просмотров: 852 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:

Поиск

Дисциплины