Рис. 2.4. Допустимые соединения символов в SDL-диаграмме
Ниже рассматриваются основные объекты SDL-диаграмм.
Согласно уже данному определению, процесс в SDL рассматривается как некий объект, который находится в состоянии ожидания получения входного сигнала либо в переходе. Состояние определяется как условие, в котором действие процесса временно приостановлено в ожидании ввода (рис. 2.5).
Решение - выбор одного из альтернативных действий в зависимости от результатов анализа проверки параметров, связанных со входными сигналами, и хранимой в памяти процесса информации, существенных для дальнейшего функционирования процесса. Другими словами, символ решения определяет выбор одного среди нескольких (п^2) путей для продолжения перехода процесса.
Задача - действие внутри перехода, связанное с манипулированием входными или выходными параметрами, работой с памятью, вычислениями и не являющееся ни решением, ни выводом, ни созданием процесса, ни вызовом процедуры или макроса.
Для описания процесса определено еще одно более общее понятие - сохранение, дающее возможность выборочной задержки начала обработки входных сигналов (рис. 2.7), т.е. априорного задания порядка поступления и времени нахождения в очереди. Сохранение используется для обозначения конструкции, сохраняющей сигналы от их потери до того, как их начнут обрабатывать.
Рис. 2.5. Примеры употребления символов состояния
Рис. 2.6. Примеры использования символов вывода
Примечания: а) поскольку х, у и z в этом примере имеют значения 5,10 и 15 соответственно, сигнал S передает значения 8,20 и 14;
б) сигнал S передает три значения - 5,10 и 15.
В диаграммах данной книги используются предусмотренные языком SDL краткие обозначения. К ним относятся звездочка (*) и тире (-) (рис. 2.8, 2.9). Обычно «*» означает «все» или «все, кроме» (* [ ] ), а «-» означает «то же самое».
Тире (•) используется в символе следующего состояния для того, чтобы представить то же самое состояние, что и состояние, с которого начался переход. Интерпретация этого рисунка может быть такой: в любом состоянии процесса сигнал «Сообщение» может быть принят. При-
Рис. 2.7. Пример SDL - диаграммы с использованием символа сохранения
Рис. 2.8. Пример использования «*»
Рис. 2.9. Пример использования тире в символе следующего состояния
ем вызовет посылку сигнала «Ответ», и переход закончится в состоянии, в котором начался. Следует подчеркнуть, что пользоваться краткими обозначениями нужно с осторожностью, т.к. использование «*» и «-» может изменить смысл диаграммы настолько, что это приведет к непредсказуемому результату.
Дивергенция внутри перехода в диаграмме SDL может возникнуть в одной из следующих ситуаций: между символом состояния и соответствующими ему символами ввода и сохранения; после символа решения;
после символа опции (рис. 2.10).
Рис.2.10. Пример дивергенции после символа опции Точка конвергенции не может возникнуть между вводом или сохранением и символом состояния, но может возникнуть в любой другой точке SDL - диаграммы (рис. 2.11).
Рис.2.11. Пример использования конвергенции
В рамках тематики данной книги описанную выше иерархию описаний (SDL-система, блок, процессы, каналы, сигналы) представляется полезным продемонстрировать на более реальном примере SDL-спецификаций одночастотной системы сигнализации 2600 Гц, которая будет детально рассмотрена в главе 5. На рис. 2.12-2.14 приведены фрагменты SDL-спецификаций линейной сигнализации на внутризоновой сети, например, между центральной станцией (ЦС) или сельско-пригородным узлом (У СП) и междугородной станцией (АМТС) по заказно-соединительным линиям (ЗСЛ) и соединительным междугородным линиям (СЛМ). При всей фрагментарности этих спецификаций они достаточно наглядно иллюстрируют предлагаемый подход.