Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


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

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

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

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

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

Содержание

АОП и сквозная функциональностьАспектно-ориентированное программирование (АОП) — новый перспективный подход к разработке программ. Суть данного подхода — поддержка разработки и модификации сквозной функциональности (cross-cutting concerns) в больших программных системах.
Аспектно - ориентированное программированиеЛекция №1 АОП и сквозная функциональностьАспектно-ориентированное программирование (АОП) — новый перспективный подход к разработке modular concernПри проектировании, реализации и модификации любой программы ее архитектура полностью или cross-cutting concernsКак показывает анализ архитектуры программных систем, существует также сквозная функциональность (cross-cutting Типичные классы задач, решаемые АОПТипичные классы задач, решение которых требует реализации сквозной Основные понятия АОПТочка соединения (joinpoint) — точка в программе, где существует возможность Различные типы Аспектно-Ориентированного Программирования Существует два различных способа реализации аспектно-ориентированного программирования: статический Статическое АОППри статической реализации аспектно-ориентированного программирования связывание является отдельным шагом в процессе Динамическое АОППродукты, реализующие динамический вариант АОП отличается от статического тем, что процесс Инструменты АОПAspectJJBoss Aspect.NETSpring Framework Исключения и их обработкаИсключение - это проблема(ошибка) возникающая во время выполнения программы. Синтаксис исключенийtry - данное ключевое слово используется для отметки начала блока кода, Пример выброса исключения Конструкция «поимки» исключения Модифицированный пример finaly Иерархия исключений Иерархия исключений ErrorError - это подкласс, который показывает серьезные проблемы возникающие во Иерархия исключений ExceptionException. Эта иерархия также разделяется на две ветви: исключения, производные два типа исключений: checked и unchecked1. Checked исключения, это те, которые должны Создание собственных исключений Обработка нескольких исключений
Слайды презентации

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

АОП и сквозная функциональностьАспектно-ориентированное программирование (АОП) — новый перспективный подход к

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

поддержка разработки и модификации сквозной функциональности (cross-cutting concerns) в больших программных системах.


Слайд 3 modular concern
При проектировании, реализации и модификации любой программы

modular concernПри проектировании, реализации и модификации любой программы ее архитектура полностью

ее архитектура полностью или частично описывается в виде иерархии

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

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

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

Такого рода функциональность в программе, реализация которой выразима в виде одного модуля или взаимосвязанной совокупности модулей, будем называть модульной функциональностью (modular concern).

Слайд 4 cross-cutting concerns
Как показывает анализ архитектуры программных систем, существует

cross-cutting concernsКак показывает анализ архитектуры программных систем, существует также сквозная функциональность

также сквозная функциональность (cross-cutting concerns). Данное понятие объединяет такие

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

Слайд 5 Типичные классы задач, решаемые АОП
Типичные классы задач, решение

Типичные классы задач, решаемые АОПТипичные классы задач, решение которых требует реализации

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

безопасному программированию (trustworthy computing)
безопасность (security) — аутентификация пользователей и программ; авторизация (проверка полномочий кода или пользователя для выполнения тех или иных действий); криптографические операции над данными с целью обеспечения их конфиденциальности и т. д.;
надежность (reliability) — проверка выполнения предусловий и постусловий в модулях и инвариантов в классах; обработка ошибок и др.;
безопасность многопоточного выполнения кода (multi-threaded safety) — синхронизация по ресурсам или по событиям, выделение критических участков кода, взаимное исключение доступа к ним и др.;
протоколирование и профилирование работы программы (logging and profiling) — трассировка начала и окончания выполнения каждой функции (каждого метода), вывод их аргументов и результатов, сбор и вывод статистической информации об исполнении различных фрагментов программы.

Слайд 6 Основные понятия АОП
Точка соединения (joinpoint) — точка в

Основные понятия АОПТочка соединения (joinpoint) — точка в программе, где существует

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

Различные реализации АОП имеют различные возможные точки соединения, таковыми могут являться момент вызова методов класса или обращений к полям объекта.
Совет (advice) —класс, реализующий сквозную функциональность. Существуют различные типа советов:  выполняемые до точки соединения, после или вместо неё.
Срез (pointcut) —точка соединения (joinpoint), которая выбрана для исполнения в ней сквозной функциональности, определенная советом (advice).
Аспект (aspect) — под аспектом понимают комбинацию, состоящую из среза (pointcut) и реализующего сквозную функциональность  совета (advice). Аспект изменяет поведение остального кода, исполняя совет в точках соединения, определённых некоторым срезом. В Spring для этого используется также понятие advisor.
Внедрение или введение (introduction) — под этим термином понимают процесс модификации объекта путем добавления дополнительных полей и /или методов. Внедрение также может быть использовано для реализации объектом интерфейса без явного указания этого в классе объекта.
Связывание (weaving) – связывание аспектов с объектами для создания новых, «расширенных» объектов.
Цель или целевой объект (target) – объект, являющийся результатом связывания (weaving), то есть реализующий первоначальную бизнес логику плюс сквозная функциональность, выполненная одним или несколькими аспектами.

Слайд 7 Различные типы Аспектно-Ориентированного Программирования
Существует два различных способа реализации

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

аспектно-ориентированного программирования: статический и динамический. Эти способы различаются моментами

времени, когда происходит связывание (weaving) и способом, как это связывание происходит.

Слайд 8 Статическое АОП
При статической реализации аспектно-ориентированного программирования связывание является

Статическое АОППри статической реализации аспектно-ориентированного программирования связывание является отдельным шагом в

отдельным шагом в процессе построения программного продукта (build process)

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


Слайд 9 Динамическое АОП
Продукты, реализующие динамический вариант АОП отличается от

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

статического тем, что процесс связывания (weaving) происходит динамически в

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

Слайд 10 Инструменты АОП

AspectJ
JBoss
Aspect.NET
Spring Framework


Инструменты АОПAspectJJBoss Aspect.NETSpring Framework

Слайд 11 Исключения и их обработка
Исключение - это проблема(ошибка) возникающая

Исключения и их обработкаИсключение - это проблема(ошибка) возникающая во время выполнения

во время выполнения программы. Исключения могут возникать во многих

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


Слайд 12 Синтаксис исключений
try - данное ключевое слово используется для

Синтаксис исключенийtry - данное ключевое слово используется для отметки начала блока

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

ошибке. 
catch - ключевое слово для отметки начала блока кода, предназначенного для перехвата и обработки исключений.
finally - ключевое слово для отметки начала блока кода, которое является дополнительным. Этот блок помещается после последнего блока 'catch'. Управление обычно передаётся в блок 'finally' в любом случае. 
throw - служит для генерации исключений.
throws - ключевое слово, которое прописывается в сигнатуре метода, и обозначающее что метод потенциально может выбросить исключение с указанным типом.

Слайд 13 Пример выброса исключения

Пример выброса исключения

Слайд 14 Конструкция «поимки» исключения

Конструкция «поимки» исключения

Слайд 15 Модифицированный пример

Модифицированный пример

Слайд 16 finaly

finaly

Слайд 17 Иерархия исключений

Иерархия исключений

Слайд 18 Иерархия исключений Error
Error - это подкласс, который показывает

Иерархия исключений ErrorError - это подкласс, который показывает серьезные проблемы возникающие

серьезные проблемы возникающие во время выполнения приложения. Большинство из

этих ошибок сигнализируют о ненормальном ходе выполнения программы, т.е. о каких-то критических проблемах. Эти ошибки не рекомендуется отмечать в методах посредством throws-объявления, поэтому они также очень часто называются не проверяемые (unchecked)

Слайд 19 Иерархия исключений Exception
Exception. Эта иерархия также разделяется на

Иерархия исключений ExceptionException. Эта иерархия также разделяется на две ветви: исключения,

две ветви: исключения, производные от класса RuntimeException, и остальные.

Исключения типа RuntimeException возникают вследствие ошибок программирования. Все другие исключения являются следствием непредвиденного стечения обстоятельств, например, ошибок ввода-вывода, возникающих при выполнении вполне корректных программ.

Слайд 20 два типа исключений: checked и unchecked
1. Checked исключения,

два типа исключений: checked и unchecked1. Checked исключения, это те, которые

это те, которые должны обрабатываться блоком catch или описываться

в сигнатуре метода. Unchecked могут не обрабатываться и не быть описанными.
2. Unchecked исключения в Java - наследованные от RuntimeException, checked - от Exception (не включая unchecked).

Примеры:
unchecked исключения - NullPointerException,
сhecked исключения - IOException


Слайд 21 Создание собственных исключений

Создание собственных исключений

  • Имя файла: aspektno-orientirovannoe-programmirovanie.pptx
  • Количество просмотров: 107
  • Количество скачиваний: 0