Original: http://www.ics.uci.edu/~guoqingx/tools/ajana.html

AJANA: общие рамки для исходного кода уровня Межпроцедурного Dataflow Анализа AspectJ Software

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

Мы также предлагаем два потока данных анализа программного обеспечения AspectJ: (1) новый анализ объекта эффект , основанный на анализе проточного и контекстно-зависимая нужно обязательно псевдоним и (2) Анализ зависимостей , используемый для построения системы граф зависимостей для нарезки, рефакторинга , анализ последствий изменения и т.д. Оба анализа являются репрезентативными общей категории анализа потоков данных упоминается как межпроцедурное распределенная среда (IDE) проблем. Два анализа построены на верхней части предлагаемого представления, и принимать во внимание сложный поток управления и данных из - за аспектно-ориентированных функций. Мы представляем исследование предложенных методов на 37 версиях программы, используя нашу структуру анализа AJANA , который основан на Азбуки AspectJ компилятор. Результаты показывают , что представление может быть построена эффективно, что она превосходит подход , основанный на тканой байткоде, и что она дает возможность анализа , которые являются более быстрым и точным. Эти данные убедительно свидетельствуют о том, что предложенный подход является перспективным кандидатом на фундамент , на котором различные Межпроцедурная анализы для AspectJ могут быть спроектированы и построены.


Скачать (версия 0.1, выпущенный 8 марта 2009 г.)


Публикации


AJANA Использование:

В этом разделе показано , как использовать рамки AJANA.

  1. обязательным условием:
    Перед тем как быть в состоянии использовать AJANA, вы должны установить компилятор AspectBench , который в свою очередь может потребовать установку Сажа рамок анализа программ.
  2. Когда начать:
    Главный вход программы является analysis.aspectj.Main, которая принимает пять параметров:
    • Арг [0]: каталог , содержащий все контрольные показатели
    • Арг [1]: бенчмарк имя
    • Арг [2]: тест версия - это не имеет смысла сейчас, хотя он имел обыкновение работать для целей селекции тест
    • Арг [3]: основное имя класса
    • Арг [4]: селектор анализ клиента - 0 для анализа объекта эффекта; 1 для нарезки

Пример: если байткод из проекта ДХМ находится в директории

/Главная/gxu/проекты/ДХМ/v1/

, в командной строке арг , что вам нужно , чтобы дать являются следующие,

/Главная/gxu/проекты/ДХМ v1 certrevsim.Simulator ДХМ 0

  1. Подробные сведения об использовании:
    В настоящее время этот инструмент не поддерживает использование в срезом точек. Вы можете просто построить свой анализ на вершине представления AJIG , построенного AJANA, по инстанцировании класс

analysis.aspectj.ajig.AspectJInterModuleGraph

, И способ затем вызова

AspectJInterModuleGraph.build (SootMethod startMethod)

, Поток управления AJIG и потока данных представления описаны именно в наших ICSE'07 и AOSD'08 бумаг соответственно.

  1. Пример анализа:
    Вы можете посмотреть на мой анализ эффекта

Способ сборки в analysis.aspectj.summary.SummaryAnalysis

на примере манипулирования AJIG.


взносы

Вы можете внести свой вклад в AJANA путем отправки сообщений об ошибках, код патчей и предложений. Пожалуйста , присылайте Ваши запросы xug на рен точка Огай -state точка Edu.


люди


Публикации, которые используют AJANA


Подтверждение

Мы благодарим всех разработчиков аbс AspectJ компилятор, без которых исследование не произойдет.


Последнее обновление: 8 марта 2009