Аспектно-ориентированная разработка программного обеспечения

Содержание

Что такое AOSD ?

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

Основы аспектно-ориентированного подхода

Аспектно-ориентированное программирование позволяет выделить сквозную функциональность в отдельные декларации — аспекты. Можно определить функциональность для строго заданных точек выполнения программы JoinPoints (вызов метода, инициация класса, доступ к полю класса и т. д.). В языках, поддерживающих АОП, чаще используются назначения для множества точек — Pointcut. Функциональность в точках определяет программный код, который принято вежливо называть Advice (AspectJ). Таким образом, в пространстве аспектов описывается сквозная функциональность для определенного множества компонентов системы. В самих компонентах представлена лишь бизнес-логика, которую они призваны реализовать. В ходе компиляции программы компоненты связываются с аспектами (Weave).


Что бы лучше понять базисы АОП давайте, вернемся к примеру с выделением аспекта мониторинга производительности. Нам требуется снять показания таймера на входе и на выходе всех методов классов Model, Document, Record, Dispatcher. Итак, мы имеем аспект Logging. Нам потребуется завести к нему Pointcut с перечислением всех требуемых функций. В большинстве языков программирования, поддерживающих АОП для охвата сразу всех методов класса можно использовать специальную маску. Теперь можно описать для этого Pointcut. Создаем Advice на входе в методы из списка Pointcut (Before) и на выходе из них (After). Advice для событий Before, After, Around — наиболее популярны в языках, поддерживающих АОП, но порой доступны и другие события.


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


  • Aspect — определение, некоторого набора сквозной функциональности, нацеленной на конкретную задачу;
  • Pointcut — код применимости аспекта. Отвечает на вопросы где и когда может быть применена функциональность данного аспекта (См. Pic 3)
  • Advice — код функциональности объекта. Непосредственно код функциональности для заданных событий. Другими словами, это то, что будет выполнено для объектов, указанных в Pointcut.

Реализации

* Для C#/VB.NET: * Для Lua:

См. также

Внешние ссылки

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home