IBM Rational / Telelogic SDL Suite

IBM Rational SDL Suite - это решение для разработки программного обеспечения в режиме реального времени, которое предоставляет возможности описания и разработки сложных коммуникационных систем, управляемых событиями.

  • Гарантирует высокое качество приложений за счет непрерывной проверки моделей, совместного имитационного моделирования и отладки.
  • Защищает инвестиции благодаря использованию существующего программного кода на C/C++ при разработке новых протоколов.
  • Распознает поведение приложений на ранней стадии за счет имитационного моделирования архитектуры и функциональности без необходимости написания программного кода, даже в случае незавершенных и платформенно-независимых моделей.
  • Повышает качество продуктов за счет прозрачной интеграции процессов проектирования и тестирования.
  • Повышает производительность благодаря универсальному стандартизованному языку описания тестов, который поддерживает ручное и автоматическое генерирование и выполнение тестовых сценариев.
  • Снижает затраты благодаря модульному процессу, структура которого позволяет создавать библиотеки с возможностью повторного использования в других версиях систем и на других аппаратных платформах.
  • Поддерживаемые операционные системы: HP Unix, Sun Solaris, Windows.

Инструмент IBM Rational / Telelogic SDL Suite построен на базе международного стандартного языка SDL(Specification and Description Language), официально признан ITU-ETSI, используется ими и рекомендован этими организациями для дизайна систем и приложений для телекома, систем реального времени, встраиваемого программного обеспечения. Следует заметить, что большинство телекоммуникационных протоколов помимо текстового описания уже специфицировано ITU-ETSI с помощью SDL-диаграмм, для построения которых эти организации также используют IBM Rational / Telelogic Tau SDL. Tau SDL весьма напоминает описанный выше Tau, хотя ради исторической справедливости, следует отметить, что как раз Tau строился, исходя из зарекомендовавших себя с положительной стороны, возможностей Tau SDL:

- имеется опция Simulator, которая в режиме реального времени позволяет моделировать поведение всей системы или ее отдельных частей, с использованием MSС-диаграмм(диаграмм последовательностей).

- имеется опция Validator, предназначенная для дополнительного поиска ошибок, позволяя находить перекрестные ссылки, "мертвые петли", разрывы в графе, ссылки "в никуда", ошибки ввода-вывода и т.д.

- имеется кодогенератор, автоматически выдающий до 100% исходного кода на языке С. Нас часто спрашивают об основных преимуществах использования Tau SDL, который может автоматизировать труд разработчика, по сравнению с ручным написанием кода. Попытаемся ответить... Большинство ошибок, которые имеются в коде, вносит сам человек. И какими бы профессионалами не были ваши специалисты, - это неизбежно! И неважно - создаете ли вы новый протокол, глядя на рисунок (блок-схему), или пытаетесь что-то сделать с SDL-диаграммой, полученной в электронном формате от третьей стороны (причем никто не гарантирует, что вы получите абсолютно отработанную и без ошибок диаграмму). Ошибки всегда есть.... Но дело в том, что те ошибки, - а мы пока говорим только об ошибках кода - которые вносит человек при "ручном" способе програмирования, в большинстве своем могут быть найдены только в самом конце работ - на фазе тестирования, а то и эксплуатации. А значит потребуется время на их исправление, повторное тестирование и т.д. При этом ошибки создаваемого дизайна (функционал) в вашем случае могут быть найдены только на фазе завершающего тестирования - при реальных испытаниях...
А то, и зачастую, - только на стороне клиента - когда потребуется совпадение во времени многих условий, чтобы выскочил, так называемый, "глюк", и когда повторить эти условия, чтобы найти ошибку, не всегда бывает возможно. И если не задумываться более ни о чем, то возникает вопрос - а что вам даст замена одного языка программирования (который вы сейчас используете) на другой, если предлагать, что это будет SDL?
Однако, вся тонкость в том, что предлагается не просто язык SDL, а инструмент, построенный на базе этого языка-стандарта, а именно - Tau SDL. А вот в нем-то и заложена вся сила и немалые возможности, которые будут экономит вам время и деньги...

