Создание высококачественного кода с помощью интегрированных сред разработки

Источник: IBM

Интегрированные среды разработки (IDE) дают разработчикам специализированные инструменты для создания ПО. Интегрированные среды Rational Software Architect и Rational Application Developer предоставляют автоматизированные инструменты быстрой разработки высококачественного кода. Интегрированная среда разработки упрощает определение, предотвращение и исправление дефектов в разрабатываемом ПО. Экономию от более эффективного обслуживания ПО можно использовать для создания инновационных продуктов с целью увеличения дохода.

Введение

Интегрированные среды разработки, такие как IBM® Rational® Software Architect и IBM® Rational® Application Developer for WebSphere Software, позволяют улучшить качество кода, облегчая выявление дефектов на ранних этапах цикла разработки. Поскольку анализ и проектирование изменений ПО занимают больше времени, чем их реализация, интегрированная среда разработки (далее - IDE) должна предоставлять автоматизированные инструменты визуализации воздействия изменений. Такая IDE сводит к минимуму вероятность негативных последствий изменений и упрощает процесс анализа воздействия.

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

В этой статье дается краткий обзор возможностей Rational Software Architect и Rational Application Developer, которые позволяют избежать дефектов кода, найти и исправить их на ранних этапах процесса разработки, в результате чего повышается качество кода, а также упрощается обслуживание кода и своевременный выпуск версий.

Примечание.
Продукт Rational Application Developer for WebSphere Software входит в состав Rational Software Architect for WebSphere Software, но оба продукта можно приобрести отдельно. Все возможности Rational Application Developer, упомянутые в этой статье, также относятся к Rational Software Architect for WebSphere Software.

Преобразования для автоматизации создания новых артефактов разработки

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

Типы преобразований Rational Software Architect:

  • Модель в модель
  • Модель в текст (код)
  • Текст в модель
  • Текст в текст

Эта статья посвящена преобразованиям "модель в текст" и "текст в модель", поскольку они позволяют генерировать код (и связанные с кодом артефакты) из архитектуры и дизайна моделей и выполнять обратное преобразование. Примеры преобразований "модель в текст" в Rational Software Architect: UML в Java, UML в C#, UML в WSDL, UML в SO, и UML в SCA. Для многих из них можно также выполнять обратное преобразование, создавая модели из артефактов разработки (например, Java в UML). (Обратное преобразование - это не то же самое, что визуализация, которая обсуждается далее, поскольку артефакты не обязательно неразрывно связаны с моделью). Обратное преобразование способствует лучшему пониманию структуры и реализации ПО. Оно помогает избежать ошибок при создании и изменении кода. Также обратные преобразования обеспечивают способ модификации исходных моделей. Преобразования, предоставляемые Rational Software Architect, можно дополнять расширениями, а также создавать новые преобразования.

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

Рисунок 1. Конфигурация преобразования
Рисунок 1. Конфигурация преобразования

Автоматизация разработки кода с помощью мастеров

Мастера - это автоматизированные инструменты, позволяющие выполнять сложные задачи. Они собирают необходимые для этих задач информацию или параметры, а затем выполняют сами задачи. В Rational Software Architect есть множество мастеров для широкого спектра задач, от создания проекта до генерирования кода. Мастера улучшают качество кода, позволяя получать проверенные, повторяемые и ожидаемые результаты. Некоторые результаты могут быть очень большими, например, сотни строк кода из мастера EJB. Автоматизация, обеспечиваемая мастерами, позволяет получать результаты, не содержащие ошибок, за считанные секунды или минуты.

Rational Software Architect имеет несколько мастеров, которые поддерживают следующие технологии:

  • Java
  • Web-сервисы
  • Компоненты Enterprise Java Beans (EJB)
  • Web-проекты
  • Шаблоны
  • Подключения к базам данных
  • Создание таблиц и объектов
  • Коннектор Java 2 Connector (J2C)
  • Физические модели данных

Пример мастера создания Web-сервисов показан на рисунке 2.

Рисунок 2. Мастер создания Web-сервисов
Рисунок 2. Мастер создания Web-сервисов

