В аспектно-ориентированной разработке программного обеспечения, сквозными проблемами являются аспекты программы , которые влияют на другие проблемы. Эти проблемы часто не могут быть полностью отделены от остальной системы как при разработке, так и при реализации, и могут привести либо к рассеянию (дублирование кода ), либо к запутыванию (значительные зависимости между системами), или оба.
Например, если вы пишете приложение для обработки медицинских записей, индексация таких записей является основной задачей, а ведение журнала истории изменений в базе данных записей, базе данных пользователей или системе аутентификации может быть сквозной проблемой, поскольку они взаимодействуют с большим количеством частей программы.
Содержание
- 1 Предпосылки
- 2 Примеры
- 3 См. Также
- 4 Ссылки
- 5 Библиография
- 6 Дополнительная литература
- 7 Внешние ссылки
Предпосылки
Межсекторальные проблемы - это части программы, которые полагаются или должны влиять на многие другие части системы. Они составляют основу для развития аспектов. Такие сквозные проблемы не вполне укладываются в объектно-ориентированное программирование или процедурное программирование.
Сквозные проблемы могут быть непосредственно ответственны за путаницу или системные взаимозависимости в пределах программа. Поскольку процедурные и функциональные конструкции языка полностью состоят из вызова процедур, не существует семантики, с помощью которой можно было бы одновременно решать две цели (возможность, которая должна быть реализована, и связанная с ней сквозная проблема). В результате код, решающий сквозную проблему, должен быть рассредоточен или дублирован по различным связанным местоположениям, что приводит к потере модульности.
Аспектно-ориентированное программирование стремится инкапсулировать сквозные проблемы в аспектах для сохранения модульности. Это позволяет полностью изолировать и повторно использовать код для решения сквозной проблемы. Основываясь на комплексных проблемах, разработка программного обеспечения может включать в себя модульность и упрощенное обслуживание.
Примеры
Примеры проблем, которые склонны к быть сквозными:
См. также
Ссылки
Библиография
- Kicz эль, Грегор; Лэмпинг, Джон; Мендекар, Анураг; Маэда, Джон; Лопес, Кристина; Лонтье, Жан-Марк; Ирвин (1997). «Аспектно-ориентированное программирование». Материалы 11-й Европейской конференции по объектно-ориентированному программированию (ECOOP 1997): 220–242. CS1 maint: ref = harv (ссылка )
- патент США 6467086, Kiczales et. Al. " Аспектно-ориентированное программирование ", выпущено 15 октября 2002 г.
- Ли, Гарри; Кришнамурти, Шрирам; Фислер, Кэти (2002)." Проверка сквозных функций как открытых систем ". Программное обеспечение ACM SIGSOFT Технические примечания. 27 (6): 89–98. CiteSeerX 10.1.1.8.9445. doi : 10.1145 / 605466.605481. CS1 maint: ref = harv (ссылка )
- Парнас, Дэвид Л. (декабрь 1972 г.). «О критериях, которые будут использоваться при разделении систем на модули». Связь ACM. 15(12): 1053–1058. CiteSeerX 10.1.1.90.8963. doi : 10.1145 / 361598.361623.
- Тарр, Пери; Ошер, Гарольд; Харрисон, Уильям; Саттон, Стэнли М., мл. (1999). N Степени разделения: многомерное разделение проблем. Труды 21-й Международной конференции по разработке программного обеспечения. Лос-Анджелес, Калифорния Орния, США: IEEE Computer Society Press. С. 107–119. CiteSeerX 10.1.1.89.1641. doi : 10.1109 / ICSE.1999.841000. ISBN 978-1581130744.
Дополнительная литература
- Ладдад, Р. (2003): AspectJ в действии, Практическое аспектно-ориентированное программирование, Manning Publications Co.
Внешние ссылки
- глоссарий аспектно-ориентированных терминов (через; AOSD.net стал Modularity ).
- AspectJ [1], аспектно-ориентированным расширением Язык программирования Java
- Бергманс, Л., М. Аксит (2001): Составление нескольких проблем с использованием фильтров композиции, https://web.archive.org/web/20170909131212/http://trese.cs.utwente.nl / (24 июля 2004 г.)
- Берг, К. ван ден, Конеджеро, Дж. и Читчян, Р. (2005). AOSD Ontology 1.0 - Public Ontology of Aspect-Orientation. AOSD Europe Network of Excellence, http://eprints.eemcs.utwente.nl/10220/01/BergConChi2005.pdf
- Вот пример решения сквозной проблемы: https: // web.archive.org/web/20161220151503/https://www.captechconsulting.com/blogs/a-persistence-pattern-using-threadlocal-and-ejb-interceptors