Tau SDL состоит из нескольких опций, которые разработчик проходит в обязательном порядке с тем, чтобы получить правильный, проверенный, на 100% автоматически сгенерированный код. Ниже приводится краткое описание каждой из основных опций Tau SDL:

1. SDL-Editor + SDL Analyzer.

Используя эти опции, пользователь строит SDL-диаграммы системы в соответствии с нотацией языка SDL. При этом инструмент - в зависимости от того, с чем работает пользователь - предлагает ему соответствующий набор возможных к использованию составляющих - блоки, функции, процедуры, вставки с комментариями и т.д. Работа пользователя сводится к дизайну системы, который он строит из составляющих как из кубиков, детализируя систему "сверху-вниз". В процессе работы первая опция Tau SDL - Analyzer - проверяет все ваши диаграммы пока только на правильность и соответствие нотациям языка SDL (отметим - функционал ПОКА не проверяется).

Показывает обнаруженные ошибки, сообщает (описывает) с чем они связаны и указывает на конкретный символ SDL-диаграммы, в котором эта ошибка присутствует.

Согласитесь, в таких условиях намного легче искать ошибки (попробуйте представить для сравнения, что легче - писать по-английски ручкой на бумаге или воспользоваться Word, в котором включен speller английского языка).

Дальше у вас два пути:

- или, глядя на эту диаграмму (поскольку в ней уже нет расхождений с языком) писать код вручную (это ж сколько времени может понадобиться для написания какого-нибудь современного протокола???!!!), как многие это сейчас и делают (рисуя диаграммы или блок-схемы в Visio), а значит по-прежнему вносить ошибки, связанные с человеческим фактором,

- или задействовать следующую опцию Tau SDL.

2. Simulator.

После приведения диаграмм в полное соответствие с нотацией языка (иначе дальше система вас просто не пустит), вы можете воспользоваться опцией Simulator, которая поможет вам отработать систему уже с точки зрения создаваемого функционала (дизайна). Сразу оговоримся, что проверяется либо вся все то, что составляет SDL-диаграмму или к ней относится (на ваш выбор):

а) или только SDL-диаграмма системы, блока, подсистемы, модуля... т.е. любой части системы (вот еще один "плюс" - не надо ждать сборки всей модели\системы)

б) или совокупность SDL-диаграмм и\или ее частей и вставок с вашим кодом (непосредственно прописывание кода в символах диаграмм или референс на headers. Использование функций языка C, Assembler, например). При запуске Simulator'а инструмент автоматически переводит вашу SDL-диаграмму в диаграмму последовательностей MSC (Message Sequence Chart), иницализирует ее и готовится к приему сообщений-сигналов. Вот теперь вы можете посылать в систему любые сообщения, соответствующие внешним воздейстиям и условиям - с любыми параметрами и значениями, в любой вход (порт) вашей системы.

Можете посылать сигналы по одному, можете в паралель, можете пачками или по спец-графику с разнесением во времени - все, что вам угодно. Можете исполнять пошагово, а может от начала и до конца, можете ставить break-points в любом месте SDL- или MSC-диаграммы, поскольку онизавязаны между собой. Можете выводить log-файлы, можете ставить watch-окна на выбранные переменные и многое-многое другое.

