Лось (анализ) - Moose (analysis)

лось
Лось логотип
Снимок экрана
Снимок экрана пользовательского интерфейса Moose по умолчанию для просмотра моделей
Снимок экрана пользовательского интерфейса Moose по умолчанию для просмотра моделей
Разработчики)Команда лося
Стабильный выпуск
7.0.2 / 26 июля 2019 г. (2019-07-26)
Написано вБолтовня
Операционная системаКроссплатформенность
ТипАнализ данных
ЛицензияЛицензия BSD
Интернет сайтmoosetechnology.org

лось это свободный и Открытый исходный код платформа для программного обеспечения и анализ данных встроенный Pharo.

Moose предлагает множество услуг, начиная от импорта и анализа данных и заканчивая моделированием, измерением, запросами, интеллектуальным анализом и созданием инструментов интерактивного и визуального анализа. Лось родился в исследовательском контексте,[1] и в настоящее время его поддерживают несколько исследовательских групп по всему миру. Он все чаще применяется в промышленности[нужна цитата ].

Ключевая особенность

Философия Moose заключается в том, чтобы дать аналитику возможность создавать новые специализированные инструменты анализа и настраивать поток анализа. Хотя Moose в основном используется для анализа программного обеспечения, он создан для работы с любыми данными.

Для этого он предлагает несколько механизмов и фреймворков:

  • Импорт и мета-мета-моделирование достигается с помощью универсального метаописанного механизма.[2][3] Любые метамодель описывается в терминах самоописанной мета-метамодели, и на основе этого описания импорт / экспорт обеспечивается через формат файла MSE. Через этот формат файла Moose может обмениваться данными с внешними инструментами.
  • Для синтаксического анализа Moose предоставляет новую структуру [4] который использует несколько технологий синтаксического анализа (например, анализ грамматики выражений ), что обеспечивает свободный интерфейс для легкой конструкции.
  • Программный анализ специально поддерживается семейством метамоделей FAMIX. Ядро FAMIX - это не зависящая от языка метамодель, похожая на UML но он ориентирован на анализ. Кроме того, он предоставляет богатый интерфейс для запросов моделей.
  • Визуализация поддерживается двумя разными механизмами: один для визуализации графов,[5] и один для отображения диаграмм. Они оба обеспечивают свободный интерфейс для легкой конструкции.
  • Просмотр - важный принцип в Moose, и он также поддерживается разными способами. Общий интерфейс позволяет аналитику просматривать любую модель. Чтобы иметь возможность указывать определенные браузеры, Moose предлагает универсальный движок, который упрощает спецификацию за счет определенных свободный интерфейс.

История

1996-1999: Первая инфраструктура, метамодель

Лось родился в Бернский университет в контексте FAMOOS, европейского проекта, который проходил с сентября 1996 года по сентябрь. 1999. FAMOOS сосредоточился на методах и инструментах для анализа и обнаружения проблем проектирования в объектно-ориентированных устаревших системах, а также на переходе этих систем на более гибкие архитектуры. Основные результаты FAMOOS обобщены в Справочнике FAMOOS и в шаблонах объектно-ориентированного реинжиниринга.[6] книга.

В начале проекта FAMOOS Moose был просто реализацией независимой от языка метамодели, известной как FAMIX. Анализ кода C / C ++ проводился через Sniff +, а созданные модели были импортированы через стандарт CDIF. Первоначально Moose предусматривал жестко запрограммированный импортер и служил основой для простой визуализации и программного извлечения фактов (1997). Затем его начали использовать для вычисления метрик.

Позже, по мере развития метамодели, стало очевидно, что сервис импорта / экспорта должен быть ортогонален метамодели и, что наиболее важно, среда должна поддерживать расширение метамодели. Как следствие, была реализована первая чрезвычайно простая мета-метамодель, которая в то время могла представлять сущности и отношения (1998).

1999-2003: Форматы обмена, визуализации

С введением стандарта XMI первая Мета-объектный объект была реализована метамодель, а метамодели CDIF были преобразованы в метамодели MOF для генерации модели XMI. Однако MOF не использовался в качестве базовой мета-метамодели Moose.

Параллельно с этим развитие визуализации привело к расширению набора рассчитываемых показателей. В то время CodeCrawler был флагманским приложением Moose, и в течение значительного периода времени CodeCrawler влиял на архитектуру Moose (1999). Например, перед созданием представлений для всех сущностей должны были быть рассчитаны показатели.

Интерес к исследованию эволюции систем привел к реализации репозитория метамоделей. Таким образом, первым приложением была Матрица эволюции (2001). Позже было вложено больше исследований в понимание эволюции систем, что привело к развитию Ван (2002).

