СРЕДСТВА РАЗРАБОТКИ

Иван Савватеев    

Использование средств моделирования, основанных на UML (Unified Modeling Language - унифицированный язык моделирования), является, по крайней мере на словах, общепризнанной практикой при разработке крупных бизнес-приложений, предназначенных для эксплуатации на настольных системах или мэйнфреймах. Однако при создании ПО для встраиваемых систем моделирование применяется значительно реже, чему имеется ряд объективных причин: маломощность аппаратной базы встраиваемых систем по сравнению с ПК; жесткие ограничения по времени реакции на возникающие события и не менее жесткие требования к надежности ПО; существование широкого спектра процессорных архитектур, ни одна из которых не занимает доминирующего положения; связанное с этим разнообразие ОС и средств разработки и одновременно невозможность применения инструментария, предназначенного для создания решений для настольных систем. Тем не менее все более широкое использование в этой области довольно мощных 32-разрядных процессоров и одновременно стремительный рост сложности встраиваемого ПО побуждают разработчиков осваивать средства моделирования, из которых одним из наиболее мощных является платформа Rhapsody компании I-Logix (www. ilogix.com), недавно поглощенной фирмой Telelogic (www.telelogic.com).    

Диаграммы Rhapsody могут выглядеть как презентации

Rhapsody предоставляет системным архитекторам и разработчикам ПО визуальную среду, позволяющую анализировать требования и моделировать создаваемый продукт при помощи стандартной графической системы обозначений UML. Основным средством анализа функциональных требований являются варианты использования (Use Cases), а нефункциональные требования, зачастую уточняющие функциональные, моделируются при помощи ограничений (Constraints). Варианты использования и соответствующее им поведение можно детализировать при помощи диаграмм последовательности (Sequence Diagrams), кооперации (Collaboration Diagrams), состояний (Statecharts) и деятельности (Activity Diagrams). Чтобы выделить аппаратные и программные составляющие системы, можно воспользоваться диаграммами развертывания (Deployment Diagrams) и диаграммами компонентов (Component Diagrams). Детализированное описание архитектуры может быть создано посредством диаграмм пакетов (Package Diagrams), диаграмм классов (Class Diagrams) и диаграмм объектных моделей (Object Model Diagrams).

Rhapsody обеспечивает высокий уровень синхронизации между различными видами и представлениями UML, позволяя использовать информацию из одного представления в других. Очень важно и то, что код разрабатываемого ПО независимо от способа его создания (автоматически или вручную) полностью интегрируется в UML-модель. Более того, Rhapsody дает возможность свободного выбора между работой с UML на уровне моделей или исходного кода (поддерживаются языки Си, C++, Java и Ada, с различными компиляторами которых Rhapsody имеет средства интеграции). Это позволяет для решения каждой конкретной задачи применять наиболее подходящий инструментарий, что способствует ускорению разработки. Динамическая двусторонняя синхронизация модели и кода является одной из важнейших возможностей Rhapsody. При ее наличии программист может активно заниматься кодированием задачи в течение всей разработки, а не откладывать его на поздние стадии и тем самым своевременно выявлять и исправлять ошибки. По сути модель на языке UML и код на языке программирования в Rhapsody являются лишь двумя различными представлениями одного и того же проекта. Благодаря этому свойству платформы ликвидируется одна из наиболее неприятных и опасных особенностей разработки ПО с использованием UML - утрата соответствия между моделями, созданными на этапе анализа и проектирования, и реальным кодом, полученным в процессе разработки и отладки приложения.    

Rhapsody - среда разработки, а не только инструмент моделирования

Чтобы при создании ПО значительно повысить продуктивность и снизить риски, необходимо обеспечить выявление и устранение ошибок на ранних стадиях процесса разработки. Rhapsody оказывает в этом существенную помощь благодаря средствам исполнения моделей, которые позволяют разработчикам в любой момент проверить создаваемую систему. По существу, для отладки приложения в Rhapsody используются те же графические представления, что и для построения моделей: с этой целью Rhapsody превращает модели UML в проверяемые исполняемые модели. В результате во время тестового прогона можно видеть текущее состояние выделенных диаграмм, передаваемые сообщения в диаграммах последовательности, динамически создаваемые и уничтожаемые экземпляры классов, а также изменяющиеся значения атрибутов. Это позволяет создавать и проверять графические исполняемые спецификации до начала высокоуровневого проектирования. Более того, программисты могут исполнять и проверять структуру, интерфейсы и поведение компонентов раньше, чем система будет передана на приемочные испытания. Группа тестирования может графически проверить систему, выполняя сценарии на уровне "черного ящика".

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

Благодаря собственной среде исполнения реального времени в Rhapsody можно автоматически создавать приложения для любой встраиваемой системы и, следовательно, развертывать одну логическую модель для различных физических архитектур, что значительно сокращает срок доставки приложения в целевую рабочую среду. Более того, эта среда является открытой, расширяемой и реконфигурируемой, что позволяет настроить ее практически для любой собственной или коммерческой ОС (готовая поддержка обеспечивается для целого ряда ОС, включая Windows, Linux, Solaris, QNX и др.). Кроме того, приложения Rhapsody могут быть развернуты на аппаратных платформах, работающих без ОС.

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

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

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

Rhapsody Test Conductor предоставляет средства автоматизации тестирования, что особенно важно при создании крупных систем с повышенными требованиями к надежности. В таких системах тестовые наборы должны обеспечивать проверку всего создаваемого кода при любых значениях входных параметров, причем весь этот набор необходимо выполнять при внесении любых изменений в код, что делает подобное тестирование без использования специализированного инструментария крайне затруднительным. Для упрощения разработки тестов может быть использован Rhapsody ATG (Automatic Test Generator), хотя особые тестовые сценарии все равно приходится разрабатывать вручную.

Rhapsody ReporterPLUS обеспечивает на основе моделей генерацию сопроводительной документации в форматах Microsoft Word, PowerPoint и HTML. Предоставляется более двадцати стандартных шаблонов документации, а также средства разработки собственных шаблонов.