Ключевые слова: аспектно-ориентированное программирование (АОП), аспект, сквозная функциональность, методологии программирования.
На сегодняшний день наиболее распространена методология объектно-ориентированного программирования (ООП). Несмотря на эффективность подхода ООП, в настоящее время существуют проблемы, для которых нужна новая методология. В современном мире промышленное производство программного обеспечения достигло таких огромных масштабов и такой сложности, что с каждым днем все труднее и дороже обходятся его разработка, поддержка, отладка, добавление новой функциональности, документирование, расширение и развитие. Аспектно-ориентированное программирование (АОП) предлагает решение этой проблемы. Программная система рассматривается как совокупность различных компонент, отвечающих за ту или иную функциональность. Некоторую функциональность можно реализовать путем создания некоего модуля или нескольких модулей. Под «модулем» понимается некая четко выраженная структурная единица программы – процедура, функция, метод, класс, структура данных, пакет. Но есть еще такое понятие, как сквозная функциональность (crosscutting concerns), которую невозможно эффективно реализовать вышеописанным образом, ее нельзя выделить в отдельные сущности, так как фрагменты ее реализации рассредоточены по коду всей программной системы.
Примерами сквозной функциональности может служить протоколирование (logging), добавление новых конструкций в некоторый язык программирования (например, generics в С#), обработка ошибок, реализация подсистемы безопасности. Методология АОП предлагает выделять такую сквозную функциональность в отдельные сущности – аспекты.
Современные АОП-инструментарии в основном ориентированы на Java, в меньшей степени на .NET. В настоящее время, в силу ряда причин, не существует доступного инструментария АОП-разработки для shared-source платформы Rotor, несмотря на растущую популярность АОП-подхода к разработке ПО. Таким образом, описываемая работа имеет как теоретическую часть – исследование существующих подходов к разработке программного обеспечения с использованием парадигмы АОП, так и практическую – создание АОП-системы для SSCLI/Rotor. Основные технологии, на которых построена система: Phoenix Research Development Kit (RDK), SSCLI (Shared Source Common Language Infrastructure)/Rotor 2.0, QT SDK, Aspect.NET. Таким образом, разработанная система, позволяющая использовать АОП при разработках для академической версии .NET, способствует более широкому использованию и распространению АОП, не ограничиваясь лишь платформами Java и (коммерческой) Microsoft.NET, что позволит сделать еще один шаг для накопления индустрией ПО опыта в создании программных систем с использованием данной методологии, что, безусловно, будет усиливать ее развитие и активное использование.
Список использованных источников
1. Vladimir O. Safonov. “Using aspect-oriented programming for trustworthy software development”. Wiley Interscience. John Wiley & Sons, 2008, p. 338.
2. Сафонов В.О. Практическое руководство по системе аспектно-ориентированного программирования Aspect.NET. Часть 1. – Компьютерные инструменты в образовании, 2008, № 3, С. 20-33.
3. Сафонов В.О. Практическое руководство по системе аспектно-ориентированного программирования Aspect.NET. Часть 2. – Компьютерные инструменты в образовании, 2008, № 4, С. 12-20.
4. Фуксман А.Л. Технологические аспекты создания программных систем. М.: Статистика, 1979.
5. http://aosd.net/ — Aspect-Oriented Software Development Community & Conference.
6. Kiczales G., Lamping J., Mendhekar A. Aspect-oriented programming. Published in proceedings of the European Conference on Object-Oriented Programming (ECOOP). Finland, Springer-Verlag LNCS 1241. June 1997.