Доставка любой диссертации в формате PDF и WORD за 499 руб. на e-mail - 20 мин. 800 000 наименований диссертаций и авторефератов. Все авторефераты диссертаций - БЕСПЛАТНО
Грачев, Михаил Константинович
05.13.11
Кандидатская
2009
Санкт-Петербург
101 с. : ил.
Стоимость:
499 руб.
Оглавление
Введение
Цели и задачи
Причины возникновения проблемы и ее актуальность
Глава 1. Инструменты АОП
1.1 История вопроса и обзор источников информации об АОП
1.2 Основные идеи АОП
1.3 Обзор существующих инструментариев для поддержки АОП
1.2.1 Система AspectJ
1.2.2 Hyper/J
1.2.3 Spring АОР
1.2.4 Spring.NET АОР
1.2.5 PostSharp
1.2.6 NAspect
1.2.7 Aspect#
1.2.8 AspectDNG
1.2.9 S2AOP.NET
1.2.10 Wicca
Глава 2. Система Aspect.NET
2.1 Концепция и принципы разработки системы
2.2 Архитектура Aspect.NET
2.2.1 Основные технологии, использованные в реализации Aspect.NET
2.3 Метаязык спецификации аспектов Aspect.NET.ML
2.3.1 Определение аспекта
2.3.2 Правила внедрения аспекта
2.3.3 Самодокументирование аспектов: AspectDescription
2.3.4 Непосредственное использование специализированных атрибутов Aspect.NET
2.4 Примеры решения некоторых задач посредством Aspect.NET
2.4.1 Поддержка транзакций
2.4.2 Валидация параметров
2.4.3 Перевод выполнения в поток пользовательского интерфейса
2.4.4 Обеспечение работы с доменными объектами в ORM-системах
Глава 3. Подсистема Aspect.NET Framework
3.2.1 Организация пользовательского интерфейса для инструментариев
3.2.2 Реализация подсистемы Aspect.NET Framework
3.2.3 Автоматизация задачи протоколирования при помощи инструмента Aspect.log4net
3.2.4 Апробация Aspect.NET Framework и Aspect.log4net в составе системы Aspect.NET на практике
Заключение
Список литературы
Введение
За долгие годы существования и развития методологий программирования исследователями и практиками было создано значительное число различных подходов к созданию программного обеспечения (ПО). Без сомнения, наиболее признанным по праву считается объектно-ориентированный подход (ООП) [9]. За последние десятилетия он практически монопольно укоренился в сфере разработки ПО и является стандартом. Объектно-ориентированный подход решил огромное число проблем, существовавших в его предшественнике — процедурном подходе. Разбиение элементов предметной области на классы позволило многократно упростить и структурировать исходный код программ. Однако средствами ООП проблема структурированности все же не решается в лучшем виде. Всегда остается функциональность в рамках метода, класса или целых компонент, не поддающаяся вынесению и' подходящей локализации. Применяя, например, use-case анализ [11], можно вынести функциональность, решающую не более одной бизнес-задачи, из одного класса во множество элементарных классов, четко разграниченных с точки зрения выполняемых ими действий. Однако фрагменты исходного кода, обеспечивающие взаимодействие этого множества классов, все равно сохранятся и, более того, будут рассредоточены по исходному коду про1раммы, ухудшая тем самым структурированность приложения и возможность его дальнейшей поддержки. Даже относительно удачное детальное проектирование модулей ПО практически не может решить эту задачу в рамках одной лишь ООП-методологии.
Аспектно-ориентированный подход к разработке ПО (другой вариант — аспектно-ориентированное программирование, АОП) [12, 13, 10] является технологией для решения широкого круга задач, позволяющей уменьшить сложность разработки и сопровождения программных продуктов.
Аспектно-ориентированный подход позволяет вынести сквозную функциональность (cross-cutting concerns) [12] — фрагменты,
рассредоточенные по коду программы, отвечающие за реализацию некоторой функциональности, — из модулей программы, упрощая тем самым структуру исходного кода.
Вот типичные виды сквозной функциональности [10]:
• безопасность (security) — аутентификация пользователей и программ; авторизация (проверка полномочий для выполнения тех или иных действий); криптографические операции над данными с целью обеспечения их конфиденциальности и т.д.;
• надежность (reliability) — проверка инвариантов в классах, а также выполнения пред- и постусловий, обработка ошибок и т.д.;
• безопасность многопоточного выполнения кода (multi-threaded safety) — синхронизация по ресурсам или по событиям, выделение критических участков кода, взаимное исключение доступа к ним и др.;
• протоколирование и профилирование работы программы (logging and profiling) — трассировка начала и окончания выполнения каждой функции (каждого метода), вывод их аргументов и результатов, сбор и вывод статистической информации об исполнении различных фрагментов программы и т.д.
Более сложным примером является расширение компилятора путем реализации некоторых новых языковых конструкций, например, новых видов операторов. Очевидно, все фазы компилятора — лексический анализ, синтаксический анализ, семантический анализ, оптимизация и генерация кода — должны быть обновлены для этого. Это означает, что, помимо добавления набора новых модулей в существующий код компилятора, необходимо будет внедрить множество рассредоточенных фрагментов кода
Название работы | Автор | Дата защиты |
---|---|---|
Методика и программные средства организации процесса обработки данных в многоканальной многопроцессорной системе цифровой обработки сигналов | Стручков, Игорь Вячеславович | 2008 |
Алгоритмы распознавания лиц и жестов на основе вейвлет-преобразований и метода главных компонент | Буй Тхи Тху Чанг | 2014 |
Специализированные модели для проектирования, разработки и реализации информационных систем | Бендума Тахар | 2010 |