Поскольку анализ эволюции требует манипулирования большими объемами данных, больше не было возможности постоянно манипулировать всей информацией модели. Кроме того, еще одним узким местом было предварительное вычисление показателей для всех сущностей в модели. Как следствие, было реализовано несколько сервисов: частичная загрузка моделей, ленивое вычисление свойств и кеширование результатов.

Стало очевидно, что метаописания являются мощным способом отделения представления данных (то есть метамодели) от различных методов манипулирования этими данными. Следовательно, команда приступила к реализации мета-метамодели, подобной MOF (2002 г.), и заменила исходную. Он предлагает архитектуру, аналогичную архитектуре Eclipse Modeling Framework (EMF).

2003-2007: Общий интерфейс, настраиваемый формат обмена, визуализация с возможностью создания сценариев.

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

Чтобы упростить разработку инструмента, требовался подключаемый механизм. Таким образом, на основе метаописания каждый инструмент может зарегистрироваться в меню, прикрепленном к каждой сущности в метамодели. Этот простой механизм позволяет этим инструментам дополнять друг друга, не навязывая между ними жестко заданную зависимость.

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

В 2006 году Meta была создана как самоописанная реализация EMOF (Essential Meta Object Facility) и заменила мета-метамодель Moose. Вместе с Meta был создан новый формат файла MSE. Поскольку Meta описывается самостоятельно, Moose теперь может загружать как внешние модели, так и метамодели, используя один и тот же механизм. В то же время была прекращена поддержка XMI и CDIF.

Мондриан был создан для поддержки быстрого прототипирования интерактивных визуальных инструментов. Мондриан использует Smalltalk в качестве основного языка сценариев и добавляет поддержку визуализации на основе графиков. Мондриан получил 2-е место на ESUG 2006 Innovation Awards.

В 2007 году вокруг Moose возник новый движок под названием EyeSee, позволяющий создавать сценарии для диаграмм, подобных Excel. EyeSee получил 2-е место на конкурсе ESUG 2007 Innovation Awards.

2008-2011: FAMIX 3.0, браузеры с поддержкой сценариев и переход на Pharo

В 2008 году Meta была заменена на Fame, которая реализует новую мета-метамодель (FM3), которая проще и гибче, чем EMOF. Усилия по созданию славы коррелируют с разработкой FAMIX 3.0, семейства метамоделей для анализа программного обеспечения.

Начиная с конца 2008 года были предприняты большие усилия по перемещению Moose из VisualWorks в Pharo, Smalltalk с открытым исходным кодом. Первая альфа-версия под Pharo была выпущена в августе 2009 года.

В это время был разработан Glamour, движок для написания скриптов в интерактивных браузерах. Glamour получил 3-е место на конкурсе ESUG 2009 Innovation Awards.

PetitParser был добавлен в Moose Suite. PetitParser - это новый движок для создания специальных парсеров.

использованная литература

  1. ^ Оскар Нирстраз, Стефан Дюкасс и Тюдор Гирба. История Moose: среда гибкого реинжиниринга. В материалах Европейской конференции по разработке программного обеспечения (ESEC / FSE'05), стр. 1-10, ACM Press, Нью-Йорк, штат Нью-Йорк, 2005. Приглашенный доклад.
  2. ^ Стефан Дюкасс, Тюдор Гирба, Адриан Кун и Лукас Ренггли. Мета-среда и исполняемый метаязык с использованием Smalltalk: отчет о впечатлениях. В Журнале программного и системного моделирования (SOSYM) 8 (1) с. 5–19 февраля 2009 г.
  3. ^ Адриан Кун и Тун Вервест. FAME, полиглот-библиотека для метамоделирования во время выполнения. В «Практикуме по моделям во время выполнения», стр. 57–66, 2008 г.
  4. ^ Лукас Ренггли, Стефан Дюкасс, Тюдор Гирба и Оскар Нирстраз. Практические динамические грамматики для динамических языков. На 4-м семинаре по динамическим языкам и приложениям (DYLA 2010), Малага, Испания, июнь 2010 г.
  5. ^ Майкл Мейер, Тудор Гырба и Мирча Лунгу. Мондриан: среда гибкой визуализации. В симпозиуме ACM по визуализации программного обеспечения (SoftVis'06), стр. 135–144, ACM Press, Нью-Йорк, Нью-Йорк, США, 2006.
  6. ^ Серж Демейер, Стефан Дюкасс и Оскар Нирстраз. Шаблоны объектно-ориентированного реинжиниринга, Square Bracket Associates, 2008. URL

внешние ссылки

  • лось домашняя страница.
  • Книга лося - открытая книга, описывающая платформу Moose.
  • Гуманная оценка это новый подход к программному обеспечению и оценке данных, реализованный Moose.
  • Glamorous Toolkit - это изменяемая среда разработки, которая развивалась на основе некоторых идей Moose и разделяла некоторых из ее создателей.