Межсекторальная озабоченность - Cross-cutting concern

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

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

Фон

Межсекторальные проблемы - это части программы, которые полагаются или должны влиять на многие другие части системы. Они составляют основу для развития аспекты.[1] Такие сквозные проблемы не вполне укладываются в объектно-ориентированного программирования или же процедурное программирование.[2]

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

Аспектно-ориентированное программирование целится на инкапсулировать сквозные проблемы в аспекты сохранить модульность. Это позволяет полностью изолировать и повторно использовать код для решения сквозной проблемы.[4] Основывая проекты на сквозных проблемах, программная инженерия преимущества могут включать модульность и упрощенное обслуживание.[5]

Примеры

Примеры проблем, которые иметь тенденцию к сквозным относятся:

Смотрите также

Рекомендации

  1. ^ Kiczales et. al 2002, п. 4
  2. ^ а б Kiczales et al. 1997 г., п. 1
  3. ^ Kiczales et al. 1997 г., п. 6
  4. ^ Kiczales et al. 1997 г., п. 2
  5. ^ Ли, Кришнамурти и Фислер, 2002 г., п. 1

Библиография

  • Кичалес, Грегор; Лэмпинг, Джон; Мендекар, Анураг; Маэда, Джон; Лопес, Кристина; Лонтье, Жан-Марк; Ирвин (1997). «Аспектно-ориентированное программирование». Труды 11-й Европейской конференции по объектно-ориентированному программированию (ECOOP 1997): 220–242.CS1 maint: ref = harv (связь)
  • Патент США 6467086, Kiczales et. al, "Аспектно-ориентированное программирование ", выданный 15.10.2002 г. 
  • Ли, Гарри; Кришнамурти, Шрирам; Фислер, Кэти (2002). «Проверка сквозных функций как открытых систем». Примечания по разработке программного обеспечения ACM SIGSOFT. 27 (6): 89–98. CiteSeerX  10.1.1.8.9445. Дои:10.1145/605466.605481.CS1 maint: ref = harv (связь)
  • Парнас, Дэвид Л. (декабрь 1972 г.). «О критериях разложения систем на модули». Коммуникации ACM. 15 (12): 1053–1058. CiteSeerX  10.1.1.90.8963. Дои:10.1145/361598.361623.
  • Тарр, Пери; Ошер, Гарольд; Харрисон, Уильям; Саттон, Стэнли М., младший (1999). N степеней разделения: многомерное разделение проблем. Материалы 21-й Международной конференции по программной инженерии. Лос-Анджелес, Калифорния, США: Пресса IEEE Computer Society. С. 107–119. CiteSeerX  10.1.1.89.1641. Дои:10.1109 / ICSE.1999.841000. ISBN  978-1581130744.

дальнейшее чтение

  • Ладдад, Р. (2003): AspectJ в действии, Практическое аспектно-ориентированное программирование, Manning Publications Co.

внешняя ссылка