При приходе сигнала в MSC-диаграмму вы увидите, что присходит в системе - как работают таймеры, как создаются объекты, куда и в какой последовательности поступают сигналы, т.е - как система отрабатывает входное воздействие в соответствии с тем функционалом, который вы в нее заложили. И на диаграммах вы будете видеть картину поведения всей вашей системы или отрабатываемого блока. Более того, система выдаст вам статистику покрытия и вы будете знать насколько полно вы проверили вашу систему посылаемыми сообщениями. Обратите внимание - поверяя функционал - вы фактически тестируете систему еще в процессе ее разработки. Вы можете проверять все, что вам угодно, посылать любые сигналы илюбыми способами. Ваша задача - только лишь наблюдать за реакцией системы и делать выводы - нужен вам такой функционал или что-то надо переделать. Мы еще раз утверждаем, что проверяется все то, что вам необходимо - в том числе и совместное поведение диаграмм, созданных в Tau SDL, и ваших кодовых вставок в них, если таковые будут делаться. (Этим же путем можно пойти, если вы проверяете на функционал или соответствие нотации даже чужие диаграммы - ведь существуют много компаний, которые или продают свои SDL-диаграммы или отдают их).

Закончили и с этим, потому как теперь у вас на руках имеется диаграмма (или набор диаграмм) системы с проверенным функционалом.

После этого у разработчика тоже два пути:

- или, глядя на эту отработанную диаграмму (поскольку функционал уже обеспечен и проблем с этим нет) писать код вручную, как некоторые продолжают делать, а значит по-прежнему вносить ошибки, связанные с человеческим фактором,

- или задействовать следующую опцию Tau SDL.

3. Validator

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

Правила, по которым опция ищет ошибки, зашиты в ней, но у вас есть возможность их корректировать или добавлять свои. Здесь ищутся, например, посылка сообщений "в никуда", перекрестные ссылки, мертвые петли, ошибки ввода-вывода и многое другое. (Кликните мышкой на символ ошибки и опция выведет вас на символ диаграммы, с которым эта ошибка связана - огромная экономия времени). Именно здесь вы получите информацию - а что будет, если такой-то сигнал придет раньше, чем закончит работу таймер... хотя в соответствии с вашим дизайном это сообщение должно придти позже, - но вот что будет если такое случится?). Другими словами, если в опции Simulator вы проверяете и отрабатывате поведение системы на "правильность", то в Validator - на неправильность,т.е. как будет реагировать система, если в нее посыпятся сигналы с не теми параметрами, не в то время и не в том порядке, если таймеры закончат свою работу позже-раньше против ожидаемого и т.д. Попробуйте смоделировать такое на реальном стенде - да вам несколько лет только сам стенд создавать придется.. А мы предлагаем делать все это - сидя за компьютером, без специальных стендов, в режиме времени (пока не пишу "реального" времени). Все это нужно лишь для того, чтобы на выходе вы получили систему, в которой нет ошибок, потому как еще на стадии ее создания, вы их все убрали, трижды все перепроверив.

После этого у разработчика тоже два пути:

- или, глядя на полностью отработанную диаграмму писать код вручную, как некоторые иногда делают, а значит по-прежнему вносить ошибки, связанные с человеческим фактором,

- или задействовать одну из самых мощных и важных опций Tau SDL.

4. Code Generator

Если вы выбираете второй путь, то дальнейшие шаги просты - открываете окно, задаете опции кодогенератора, нажимаете клавишу и получаете исходный код на ANSI.C (на базе созданных диаграмм и всех и любых кодовых вставок, заметьте), который можете потом  омпилировать любым вашим родным компилятором. Настроечных опций здесь великое множество. Перечислим лишь некоторые из них (пользователь должен пометить их):

- должен ли сгенерированный код содержать специальные вставки, сообщающие вам о тех или иных ошибках (error checking);

- если ДА, то отмечаете какие именно ошибки вас интересуют;

- каким образом будет полученный код "заливаться" в исходное железо;

- делать ли "закладки", чтобы выводить служебную информацию на какой-либо порт, используемый для отладки;

- предполагается ли наличие или отсутствие операционной системы в вашем устройстве;

- если операционка будет, то какая именно ОС (мы уже поддерживаем массу известных ОС, готовы интегрироваться с вашей собственной, или разработатьтакую интеграцию для вас);

- можете собственноручно определять работу с очередями или воспользоваться критериями ОС и т.д.

Причем каждый раз меняя эти настройки, вы тут же будете получать новый код с учетом ваших пожеланий, - не занимаясь "ручной" орректировкой кода...

Сколь угодно часто, сколь угодно долго - хоть 24 часа в сутки и 30 дней в месяц. Но после того как код получен - вот тут уже мы категорически не рекомендуем "трогать" полученный код - во избежание внесения ошибок. Разумеется, поскольку код генерит машина, он хоть и получается без ошибок, но имеет некоторую переизбыточность - очевидцы называют цифру в 3-5%. Поэтому если - в силу специфических причин - вам требуется оптимизировать полученный код на все требуемые 100%, то у вас есть возможность "вырезать" кусок SDL-диаграмм и написать этот кусок хоть на Ассемблере.

После этого можно смело "заливать" этот код в ваше железо - все будет работать.. будьте уверены... Но и тут мы не останавливаемся на достигнутом.. Tau SDL имеет два кодогенератора: - C-micro для систем критичных к "размерам" (например, 8-битовый процессор, без ОС) и C-advanced для 64-битовых процессоров, многопоточных задач, многопроцессорных систем. Все остальное - лежит между ними.

Последняя опция - Code Generator - отрабатывается нашей компанией уже десяток лет и не может генерить ошибок по сути, поскольку просто использует отработанные конструкции языка и модули - макросы, например. При этом никакой отсебятины кодо-генератор не пишет.

Следует помнить, кодогенератор может использоваться на всем протяжении работ, а значит у вас есть возможность искать недоразумения - если они будут - с самого начала. А не искать проблемные места в готовом результате, если писать что-то вручную. Т.е. на этом можно считать процесс создания кода (не пишу "написания" кода) завершенным. Вы получили то, к чему шли. Но намного быстрей и качественней. Однако и тут мы можем предложить вам продолжение..

5. Target Tester

В системах реального времени очень важно иметь возможность контролировать (или оценивать) время исполнения кода (или, по другому - время задержки в коде). Для этих целей у Tau SDL имеется опция, которая носит название Target Tester (эта опция хоть и носит название tester и могла бы быть отнесена к этапу тестирования, но входит в состав Tau SDL - инструмент дизайна). Вы даете задание кодогенератору сгенерировать код с учетом вывода допополнительной информации на порт, который используется в вашей системе для отладки (см. выше).

Подключаете к этому порту свой компьютер с пакетом Tau SDL и делаете с вашей реальным "железом" все, что хотите (я имею ввиду нечто похожее на реальные манипуляции: в АТС это - снимать трубки, устанавливать связь, набирать цифры; в системах исполнения - срабатывание реле, нажатие кнопок и т.д.). На основе информации, которая поступает через порт (и сопоставляя ее с имеющимися диаграммами), Tau SDL построит вам MSC-диаграмму поведения вашей реальной системы. Т.е. в режиме времени вы сможете наблюдать на экране последовательность и динамику тех реальных процессов, которые происходят ВНУТРИ вашей реальной системы, сможете контролировать их, и оценивать, и корректировать, возвращаясь к первичным диаграммам.

Системные требования

Операционная система

Программное обеспечение

Аппаратное обеспечение

UNIX, Windows

• Windows XP

• Windows XP Japanese

• Windows XP Pro, SP3 & higher, 32-bit

• Windows Vista, Business & Enterprise, SP2, 32-bit

• Windows 7, 32-bit

• Red Hat Enterprise Linux 4 (32-bit) and 5 (32 & 64-bit)

• Sun Solaris

Telelogic SDL Suite targets the following platforms:
• Accelerated Technology Nucleus Plus

• Enea OSE

• Wind River Systems VxWorks

• Green Hills Software INTEGRITY

Rational SDL Suite also supports the POSIX interface to allow easy integration with any POSIX-compliant operating system.

148MB disk space minimum

256MB RAM minimum


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