EiffelStudio

редактировать

EiffelStudio - это среда разработки для языка программирования Eiffel разработан и распространяется Eiffel Software.

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

EiffelStudio доступен на нескольких платформах, включая Windows, Linux, Mac OS, Solaris, <19.>VMS, RaspberryPi. Источник доступен по GPL ; также доступны другие коммерческие лицензии.

Окно, содержащее три панели: панель редактора, содержащая исходный код класса, панель функций, содержащая список возможностей редактируемого исходного кода класса и панель диаграммы, показывающая класс в виде значка со связями с другими классами EiffelStudio версии 7.2 с панелями «Редактор», «Функции» и «Диаграммы»

Содержание

  • 1 Статус, лицензия и процесс сообщества
  • 2 Технология компиляции
  • 3 Конструирование туда и обратно
  • 4 Парадигма пользовательского интерфейса
  • 5 Модульное и интеграционное тестирование
  • 6 История
  • 7 Анализатор кода
  • 8 См. Также
  • 9 Ссылки
  • 10 Библиография
  • 11 Внешние ссылки

Статус, лицензия и процесс сообщества

EiffelStudio - это разработка с открытым исходным кодом, с регулярно доступной бета-версией следующего выпуска.

Сообщество Eiffel активно участвует в его развитии; его официальный сайт Eiffel.org, где перечислены проекты и ресурсы. База исходного кода обычно доступна для получения через Subversion или Git. Также доступны дискуссионные форумы и тому подобное.

Технология компиляции

EiffelStudio использует особую технологию компиляции, известную как Melting Ice (заявленная Eiffel Software как торговая марка), которая объединяет собственно компиляцию с интерпретацией элементов, измененных с момента последней компиляции, для очень быстрое выполнение (время перекомпиляции пропорционально размеру изменения, а не размеру всей программы). Хотя такие «расплавленные» программы могут быть доставлены, обычной практикой является выполнение этапа «финализации» перед выпуском. Финализация - это высокооптимизированная форма компиляции, которая занимает больше времени, но генерирует оптимизированные исполняемые файлы.

Интерпретаторная часть EiffelStudio использует ориентированную на байт-код виртуальную машину . Компилятор генерирует либо C, либо .NET CIL (Common Intermediate Language).

Конструирование туда и обратно

Инструмент построения диаграмм EiffelStudio обеспечивает графическое представление структур программного обеспечения. Его можно использовать как в

  • форвард-инжиниринге, так и в качестве инструмента проектирования для создания программного обеспечения из графических описаний.
  • Обратный инжиниринг, автоматически создавая графические представления существующих программных текстов.

Инструмент гарантирует целостность изменений выполнен в любом стиле, для полной "инженерной мысли".

Графическое обозначение: BON (нотация бизнес-объекта, см. Библиографию) или UML. BON по умолчанию.

Парадигма пользовательского интерфейса

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

EiffelStudio опирается на исходную парадигму пользовательского интерфейса, основанную на «объектах разработки», «камушках» и «дырах». Точно так же, как объектно-ориентированный в Eiffel работает с объектами во время выполнения, разработчики имеют дело с абстракциями, представляющими классы, функции, точки останова (для отладки), кластеры (группы классов) и другие объекты разработки . . Объект разработки в EiffelStudio может быть выбран (выбран ) везде, где он появляется в интерфейсе, и независимо от его визуального представления (имя объекта, визуальный символ или другое).

Чтобы выбрать объект разработки, достаточно щелкнуть по нему правой кнопкой мыши. Курсор изменится на специальный символ или камешек, соответствующий типу объекта: «пузырь» (эллипс) для класса, точка для точки останова, крестик для объекта и т. Д. При перемещении курсора линия отображается от исходного объекта до текущей позиции. Затем вы можете бросить камешек в любое подходящее место: либо значок, представляющий отверстие той же общей формы (отверстие класса, отверстие точки останова, отверстие элемента и т. Д.), Либо окно с совместимым типом. Эффект падения камешка в инструмент - перенацеливание всего инструмента на объект разработки, который был «выбран». Например, инструмент класса теперь будет отображать выбранный класс в любом выбранном виде (текст, контракт, плоский и т. Д.). Это известно как парадигма «взлома и выбрасывания».

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

Модульное и интеграционное тестирование

EiffelStudio включает интегрированное средство тестирования под названием EiffelStudio AutoTest [1], с помощью которого разработчики могут создавать простые и сложные модули и комплекты интеграционного тестирования. Возможности EiffelStudio AutoTest позволяют разработчику выполнять и тестировать код класса Eiffel от уровня функций (например, модульное тестирование) до целых систем классов (например, интеграции). Таким образом, выполнение этого кода также выполняет контракты выполняемых функций и атрибутов. Таким образом, EiffelStudio AutoTest - это средство для выполнения «тестов» или допущений Проекта по условиям контракта. Следовательно, модульное и интеграционное тестирование не требует повторного тестирования с помощью утверждений или тестовых оракулов, что уже было закодировано как спецификация в контрактах текста класса.

EiffelStudio AutoTest предоставляет пользователю три метода создания тестовых примеров.

Во-первых, для тестов, созданных вручную, EiffelStudio AutoTest создает тестовый класс, содержащий основу для теста. Пользователь должен предоставить только сам тестовый код.

Во-вторых, EiffelStudio AutoTest предоставляет метод для создания нового теста на основе сбоя приложения во время выполнения. Этот тип теста называется извлеченным. Если во время работы целевой системы происходит непредвиденный сбой, EiffelStudio AutoTest может работать на основе информации, доступной в отладчике, чтобы создать новый тест, который воспроизведет состояние и вызовы, вызвавшие сбой. Как только проблема будет устранена, извлеченный тест можно добавить в набор тестов в качестве защиты от регрессии проблемы.

Третий метод создания тестов производит так называемые сгенерированные тесты. В этом сценарии пользователь предоставляет EiffelStudio AutoTest классы, для которых должны быть созданы тесты, и некоторую дополнительную информацию, используемую для управления генерацией тестов. Затем инструмент начинает вызывать подпрограммы в целевых классах, используя рандомизированные значения аргументов. Для каждого уникального постусловия или нарушения инварианта класса AutoTest EiffelStudio создает один новый тест, воспроизводящий неудачный вызов.

История

EiffelStudio уходит своими корнями в первую реализацию Eiffel, разработанную Interactive Software Engineering Inc. (предшественница Eiffel Software) в 1986 году. вернуться к «EiffelBench», начатому в 1990 году в связи с разработкой версии языка Eiffel 3 (как описано в Eiffel: The Language, см. библиографию). EiffelBench была переименована в «EiffelStudio» примерно в 2001 году; Это также время, когда среда вышла за рамки своего происхождения из Unix и нацелена на Windows и другие платформы.

