На протяжении этой книги вам предлагалось писать и выполнять примеры в среде EiffelStudio. Данное приложение поможет вам подготовить примеры и запустить их на выполнение. Более точно - здесь вы найдете только основную справочную информацию; за деталями следует обратиться к расширенной версии, которая доступна онлайн на http://touch.ethz.ch/.
EiffelStudio - это общецелевая интегрированная среда разработки (Integrated Development Environment - IDE). Она является результатом многолетней разработки и повседневно применяется для создания программных систем, больших и малых, в различных областях приложения.
Кстати, одной из таких систем является сама EiffelStudio, написанная полностью на Eiffel, за исключением некоторого кода на C, реализующего систему исполнения ("run-time system"). К моменту написания этого текста EiffelStudio включала примерно 2.2 миллиона строк кода, написанного в соответствии с принципами этой книги. Если вам интересно изучить этот код, не стесняйтесь - все окружение доступно как открытый код.
EiffelStudio имеет версии для различных операционных систем, включая Windows, Linux и другие варианты Unix. Детали инсталляции и запуска EiffelStudio варьируются на каждой платформе, и графическое представление ("посмотри и почувствуй") соответствует стандартным соглашениям каждой поддерживаемой платформы, но среда в любом случае работает идентично.
Пояснения в этом приложении не зависят от платформы, за одним исключением - используется термин "каталог" (directory) вместо привычного для пользователей Windows термина "папка" (folder).
На рисунке ниже показаны основные компоненты EiffelStudio. Чтобы начать использовать EiffelStudio, нет необходимости в чтении этих разделов, но после чтения этой части книги у вас сформируется лучшее понимание, почему вещи устроены именно так, а не иначе.
В EiffelStudio вы строите системы. Система (называемая также проектом в EiffelStudio) представляет коллекцию классов, сгруппированных для удобства в кластеры. Один из этих классов является корневым; корень определяет точку запуска проекта на выполнение. В EiffelStudio можно:
Если вы хотите работать с одним из примеров этой книги, то можно использовать второй способ, так как соответствующий ECF уже существует. Требуемое соглашение поиска этого файла задано при описании первого примера: каждый пример размещается в подкаталоге каталога примера в поставке Traffic. Имя каждого подкаталога строится из имени главы и имени примера, например, 02_object для системы "object".
Двойной щелчок ECF в подходящем каталоге запустит EiffelStudio и загрузит систему. После этого первое, что нужно сделать, - это нажать кнопку "Compile", чтобы скомпилировать систему в ее начальной версии. Поработав с начальной версией, можно приступить к ее модификации.
Для показа класса в левом верхнем подокне есть несколько возможностей.
Строка кнопок, отображаемая в интерфейсе среды, позволяет изменять формат отображения, выбрав подходящий облик, такой как Contract или Flat (контрактный облик класса или его плоский облик).
Можно отображать как любые облики, так и графическое представление, метрики, информацию компилятора и другие свойства. Для отображения используется нижнее левое подокно и его различные вкладки. Предпочитаемую раскладку окон среды можно сохранить в файле; это полезно, если EiffelStudio используется на разных машинах и вы не хотите повторять процесс установки.
Заметьте: "нижнее левое" и другие позиционные описания ссылаются на раскладку по умолчанию. Внешний вид среды можно настроить по своему вкусу, перетаскивая различные подокна. Раскладка будет сохраняться между сеансами. Если запутаетесь, то всегда можно восстановить раскладку по умолчанию, используя View -> Tools Layout -> Restore Default Layout.
Для задания или изменения корневого класса и корневой процедуры системы выберите в главном меню пункт File -> Project Settings, затем щелкните Target: s, где s - имя вашей системы. Вход Root укажет корень в формате root_class.root_procedure; можно его отредактировать, затем перекомпилировать.
Можно управлять уровнем мониторинга элементов контракта: предусловием, постусловием, инвариантом класса, инвариантами циклов, вариантами циклов и оператором проверки - check (последняя конструкция, которая до сих пор не использовалась, - это простой оператор, устанавливающий, что некоторое свойство должно иметь место в данной точке программы). Установки независимо применимы к каждой категории. Чтобы изменить значения, установленные по умолчанию, выберите File -> Project Settings, затем Ta r get: s, где s- имя проекта, затем Assertions.
Для мониторинга выполнения системы, анализа структуры объектов в период выполнения, пошагового выполнения кода и даже выполнения откатов на несколько шагов назад можно использовать отладчик EiffelStudio. Детальную информацию по его применению можно найти на http://docs.eiffel.com/book/eiffelstudio/debugger.
Все должно идти гладко, но если в некоторой точке кажется, что все неожиданно перестало работать, не паникуйте, - помните следующее.
Если проблема в том, что вы не находите инструмент, который ранее в интерфейсе уже использовался, восстановите сохраненную раскладку или раскладку по умолчанию. Используйте для этого, как объяснялось выше, View -> Tools Layout.
Если действительно все плохо и вы обнаруживаете, что система в странном состоянии, то причиной может быть повреждение файлов проекта. Тогда вы можете:
Эквивалентный прием, выполняемый вне EiffelStudio, состоит в удалении каталога EIFGEN (для файлов, генерируемых Eiffel) из каталога проекта. Удаленный каталог содержит файлы, сгенерированные компилятором, которые будут созданы при следующей компиляции.
Мощная среда разработки EiffelStudio обладает многими возможностями, лишь первые поверхностные штрихи которых представлены в данном приложении. Полную информацию, включая руководства, учебники, видео, ссылки на документацию, можно найти по адресу: http://docs.eiffel.com.