Project

General

Profile

Actions

Overview » History » Revision 4

« Previous | Revision 4/8 (diff) | Next »
Sergey Groshev, 12/24/2009 04:33 PM


Overview

Aspectrace - технология расширяемой аспектно-ориентированной трассировки.

Назначение проекта

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

Технология поддерживает расширяемый формат трассы. Для работы с информацией нужного вида клиент подключает соответствующий модуль (называемый аспектом), который предназначен для работы с ней; аспект определяет собственную модель данных и собственные типы сообщений трассы. Различные аспекты могут подключаться приложениями (как генерирующими трассу, так и анализирующими её) независимо друг от друга.

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

Также поддерживаются подключаемые модули, задающие внешние представления и способы хранения трассы.

Ключевые свойства

  1. Универсальность:
    Технология не привязана к какой-либо предметной области, классу приложений, способу тестирования, языку программирования, платформе или способу хранения данных.
  2. Расширяемость:
    Структура трассы и архитектура системы допускают добавление новых видов информации без дополнительных накладных расходов и без необходимости перекомпиляции старых приложений. Также возможен прозрачный выбор нужных (в зависимости от особенностей реализации и среды) способов внешнего хранения и передачи трассы или добавление новых.
  3. Модульность:
    Приложение, генерирующее трассу, сбрасывает в неё без ущерба для логической целостности только ту информацию, которую разработчик считает существенной. По мере необходимости можно добавлять сброс новых видов информации.
    Приложение, анализирующее трассу, выбирает из неё только понятную ему и существенную для него информацию, безболезненно (как по ресурсам, так и с точки зрения согласованности данных) игнорируя все остальное. Архитектура системы позволяет легко настраивать, какую информацию брать из трассы, какими способами её обрабатывать и как связывать между собой, что позволяет создавать легко настраиваемые отчёты, собираемые из готовых компонентов.
  4. Простота связывания:
    Предоставляются средства, упрощающие автоматическое связывание разнородной информации при анализе трассы.
  5. Унификация:
    Стандартные виды информации, используемые в различных предметных областях, трассируются и обрабатываются в унифицированном виде, что позволяет легко разрабатывать как собственные библиотеки аспектов, так и универсальные анализаторы трассы, обрабатывающие информацию из разных аспектов.
  6. Структурированность данных:
    Поддерживается сброс в трассу структурированной информации и извлечение её с сохранением структуры.
  7. Гибкость трассировки и анализа:
    Возможность легко настраивать, что трассировать, а что нет; какую информацию брать из трассы, как её анализировать, как связывать между собой и как представлять.

Архитектура

Аспектные трассировщики и аспектные адаптеры входят в соответствующие библиотеки аспектов и подключаются приложениями при необходимости; при этом сообщения трассы, относящиеся к аспекту, для которого не подключён адаптер, игнорируются.

Tracer и Parser - инфраструктурные компоненты, непосредственно поддерживающие расширяемый формат трассы. Приложения взаимодействуют с ними не напрямую, а через библиотеки аспектов. Также возможно связывание этих двух компонентов (а через них - генераторы и анализаторы трассы) напрямую в одном адресном пространстве, без промежуточных внешних представлений трассы.

Примеры использования

source:trunk/src/java/com/unitesk/aspectrace/sampleApp

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

Ссылки на более подробные документы

source:trunk/docs/Aspectrace_manual.doc

Ссылки для скачивания

Файлы поставки можно скачать здесь

Данный проект зависит от проекта coverage , файлы поставки которого можно скачать здесь

Updated by Sergey Groshev over 14 years ago · 4 revisions