Aspect. Net Аспектно-ориентирано разширение на Microsoft Visual Studio 2003



Дата30.07.2017
Размер41.4 Kb.
#26848


Резюме

Тема : Aspect.Net – Аспектно-ориентирано разширение на Microsoft Visual Studio 2003

Дипломант: Александър Бойчев Колев

Научен ръководител: доц. д-р. Силвия Илиева

Консултант:

Дата: 14 Февруари 2006

Ключови думи:аспект, съвет, отношение, свързване, декомпозиция, дизайн, .Net, Microsoft, Visual Studio, разширение, АОП, АОСР, базова функционалност, RAIL, Aspect.Net

Още от самото създаване на компютрите, езиците за програмиране не престават да се развиват: от машинен код и асемблерни езици до процедурни и обектно-ориентирани. Всеки прогрес в технологиите подобрява средствата, с които можем да постигнем по-добро разделяне на отношенията в кода на една програма, което естествено води до улеснена реализация и последваща поддръжка. През последните две десетилетия доминиращата парадигма беше тази на Обектно-ориентираното Програмиране (ООП) поради способността му да моделира и декомпозира ефективно предметни области от реалния живот, посредством обектния си модел. Този подход е наистина ефективен в голяма част от случаите, тъй като с обектният модел лесно се осъществява описание върху съответните предметни области. За съжаление освен множеството преимущества използването на ООП води и до проблеми. Някои от тях стават явни, когато част от отношенията започнат да имат допирни/пресечни точки. Казвайки, че отношенията се пресичат, имаме в предвид, че са налични повече от едно отношения в един елемент от системата (в зависимост от парадигмата за декомпозиция варират, но при ООП – клас, метод и т.н.), а други са разпростряни върху множество от елементи на системата. Това от своя страна води до следните проблеми:



  1. Оплетен код – получава се, когато няколко отношения са реализирани в един елемент на системата. Като резултат кодът става по-сложен и съответно по-труден за разбиране и поддръжка;

  2. Разхвърлян код – получава се, когато реализацията на дадено отношение се постига чрез дублиране на кода или писането на различен код, но разпръснат в множество различни елементи на системата. Резултатът е код, който е ‘разхвърлян’ из цялата система, което автоматично означава усложнена поддръжка, тъй като програмистът трябва да има знание за цялата система при провеждането на корекции или друг вид ‘ремонтна’ дейност.

В дипломната работа разглеждаме нова концепция за модуляризация на такива пресичащи се отношения, наречена Аспектно-Ориентирано Програмиране (АОП). АОП допълва ООП като улеснява програмистите, предоставяйки им нов тип абстракции, с които се капсулира кода, имплементиращ дадено пресечено отношение. Тази абстракция се нарича аспект, откъдето е името и на самата техника Аспектно-Ориентирано Програмиране. Използвайки аспекти, програмирането на пресечени отношения става лесно и удобно, предоставящо възможност за многократно използване на вече написаните веднъж аспекти. Самите аспекти могат да бъдат добавяни, премахвани или дори променяни по време на компилация, което прави крайния резултат широко приложим за всякакви цели.

За съжаление, текущите АОП разработки нямат широка поддръжка на .Net платформата на Майкрософт. Имайки предвид голямата популярност на гореспоменатата платформа и широкото й приложение, липсата на удобен инструмент, който улеснява използването на АОП техники във всекидневната работа на програмистите е осезаема. Точно поради тази причина, основната цел на дипломната работа е създаването на разширение (Aspect.Net) за най-популярната среда за разработка на Майкрософт – Microsoft Visual Studio. Това ще предостави възможност на .Net програмистите да използват концепции и техники от света на АОП.

В дипломната работа са разгледани някои от най-популярните съществуващи разработки в областта на АОП за .Net. Представено е сравнение, илюстриращо в кои области и как по-точно Aspect.Net ги превъзхожда. Дипломната работа също съдържа широк обзор на платформата .Net като среда за АОП и Аспектно-Ориентирана Софтуерна Разработка (АОСР).

В изложението са описани всички функционални и нефункционални изисквания, на които Aspect.Net би трябвало да отговаря, за да бъдат удовлетворени целите на дипломната работа и реализирано превъзходството спрямо другите разгледани разработки. Детайлно са разгледани и най-важните дизайн-решения, нужни за удовлетворяването на гореспоменатите изисквания. При описването на реализацията на дипломната работа е показано с технически средства по какъв начин са изпълнени всички изисквания.

За да оценим Aspect.Net, ще го съпоставим с другите разгледани .Net разработки, по отношение на следните критерии:


  1. Какъв тип е свързването на базовата и аспектната функционалност – динамичен или статичен?

  2. Има ли ясно разграничение между аспектите и базовата функционалност? Може ли компилирането на двете да става по отделно?

  3. Какъв е входът за свързващата функционалност? Ако е сорс код, то програмистът трябва да има достъп до кода на програмата. Ако пък е междинен език, то той има нужда само от готовия файл или асембли.

  4. Може ли системата да бъде приложена към съществуващи приложения?

  5. Има ли начин за верифициране на свързването? Възможно ли е да преценим дали свързването на даден аспект към базова функционалност е правилно?

  6. Системата поддържа ли аспектен полиморфизъм?

С цел илюстриране на ползите от използването на Aspect.Net, в отделна глава е разгледан пример от реалността, съдържащ конкретен проблем. Разгледани са двата възможни подхода – стандартния – ООП-базиран и АОП чрез Aspect.Net. След обстоен анализ и на двата подхода следва заключението, че решението, базирано на Aspect.Net, е предпочитаното с оглед на множеството разгледани критерии и фактори.

На базата на изводите, направени от текущата дипломна работа, са идентифицирани следните възможни области за подобрения на Aspect.Net:



  • Семантика;

  • Механизъм за свързване;

  • Разширението на Visual Studio 2003;

  • Тестване;

  • Общи подобрения – оптимизация, корекции в библиотеката RAIL;

  • Съвместимост с .Net 2.0 и Visual Studio 2005.




Каталог: bitstream -> 10506
bitstream -> Лекарства с определена рискова категория за кърмене
bitstream -> К. Любомирова, Н. Цачева, И. Петров, Р. Денчева, С. Евстатиева, С. Младенова, Кр. Попова
bitstream -> Лекарства с определени от fda рискови категории за бременност
bitstream -> Применение системы для редактирования контента Wordpress для развития музейных сайтов. Пример художественного музея в Толедо
bitstream -> Ламбев, Ив. Selecta medicamentorum. “Индустриал сървис – Сердика”, София, 2005, 681–682
10506 -> Умения за общуване в екипа (вътрешна комуникация)
bitstream -> Тончева, Веселка Болгария
10506 -> Умения за докладване на резултати


Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница