СТАТЬЯ
05.11.01

Rational Rose RealTime

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

Так или иначе, разработчики всегда использовали моделирование, например, в виде рисования схем бумаге, электронной доске или документирования. Но, с развитием UML (Unified Modeling Language), у разработчиков появилась возможность представлять свои, под час одним им понятные модели, в общих нотациях. Что дало огромный толчок развитию объектно-ориентированного моделирования.

Итак, UML - это графический язык для визуализации, проектирования и документирования программных систем, призванный облегчить работу разработчика на всех её этапах. Однако понято, что невозможно придумать язык одинаково хорошо подходящий для проектирования любых систем, вот почему UML не является замкнутым стандартом, а напротив всегда открыт для расширения. Программной реализацией одного из таких расширений стандартного UML, предназначенного для моделирования систем реального времени, является продукт компании Rational - Rational Rose Real Time . Здесь я сразу хочу оговориться, что Rose Real Time являет собой нечто большее, чем просто реализацию UML, он предоставляет и другие важные возможности, но об этом речь пойдет ниже.

Каковы же особенности этого расширения UML? Большинство систем реального времени должно иметь возможность совершать несколько одновременных действий, обрабатывать внешние события и принимать их в любое время без прерывания текущей работы. В силу этих и других особенностей систем реального времени у них, естественно, появляются особенности и в архитектуре, их то и реализует новые элементы в Real-time нотации UML.Таким элементами являются, например, капсулы. Капсула представляет собой особую форму класса (одного из основных элементов в UML), сконструированного таким образом, чтобы проще было реализовать принцип многозадачности. Добавлены так же такие элементы, как порты, протоколы, однако перечисление всех элементов, равно как и обзор их свойств и возможностей, не входит в задачу данной статьи, её целью является описание возможностей Rose Real Time. В дополнение к новым элементам и диаграммам, кои тоже имеются, использующимся при моделировании и анализе необходимо также упомянуть о других новых инструментах - компонентах и процессорах, которые, вообще говоря, присутствуют в стандарте UML, но в данном расширении, а скорее даже в самом Rose Real Time являются не просто удобными абстракциями, а реальными средствами для дальнейшего развертывания модели. Этому, дальнейшему развертыванию и будет посвящена следующая часть данной статьи. Но вначале мне хотелось бы сделать небольшое замечание по поводу вышеизложенного.

Могло сложиться впечатление, что Rose Real Time реализует только новую нотацию UML. Это не так, наряду с новыми элементами и диаграммами Rose Real Time предоставляет пользователю все те элементы и диаграммы, которые были реализованы в Rational Rose, как-то диаграммы классов, прецедентов, коопераций и т.д. Здесь также следует отметить, что Rose Real Time унаследовал от Rational Rose генератор отчетов и анализатор С++ кода, возможности которых были описаны в других статьях, и некоторые другие инструменты.

Теперь перейдем к описанию тех возможностей, о которых уже говорилось выше. Давайте поговорим о том, что можно сделать в Rose Real Time с построенной UML моделью?

Ранее, законченная модель передавалась программистам, которые на её основе писали исполняемый код, в Rational Rose появилась возможность генерации кода, но генерировались только шапки. Rose Real Time является ещё одним шагом вперед на данном пути, а именно он позволяет генерировать исполняемый код скомпилировать его и запустить ваше приложение прямо из среды.

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

  1. UML модель, которая описывает структуру и задает шаблон поведения системы.
  2. C++ код, который определяет конкретное поведение и помещается в стандартные места, предусмотренные Rose Real Time (таковыми местами, например, являются: действия при переходах, спецификация классов, капсул их методов и т.д.).

Если вторая компонента, будучи вставленная в соответствующий файл, понятна компилятору, то первая требует преобразования в С++ код. Данное преобразование осуществляет служебная библиотека (Rose Real Time Services Library). Этот важнейший инструмент является по существу системой отсчета для моделирования систем реального времени. Она включает в себя исполняемые функции для управления параллельного исполнения задач, приема и посылки сообщений, синхронизации событий и других стандартных элементов. Библиотека представляет собой некую иерархию классов, которые и используются для преобразования абстрактных UML диаграмм в конкретные куски кода. Но возможности Rose Real Time не ограничиваются лишь его служебной библиотекой, он позволяет задействовать и внешние библиотеки, если это необходимо. Так что практически нет ограничений на код, который вы хотите поместить в свою модель.

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

Теперь давайте обсудим, какие преимущества дает разработчику Rose Real Time.Так как Rose Real Time, благодаря служебной библиотеке, может откомпилировать и исполнить даже модель архитектуры высокого уровня, то это дает возможность уже на этапе проектирования понять проблемы и обнаружить ошибки в организации архитектуры, быстро рассмотреть альтернативные варианты дизайна и непрерывно тестировать модель в течение всего процесса разработки. Всё это, безусловно, делает процесс разработки более гибким и управляемым. Наибольшую пользу Rose Real Time дает, если в процессе разработки запускать приложения как можно чаще, делая в нём малые изменения, что даст вам возможность быстро отлавливать не только "стратегические" ошибки, но и ошибки в конкретной реализации того или иного элемента. Ведь в запускаемом приложении легче искать ошибки.

Rose Real Time - это программный продукт, специализированный для разработки систем в реальном масштабе времени. Он может быть использован на всех фазах жизненного цикла разработки: от первоначального анализа и проектирования до полной программной реализации и тестирования. Связывая воедино процессы объектного моделирования и программной реализации модели, Rose Real Time помогает обеспечить высокую целостность и устойчивость разрабатываемому продукту и сократить время его разработки.

Дополнительная информация

Дополнительную информацию Вы можете получить в компании Interface Ltd.

Обсудить на форуме Rational Software
Отправить ссылку на страницу по e-mail


Interface Ltd.
Тel/Fax: +7(095) 105-0049 (многоканальный)
Отправить E-Mail
http://www.interface.ru
Ваши замечания и предложения отправляйте автору
По техническим вопросам обращайтесь к вебмастеру
Документ опубликован: 05.11.01