Опубликован: 06.10.2011 | Доступ: свободный | Студентов: 1615 / 78 | Оценка: 4.67 / 3.67 | Длительность: 18:18:00
Лекция 5:

Инструментарий

< Лекция 4 || Лекция 5: 123 || Лекция 6 >
Аннотация: В лекции расматриваются текстовые редакторы, метрики, интегрированная среда обработки и подробно изучается управление конфигурацией.

4.1. Текстовые редакторы на этапах проектирования и программирования

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

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

  • Хороший общецелевой редактор предлагает много усовершенствованных свойств, например, способ выполнения сложных изменений или командный язык для обработки документов специальным образом. Но такие редакторы не "заточены" под программирование и не имеют некоторых характерных свойств, важных для программ. В частности, они не знают, что программы обрабатываются компилятором и выполняются под управлением отладчика.
  • Специализированный редактор программ может получать преимущества, зная специфику языка, например, он может выполнять синтаксический анализ текста непосредственно в момент ввода этого текста. Он может иметь кнопку запуска компиляции и иметь другие способы прямого взаимодействия с различными средствами разработки. Но в отношении свойств, не связанных со спецификой языка, он может быть менее продвинутым, чем общецелевой редактор текста.

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

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

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

Текстовый облик (вверху) и построение диаграмм в EiffelStudio

увеличить изображение
Рис. 4.1. Текстовый облик (вверху) и построение диаграмм в EiffelStudio
Как пример, EiffelStudio предлагает встроенный редактор для текстов классов. Работа стала бы проще, если бы можно было предположить, что это единственный способ для пользователей ввести текст класса, – было бы легче сохранять историю изменений, облегчался бы процесс перекомпиляции, описанный ниже. Но необходимо учитывать, что пользователи могут использовать другие текстовые редакторы. В этом случае компилятор должен анализировать файлы и их метки времени (время последней модификации), чтобы знать, что следует перекомпилировать.

Помимо чисто текстуальных средств часто может быть удобным применять графику для представления программных текстов, такую как диаграммы, используемые в этом курсе для описания архитектуры ПО в виде множества классов со связями, которые отражают отношения наследования и "клиент-поставщик". Задействованная нотация называется BON-нотацией (Business Object Notation). Другой, более сложной нотацией, также широко используемой, является UML (Unified Modeling Language) – унифицированный язык моделирования. Графический инструментарий, поддерживая эти нотации, часто позволяет ввести диаграмму в интерактивном режиме, затем автоматически сгенерировать программный текст или его шаблон, отражающий структуру, которая задана диаграммой. Такие инструменты часто относят к CASE- средствам (Computer-Aided Software Engineering) – термин, который в буквальном смысле относится ко всем рассматриваемым в этой лекции средствам, но обычно применяется в более ограниченном смысле. Хорошо известным инструментом, поддерживающим UML, является система Rose от Rational Software. EiffelStudio включает инструмент Diagram Tool, позволяющий отображать диаграммы классов и кластеров:

Такой инструментарий должен удовлетворять требованию "обращения цикла" – гарантировать, что преобразование графики в текст и обратно, выполняемое в любом порядке, возвращает оригинал. Для многих людей графические облики дают более точное понимание общей структуры. Но когда дело доходит до точной семантики, нет ничего лучшего, чем текст. Обращение цикла гарантирует согласованность этих двух точек зрения. Инструментарий позволяет вам свободно переходить от графического образа к тексту и обратно, изменяя по желанию либо картинку, либо текст, сохраняя согласованность представлений. Этот принцип соблюдается при работе с инструментом Diagram Tool.

< Лекция 4 || Лекция 5: 123 || Лекция 6 >