Программы проверки (валидаторы) файлов и кода на соответствие правилам

Rational Application Developer предоставляет ряд валидаторов для разных видов технологии разработки. Валидаторы проверяют файлы или исходный код на соответствие правилам для этого вида технологии (например, JAX-RS) и сообщают о найденных ошибках. Валидаторы улучшают качество кода. Они быстро выполняют автоматическое сканирование больших объемов кода и могут выявлять как скрытые, так и относительно очевидные дефекты. Подобные дефекты отнимают очень много времени и сложны в обнаружении. По умолчанию проверка запускается автоматически после выполнения компоновки. Кроме того, можно в любое время выполнить проверку вручную. Проверку можно настроить на включение и отключение различных валидаторов. Также можно настроить фильтры, чтобы проверять только конкретные артефакты. Валидаторами можно управлять с помощью параметров настройки Validator (см. пример на рисунке 3).

Рисунок 3. Некоторые валидаторы Rational Application Developer и параметры настройки
Validators and settings

Визуализация кода, делающая структуру более наглядной

Rational Application Developer позволяет визуализировать код путем создания динамических тематических диаграмм, а также путем создания диаграмм классов вручную. Диаграммы позволяют быстро увидеть и понять структуру исходного кода. Когда разработчики лучше понимают структуру создаваемого или модифицируемого кода, качество кода повышается. Визуализацию можно использовать для документирования кода, чтобы другие могли лучше понять его. С помощью диаграмм можно редактировать код в визуальном режиме. Визуализация позволяет повысить производительность труда, автоматизировать создание документации, улучшить совместную работу в группе, а также автоматизировать и упростить повторяющиеся задачи, такие как создание классов и методов.

Визуализация создает кодоориентированные UML-диаграммы, являющиеся точным представлением исходного кода. Любые изменения, вносимые в диаграммы, мгновенно отражаются в исходном коде и наоборот. Иными словами, диаграммы являются кодом. Визуализация отличается от преобразований тем, что код, создаваемый преобразованиями, можно поддерживать отдельно от исходной модели. Пример визуализированного Java-класса показан на рисунке 4. Обратите внимание, что атрибуты и методы класса на диаграмме точно соответствуют Enterprise Explorer.

Рисунок 4. Модель, созданная путем визуализации Java-кода

Рисунок 4. Модель, созданная путем визуализации Java-кодаТематические диаграммы - это основанные на запросах нередактируемые диаграммы, которые используются для быстрого отображения связей между элементами. Например, можно выбрать Java-класс и создать тематическую диаграмму, которая покажет все Java-классы, связанные с выбранным классом. Пример тематической диаграммы показан на рисунке 5.

Рисунок 5. Тематическая диаграмма
Рисунок 5. Тематическая диаграмма

Среда тестирования приложений WebSphere

Среда тестирования WebSphere - это среда времени исполнения, интегрированная в рабочую среду тестирования приложений для WebSphere Application Server.

Среда тестирования для WebSphere Application Server требует полной установки WebSphere Application Server (поставляется с Rational Application Developer) и работает на сервере среды исполнения с ресурсами в рамках настройки публикации. Если на вашей машине уже установлен сервер WebSphere Application Server, среду тестирования устанавливать не нужно. Существующий сервер можно использовать как для тестирования, так и в качестве внешнего сервера. Публикацию можно настроить как на тестовую среду, так и на внешний сервер. Более подробная информация о настройках публикации приведена в информационном центре WebSphere Application Server.

Среда тестирования WebSphere предоставляет следующие преимущества:

  • Автономное тестирование "все в одном".
  • Поддержка метода горячей замены - внесение изменений в программный код при отладке и вступление изменений в силу без перезапуска сервера.
  • Возможность отладки живого серверного кода с максимальной скоростью.
  • Запуск административных сценариев WebSphere.
  • Отладка Jython-сценариев.
  • Генерирование административных команд WebSphere для удобства разработки Jython-сценариев.
  • Возможность настройки нескольких Web-приложений.
  • Поддержка нескольких серверов, которые можно настраивать и запускать одновременно.
  • Возможность профилирования.
  • Возможность управления версиями для серверных конфигураций.
  • Использование универсального тестового клиента для тестирования корпоративных bean-компонентов, архитектуры Persistence Architecture (JPA) и Java™-классов.
  • Доступ к консоли WebSphere Application Server Administration Console.
  • Возможность автоматически создавать таблицы и источники данных для тестирования bean-компонентов с управляемой контейнером персистенцией (CMP) и интерфейсов JPA.

