Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Software Engineering2011.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.12 Mб
Скачать

Аспектно-ориентированное программирование

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

Недостатки аспектного подхода

  • Не полностью проработана методология АОП-разработки программ. В данный момент законченный и оттестированный компилятор имеется только для нескольких языков, что ограничивает применение данной технологии.

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

  • Недостаточно проработан механизм привязки аспектов к компонентам. В распространенных в настоящее время АОП-реализациях точки связывания описываются в

  • терминах программных конструкций — классов, методов, полей класса. При этом получается тесная связь между аспектом и компонентом, к которому он применяется. Логика привязки аспекта к данной точке кода выражена неявно и целиком определяется программной конструкцией, в терминах которой построено описание. Тесная связь между аспектом и компонентом делает аспект зависимым от компонента и при этом нарушается одна из основных идей АОП — независимость компонентов от применяемых к нему аспектов.

  • Не полностью исследованы случаи, когда аспекты удобно и целесообразно былобы применить. Необходимо разработать метрики, позволяющие обосновывать эффективность

  • применения АОП к отдельным системам. Например, будет ли повторная реализация шаблонов проектирования с использованием АОП лучше стандартных объектно-ориентированных шаблонов? В каких случаях шаблоны лучше, а в каких - нет? Какие необходимо создать показатели для получения информации о таких метриках и для их разработки?

Визуально-ориентированное программирование

Под визуально-ориентированным программированием (ВОП) обычно понимается

автоматическая генерация кодов программ на некотором языке программирования при

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

Необходимо различать:

  • графический язык программирования - который прежде всего язык программирования (сосвоим синтаксисом)

  • визуальные средства разработки - как правило под ними подразумевают средствапроектирования интерфейсов для быстрой разработки приложений.

Средства визуального программирования обычно решают задачи построения

пользовательского интерфейса и упрощения разработки приложения путем замены метода

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]