Презентация, доклад по информатике на тему: Аспектно-ориентированное программирование

Аспектно-ориентированное программирование (АОП) представляет собой одну из концепций программирования, которая является дальнейшим развитием процедурного и объектно-ориентированного программирования (ООП). Эта методология призвана снизить время, стоимость и сложность разработки ПО. В современном ПО, как привило, можно выделить определенные

Слайд 1Аспектно-ориентированное программирование Канарейкин А. И.

Аспектно-ориентированное программирование  Канарейкин А. И.

Слайд 2Аспектно-ориентированное программирование (АОП) представляет собой одну из концепций программирования, которая является

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


Аспектно-ориентированное программирование (АОП) представляет собой одну из концепций программирования, которая является дальнейшим развитием процедурного и объектно-ориентированного программирования

Слайд 3История
Грегор Кикзэйлс и коллеги в ксероксе PARC развил явное понятие AOP

и следовал за этим с расширением AspectJ AOP на Яву. Исследовательская группа IBM преследовала подход инструмента по языковому подходу дизайна и в 2001 предложила Hyper/J и Окружающую среду Манипуляции Беспокойства, которые не видели широкое использование. Журнал изменений EmacsLisp добавил AOP связанный кодекс в версии 19.28. Примеры в этой статье используют AspectJ, поскольку это - наиболее широко известный язык AOP.

Microsoft Transaction Server, как полагают, является первым основным применением AOP, сопровождаемого Предприятием JavaBean.
ИсторияГрегор Кикзэйлс и коллеги в ксероксе PARC развил явное понятие AOP и следовал за этим с расширением

Слайд 4По оценкам специалистов, около 70% времени в проектах тратится на сопровождение

и внесение изменений в готовый программный код. Поэтому в ближайшей перспективе роль АОП и подобных трансформационных подходов становится достаточно важной.
АОП предполагает наличие языковых средств, позволяющих выделять сквозную функциональность в отдельные модули. Это позволяет упрощать работу (отладку, модифицирование, документирование и т.д.) с компонентами программной системы и снижать сложность системы в целом. Здесь и далее под модулем (компонентом) понимается некоторая четко выраженная структурная единица программы — процедура, функция, метод, класс или пакет.
Как правило, любая программная система состоит из основной (предметно-ориентированной) и системной частей. Например, ядро системы обработки кредитных карт предназначено для работы с платежами, тогда как функциональность системного уровня предназначена для ведения журнала событий, целостности транзакций, авторизации, безопасности, производительности и т.д. Большинство подобных частей системы, известных как сквозная функциональность, затрагивает множество основных предметно-ориентированных модулей. Можно рассматривать сложную программную систему как комбинацию модулей, каждый из которых включает в себя, кроме бизнес-логики, часть сквозной функциональности из набора требований к системе.
По оценкам специалистов, около 70% времени в проектах тратится на сопровождение и внесение изменений в готовый программный

Слайд 5Основные понятия АОП:
Аспект (англ. aspect) — модуль или класс, реализующий сквозную функциональность. Аспект изменяет

поведение остального кода, применяя совет в точках соединения, определённых некоторым срезом.
Совет (англ. advice) — средство оформления кода, который должен быть вызван из точки соединения. Совет может быть выполнен до, после или вместо точки соединения.
Точка соединения (англ. join point) — точка в выполняемой программе, где следует применить совет. Многие реализации АОП позволяют использовать вызовы методов и обращения к полям объекта в качестве точек соединения.
Срез (англ. pointcut) — набор точек соединения. Срез определяет, подходит ли данная точка соединения к данному совету. Самые удобные реализации АОП используют для определения срезов синтаксис основного языка (например, в AspectJ применяются Java-сигнатуры) и позволяют их повторное использование с помощью переименования и комбинирования.
Внедрение (англ. introduction, введение) — изменение структуры класса и/или изменение иерархии наследования для добавления функциональности аспекта в инородный код. Обычно реализуется с помощью некоторого метаобъектного протокола

Основные понятия АОП:Аспект (англ. aspect) — модуль или класс, реализующий сквозную функциональность. Аспект изменяет поведение остального кода, применяя совет в точках соединения, определённых

Слайд 6Основные термины АОП:
JoinPoint — строго определенная точка выполнения программы, ассоциированная с

контекстом выполнения (вызов метода, конструктора, доступ к полю класса, обработчик исключения, и т.д.).
Pointcut — набор (срез) точек JoinPoint удовлетворяющих заданному условию.
Advice — набор инструкций языка программирования, выполняемых до, после или вместо каждой из точек выполнения (JoinPoint), входящих в заданный срез (Pointcut).
Aspect — основная единица модульности в АОП. В аспектах задаются срезы точек выполнения (Pointcut) и инструкции, которые выполняются в точках выполнения (Advice).
Introduction (Mix-in) — способность аспекта изменять структуру класса путем добавления новых полей и методов, так и иерархию класса.
Pointcut и Advice определяют правила интеграции. Аспект — единица, напоминающая класс в ООП, она соединяет элементы pointcut и элементы advice вместе, и формирует модуль на срезе системы.
Weaving – процедура привязки Аспектов к загружаемым классам. Различается привязка на этапе компиляции (или посткомпиляции/постпроцессор) – offline weaving, и непосредственно в момент загрузки класса (class loader’ом) – так называемый on-line weaving.
Основные термины АОП:JoinPoint — строго определенная точка выполнения программы, ассоциированная с контекстом выполнения (вызов метода, конструктора, доступ

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

на сегодняшний день для платформы Java являются:

AspectJ (http://eclipse.org/aspectj/)
Aspekt Werkz (http://aspectwerkz.codehaus.org/)
Jboss AOP (http://www.jboss.com/products/aop)
Spring Framework (http://www.springframework.org/)
Существует ряд продуктов, которые позволяют использовать АОП на практике. Наиболее распространёнными на сегодняшний день для платформы Java

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

библиотека:
Языки Структуры.NET (C# / VB.NET)
ActionScript
Ада
AutoHotkey
C/C ++
КОБОЛ
Структуры Цели-C Какао
ColdFusion
Язык Common LISP
Дельфи
Призма Дельфи
e (IEEE 1647)
Шепелявость Emacs
Отличный
Хаскелл
Ява
AspectJ
JavaScript
Logtalk
Lua
Matlab
ML
Perl
PHP
Пролог
Питон
Ракетка
Рубин
Писк Smalltalk
UML 2.0
XML
Внедрения Следующие языки программирования осуществили AOP, в пределах языка, или как внешняя библиотека:Языки Структуры.NET (C# / VB.NET)ActionScriptАдаAutoHotkeyC/C

Что такое shareslide.ru?

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


Для правообладателей

Яндекс.Метрика

Обратная связь

Email: Нажмите что бы посмотреть