Rational Application Developer V9 поддерживает WebSphere Application Server версий 7.x, 8.0.x и 8.5.x. Кроме того, поддерживается профиль Liberty сервера WebSphere Application Server 8.5. Профиль Liberty представляет собой облегченный сервер WebSphere Application Server с быстрым запуском и перезапуском, который предназначен в первую очередь для Web-приложений, не требующих полной среды Java EE.

В среде Rational Application Developer можно установить несколько серверов WebSphere Application Server разных версий.


Инструменты профилирования Java-приложений

Rational Application Developer имеет несколько мощных инструментов для профилирования Java-приложений. Для анализа поведения приложения выполните его профилирование так, чтобы понять различные аспекты поведения приложения и улучшить приложение в конкретных областях. Rational Application Developer позволяет выполнять профилирование следующих областей:

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

С помощью Rational Application Developer можно выполнять профилирование на локальных и удаленных машинах, в том числе на локальных и удаленных серверах WebSphere Application Server. Для выполнения профилирования на удаленных машинах установите Agent Controller на удаленной машине.

Профиль процессора может генерировать динамические диаграммы взаимодействия для классов и потоков. Пример диаграммы взаимодействия классов приведен на рисунке 6.

Рисунок 6. Диаграмма взаимодействия классов

Рисунок 6. Диаграмма взаимодействия классов

С профилями связаны зонды (probe). Зонды - это фрагменты Java-кода, которые используются для сбора данных о приложении во время исполнения. Платформа Eclipse, которую использует Rational Application Developer, предоставляет комплект Probekit для создания и использования зондов. Probekit обычно используется для зондов, которые собирают данные, представляющие интерес для разработчиков (например, входную и выходную информацию методов).

Решение Software Analyzer для раннего обнаружения проблем

Решение Rational Software Architect Software Analyzer улучшает качество кода, помогая обнаружить проблемы на ранних этапах жизненного цикла разработки ПО. Оно позволяет настраивать различные виды статического анализа. Software Analyzer сканирует артефакты разработки, применяет выбранные конфигурации анализа и выводит результаты анализа по следующим категориям:

Проверка кода (Java- и C++-код)
Имеется более 400 правил, которые можно расширять. Можно выбирать правила, которые будут применяться в анализе. Отчеты можно просматривать по правилам или по ресурсам.
 
Архитектурный анализ Java-кода (только Rational Software Architect)
Выявляет и моделирует шаблоны и антишаблоны, найденные в исходном коде.
 
Метрики ПО Java (только Rational Software Architect)
Создает несколько видов метрик, включая Complexity, Halstead, Coupling и Inheritance.
 
Метрики UML-модели (только Rational Software Architect)
Определяет различные характеристики UML-модели, в том числе Coupling, Diagrams Statistics, Inheritance и Size.
 
Проверка UML-модели (только Rational Software Architect)
Сравнивает UML-модель с критериями проверки и отмечает элементы модели, не соответствующие критериям.
 

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

Пример отчета о проверке Java-кода показан на рисунке 7.

Рисунок 7. Метрики ПО, собираемые Software Analyzer
Рисунок 7. Метрики ПО, собираемые Software Analyzer

Rational Test Workbench для тестирования приложений

Тестирование очень важно для улучшения качества кода. Тестирование подтверждает, что приложения надлежащим образом реализуют требования, и выявляет дефекты, не позволяющие достичь ожидаемого поведения приложений. Решение IBM® Rational® Test Workbench поддерживает и выполняет различные виды тестирования, в том числе функциональное тестирование, тестирование производительности и виртуализацию тестирования.