Основными выпусками с 2001 г. и некоторыми новыми функциями для каждого из них были:

  • 5.0, июль 2001 г.: первая версия, собственно «EiffelStudio»; интеграция предыдущего инструмента "EiffelCase" для графического дизайна с EiffelBench в форме инструмента EiffelStudio Diagram Tool)
  • 5.1, декабрь 2001 г.: первая версия с поддержкой.NET (пресс-релиз (PDF)). Он назывался "Eiffel #" перед выпуском [2].
  • 5.2, ноябрь 2002 г.: новый EiffelBuild для проектирования графического интерфейса пользователя, расширенная отладка, новые механизмы для интеграции C и C ++, улучшенные средства двусторонней передачи для инструмента Diagram (пресс-релиз ).
  • 5.3, март 2003: для Eiffel.NET доступна технология инкрементного компилятора. Eiffel2Java Java-интерфейс, EiffelStore (интерфейс реляционной базы данных) теперь доступен для.NET, первая версия Mac OS, улучшения производительности (пресс-релиз ).
  • 5.4, ноябрь 2003 г.: новый механизм преобразования, значительные улучшения производительности во время выполнения (в частности, для агентов ), значительные улучшения скорости компиляции, улучшенная поддержка многопоточности, основные улучшения EiffelBuild, первая поддержка новых механизмов, таких как определено комитетом Eiffel ECMA, поддержка предусловий и постусловий во внешних (например, C) подпрограммах, прозрачный способ вызова перегруженных подпрограмм.NET из Eiffel (пресс-релиз ).
  • 5.5, сентябрь 2004 г.: стыковка, улучшенный дебю gger, новые возможности языка ECMA (пресс-релиз ).
  • 5.6, август 2005: усовершенствованный инструмент диаграмм (поддержка UML, принудительно-ориентированные графики, улучшенная обратная связь), новый мастер EiffelCOM для создания Microsoft COM компоненты, лучшее завершение классов, более быстрая генерация кода.NET (пресс-релиз ).
  • 5.7, октябрь 2006 г.: добавление ISO / ECMA Eiffel (встроенные агенты, новая «расширенная» семантика, именованные кортежи, Unicode поддержка), средства рефакторинга, новый способ настройки системы проекта, метрики (пресс-релиз ).
  • 6.0, июнь 2007 г.: дополнение ISO / ECMA Eiffel (универсальность множественных ограничений, восьмеричная и двоичная нотация для целых чисел), новый редактор с вкладками, новые возможности стыковки, позволяющие пользователю определять свое рабочее пространство, контекстное меню доступно в дополнение к выбору и отпусканию, инструмент зависимости (пресс-релиз ).
  • 6.1, ноябрь 2007 г.: (пресс-релиз ).
  • 6.2, май 2008 г.: (пресс-релиз ).
  • 6.3, декабрь 2008 г.: (пресс-релиз ).
  • 6.4, июнь 2009 г.: (пресс-релиз ).
  • 6.5, ноябрь 2009 г.: (пресс-релиз ).
  • 6.6, май 2010 г.: (пресс-релиз ).
  • 6.7, ноябрь 2010 г.: (пресс-релиз ).
  • 6.8, май 2011 г.) Включает первое внедрение средств поддержки SCOOP, Простое параллельное объектно-ориентированное программирование. (пресс-релиз ).
  • 7.0, ноябрь 2011 г. Включает улучшения производительности и функциональности средства параллельной разработки SCOOP, библиотеку графического интерфейса пользователя и поддержку инструментов для структур интерфейса ленточный, улучшенную поддержку для разработки программного обеспечения void-safe и многих других улучшений.
  • 7.1, июнь 2012 г. Включает сборку мусора процессора SCOOP. Множественные улучшения в информационной системе Eiffel, связывающие код приложения для соответствующих внешних ресурсов, таких как документы требований.
  • 7.2, февраль 2013.
  • 7.3, июль 2013.
  • 13.11, декабрь 2013. Этот выпуск знаменует начало использования новая схема нумерации версий. (примечание к выпуску ) (пресс-релиз ).
  • 14.05, май 2014 г. Включает новый инструмент Eiffel Inspector (инструмент статического анализа, помогающий поддерживать высокий код качество). (пресс-релиз ).
  • 15.01, январь 2015 г. Новая среда выполнения SCOOP значительно улучшает производительность. (пресс-релиз ).
  • 15.08, август 201 г. 5. Улучшенное решение EiffelWeb для создания приложения веб-сервера. (пресс-релиз ).
  • 15.12, декабрь 2015 г. Улучшения языка (новое обозначение типа агента). (пресс-релиз ).
  • 16.05, май 2016. Технический релиз. (пресс-релиз ).
  • 17.01, Январь 2017 г. Механизм возможностей библиотеки для документирования и применения поддерживаемых параметров компиляции. Шаблоны кода. (17.01, выпуск )
  • 17.05, май 2017. Лучшее обнаружение устаревших функций. Выбор и удаление локальных переменных. (17.05, выпуск )
  • 18.01, февраль 2018. Более глубокий интегрированный анализатор кода. Улучшенные правила типов для условных выражений и массивов манифестов. Функции класса. (18.01, выпуск ).
  • 18.07, июль 2018. Ослабленные правила для функций класса. Последующие выражения в скобках. Удаленный цели проекта. (18.07, выпуск ).
  • 18.11, декабрь 2018. Все контейнеры могут использоваться в итерационной форме цикла, а линейные могут быть инициализированы из других. (18.11, выпуск ).
  • 19.05, май 2019 г. Операторы Unicode, HiDPI, удаление мертвого «класса», оптимизация компилятора. (выпуск 19.05 ).

Анализатор кода

Анализатор кода (бывший Inspector Eiffel) - это автоматизированная программа Eiffel тестирования программного обеспечения и статического анализа, выпущенная Eiffel Software, Первоначально созданный в результате проекта магистерской диссертации в ETH Zurich.

Анализатор кода - это инструмент статического анализа кода на основе правил, который работает как из встроенного режима в EiffelStudio, так и из командной строки. Он использует абстрактное синтаксическое дерево (AST), созданное компилятором Eiffel, а затем генерирует граф потока управления (CFG), который вычисляется модулем кода в инструменте. Затем CFG и AST посещаются по ряду определенных правил. Нарушения любого правила сообщаются пользователю в виде ошибок, предупреждений или подсказок. Каждое нарушение правила сообщает, какое именно правило было нарушено.

См. Также

Ссылки

Библиография

  • Eiffel Software: руководство EiffelStudio. В Интернете по адресу https://www.eiffel.org/documentation
  • Бертран Мейер: Eiffel: The Language, Prentice Hall, 1991 (второе исправленное издание, 1992 г.).
  • Bertrand Meyer: An Объектно-ориентированная среда: принципы и приложения, Prentice Hall. 1995 (описывает принципы, лежащие в основе оригинального EiffelBench).
  • Ким Вальден и Жан-Марк Нерсон: Бесшовная объектно-ориентированная программная архитектура, Прентис Холл, 1995 (содержит описание метода и обозначений BON).

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

Последняя правка сделана 2021-05-18 09:25:13
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте