Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Аспектно-ориентированная разработка программного обеспечения - Цели22 января 2011Оглавление: 1. Аспектно-ориентированная разработка программного обеспечения 2. Цели 3. Обзор Скозные проблемыЦелью использования аспектно-ориентированного программирования является борьба с проблемами, вызванными рассеиванием и запутыванием кода. Задача аспектно-ориентированной разработки программного обеспечения - обеспечить систематические методы для модулизации сквозных проблем. Говорят, что реализация проблемы рассеяна, если его код рассредоточен по многим модулям. В результате проблема влияет на реализацию многих модулей и соответственно её реализация не является модульной. Говорят, что реализация проблемы запутана, если её код смешан с кодом, который реализует другие проблемы. Модуль, в котором происходит путаница, не связен. Рассеивание и путаница часто возникают вместе, хотя они они - различные понятия. Аспектно-ориентированная разработка программного обеспечения полагает, что рассеивание кода и путаница - признаки сквозных проблем. Сквозные проблемы не могут быть построены из модулей, с помощью механизмов декомпозиции языка, потому что они по сути требуют различных правил декомпозиции. Реализация и интеграция этих проблем с основной функциональной декомпозицией системы вызывают путаницу и рассеивание кода. Примеры сквозных проблем
Проблемы возникающие при рассеянии и путаницеРассеяние и путаница в поведения - признаки того, что реализация проблем неудачно разбита на модули. Проблемы, которые не преобразованы в модули, не позволяют сделать четко определенный интерфейс. В результате взаимодействия между реализацией проблемы и модулями системы явно не объявлены. Они скрыты в зависимостях и взаимодействиях между фрагментами кода, которые реализуют проблему и реализацию других модулей. Отсутствие интерфейсов между реализацией сквозных проблем и реализацией модулей системы мешает разработке, развитию и обслуживанию системы. Системная разработкаМодуль - прежде всего единица независимой разработки. Он в значительной степени может быть реализован независимо от других модулей. Модульный принцип достигается с помощью чёткого определения интерфейсов между частями системы. Отсутствие явных интерфейсов между сквозными проблемами и модулями, полученными через функциональное разложение системы, приводит к тому, что реализация этих проблем и ответственность за их корректную реализацию этих проблем не может быть дана независимым командам разработки. Эта ответственность должна быть распределена среди различных разработчиков, которые работают над реализацией различных модулей системы и кроме того реализуют работу сквозной проблемы с основным поведением модуля. Кроме того модули, реализация которых запутана со сквозными проблемами, проблематично повторно использовать в других контекстах. Сквозные проблемы препятствует повторному использованию компонентов. Отсутствие интерфейсов между сквозными проблемами и другими модулями мешает формулировать и обсуждать полную архитектуру системы. Поскольку проблема не является отдельным модулем, взаимодействия между проблемой и высокоуровневыми компонентами системы трудно явно выделить. Следовательно, становится трудно обсуждать реализацию этих проблем, поскольку связи между сквозными проблемами и компонентами не специфицированы. Наконец, проблемы, которые не выделены в модули, трудно протестировать в отдельности. Зависимости проблемы относительно поведения других модулей явно не описаны. Следовательно, реализация теста для таких проблем требует знания о реализации многих модулей в системе. Обслуживание системы и развитиеОтсутствие модульной реализации сквозных проблем становится серьёзной проблемой, когда реализация этой проблемы должна быть изменена. Понимание реализации сквозной проблемы требует знания реализации всех модулей, с которыми она взаимодействует. В результате, модификации системы, которые влияют на реализацию сквозной проблемы, требуют ручного выявления всех мест в коде, которые относятся к сквозной проблеме. Просмотров: 2918
|