Решение IBM® Rational® Quality Manager позволяет работать с планами тестирования, контрольными тестами и ресурсами лаборатории тестирования, обеспечивая управление тестами, создание отчетов и трассировку организованным и проверяемым способом.

Rational Software Architect Design Manager помогает связать ПО, разработанное при помощи Rational Software Architect, с артефактами тестирования в Rational Quality Manager и с выполнением тестов и получением результатов в Rational Test Workbench.

Rational Quality Manager и Rational Software Architect Design Manager построены на платформе IBM® Jazz™. Платформа Jazz не является отдельным продуктом. Это технология, которая обеспечивает тесную Web-интеграцию Jazz-продуктов, а также предоставляет общие механизмы для совместной работы (например, описания и комментарии). Jazz также обеспечивает OSLC-связывание, которое делает трассировку артефактов разработки простой для реализации и навигации.

Rational Software Architect Design Manager обеспечивает возможность совместной работы в группе и управление информацией на протяжении всего жизненного цикла разработки приложений. Rational Software Architect Design Manager позволяет централизовано хранить, совместно использовать и обслуживать схемы и модели, обеспечивая тесное сотрудничество с заинтересованными сторонами для успешной реализации требований. Rational Software Architect Design Manager помогает улучшить качество, время и гибкость планирования, разработки и доставки ПО.

К артефактам, созданным в Rational Software Architec, можно обращаться из Rational Software Architect Design Manager. Благодаря платформе Jazz эти артефакты можно связать с артефактами тестирования в Rational Quality Manager. С помощью Rational Software Architect Design Manager артефакты можно проследить от разработки в Rational Software Architect до тестирования в Rational Quality Manager. Результатом является более высокое качество кода, т.к. тестируется каждый продукт разработки. Благодаря интеграции Rational Quality Manager и Rational Test Workbench можно видеть, сколько тестов завершено и каковы их результаты. Кроме того, поскольку IBM® Rational® Requirements Composer основан на платформе Jazz, требования, созданные в Rational Requirements Composer, можно связать с артефактами разработки в Rational Software Architect Design Manager. Эта позволяет определить, все ли требования реализованы, и проверить артефакты разработки на соответствие требованиям.

UML-диаграмма в Rational Software Architect Design Manager с разметкой и комментариями показана на рисунке 8.

Рисунок 8. UML-диаграмма в Rational Software Architect Design Manager с разметкой и комментариями
Рисунок 8. UML-диаграмма в Rational Software Architect Design Manager с разметкой и комментариями

Rational Team Concert помогает в совместной работе

Интеграция Rational Application Developer с Rational Team Concert предоставляет дополнительные возможности по улучшению качества кода. Rational Team Concert обеспечивает отладку и тестовое покрытие кода в режиме совместной работы.

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

Интеграцию покрытия кода с Rational Team Concert можно использовать для повышения качества кода различными способами:

  • Устанавливать пороговые значения качества кода, которые должны быть соблюдены, прежде чем код будет передан в поток разработки.
  • Создавать элементы работ для элементов покрытия кода.
  • Делать результаты покрытия кода сборок видимыми для вашей группы в областях проекта Rational Team Concert и загружать статистику покрытия кода в рабочую среду.
  • Находить элементы работ, связанные с элементами покрытия кода.

Если покрытие кода включено, в Rational Application Developer Project Explorer отображается цветовая маркировка статистики охвата исполняемого кода. Цветовая маркировка результатов охвата отображается в редакторе кода для каждой строки, если файл кода открыт. Rational Application Developer также может создавать отчет о покрытии, отображающий выполненные элементы кода и их охват. Пример результатов покрытия кода и отчета Code Coverage Report показан на рисунке 9.

Рисунок 9. Пример отчета Code Coverage Report
Рисунок 9. Пример отчета Code Coverage Report

Заключение

В данной статье представлен краткий обзор функций интегрированной среды разработки Rational, способствующих повышению качества создаваемого кода. В Rational Software Architect и Rational Application Developer имеется множество инструментов. Иногда даже опытные пользователи Rational не используют все имеющиеся ресурсы. Каждое обновление Rational Software Architect и Rational Application Developer приносит новые технологии и усовершенствованные методики.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=36762