Мансуров Н. Н., Майлингова О. Л. - Методы формальной спецификации программ - языки MSC и SDL, страница 13
Описание файла
PDF-файл из архива "Мансуров Н. Н., Майлингова О. Л. - Методы формальной спецификации программ - языки MSC и SDL", который расположен в категории "". Всё это находится в предмете "формальная спецификация и верификация программ" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 13 страницы из PDF
Рис. 27).81Рис. 27. Диалог создания диаграммы4. Завершите операцию, нажав на кнопку OK.Верхняя левая часть окна редактирования диаграммы показана на Рис. 28.82Рис. 28. Окно редактора SDL диаграмм9.1.2. Редактирование диаграммы системыСледующим шагом будет заполнение диаграммы.
На Рис. 29 показанокончательный вид диаграммы системы DemonGame. Диаграмма состоит издвух блоков: GameBlock и DemonBlock. Блоки соединены каналом сименем C3. Два других канала (C1 и C2) осуществляют взаимодействиесистемы с окружением. Дополнительно, на диаграмме системы существуеттекстовый символ, содержащий определения сигналов.83Рис. 29. Диаграмма системы DemonGameВ следующих разделах будет подробно показано, как происходит добавлениесимволов и текста в редакторе SDL диаграмм.9.1.3. Добавление новых блоковДля добавления блоков нужно выполнить следующие операции:1. Выбрать символ блока в палитре символов. Палитра символоврасположена вертикально с правой стороны в окне редактора.
Символ блока четвертый сверху.2. Переместите курсор в область диаграммы. Символ блока «плывет» вследза курсором. Нажмите на кнопку мыши в том месте, где вы хотите поместитьновый блок. Наложение символов недопустимо. В случае если выбранноеместо для блока приводит к наложению символов, операцию необходимоповторить сначала.843. После выбора места блока введите имя блока (DemonGame илиGameBlock).• Можно вводить текст внутрь символа в текущей позиции курсора.Позицию курсора можно изменить, нажав на кнопку мыши внутрисимвола.• Можно вводить текст в текстовом окне (внизу под областьюредактирования).Примечания:• Редактируемый текст появляется как внутри символа, так и в текстовомокне• При добавлении нового блока происходит автоматическое обновлениедерева структуры системы в окне Организатора.• Любую операцию можно отменить, выбрав команду Undo в меню Edit.9.1.4. Перемещение символов и изменение их размеровДля перемещения символа на диаграмме нужно нажать левую кнопкумыши внутри данного символа и, не отпуская кнопки, переместить символ нановое место.Для изменения размеров символов нужно потянуть за один из уголковсимвола.
Курсор должен быть достаточно близко к уголку. Если неполучается - нужно сначала выбрать данный символ, нажав кнопку мышивнутри символа, а затем повторить операцию.9.1.5. Создание каналов между блокамиДля создания канала от блока DemonBlock к блоку GameBlock:1. Выбрать блок DemonBlock. В нижней части символа появится "ушко"(handle).ушкоРис. 30. Ушко852. «Потяните» за «ушко». Как только редактор зафиксирует движение«ушка», начнется отрисовка линии канала. С этого момента кнопку мышиможно отпустить.3.
Щелкните мышью внутри блока GameBlock. Произойдет подсоединениеканала.С каждым каналом связаны два текстовых атрибута для ввода имениканала и списка сигналов, допустимых для передачи по данному каналу.Рис. 31. Текстовые атрибуты каналаСразу после создания канала введите его имя (C3). Иногда нужнопредварительно выбрать символ канала.Для задания списка сигналов, передаваемых по каналу (сигнал Bump)нужно проделать следующие операции:1. Выберите текстовое поле, окруженное квадратными скобками [ и ]. (Дляэтого надо щелкнуть мышью в пространстве между квадратными скобками).2. Введите имя сигнала.3.
Текстовые атрибуты канала можно перемещать по диаграмме.9.1.6. Создание каналов к окружениюДля создания канала от блока к окружению системы (например, C2):1. Выберите блок.2. Потяните за «ушко» и завершите операцию, нажав кнопкой мыши нарамку диаграммы (см. рис.12).3. Введите имя канала и сигналы.Для создания канала от окружения к блоку (например, C1):1. Создайте канал от блока к окружению (см. выше).2. Выберите команду Redirect из меню Edit.9.1.7. Создание текстового символаДля создания текстового символа с определениями сигналов нужнопроделать следующие операции:1. Выберите текстовый символ в палитре символов, переместите его вобласть редактирования и введите определения сигналов, как показано наРис.
29.869.1.8. Сохранение диаграммы1. Для сохранения диаграммы нужно выбрать команду Save из меню Fileредактора SDL диаграмм.Переход в окно редактора SDL диаграмм происходит по двойномущелчку мышью по диаграмме системы.2. Выполнение команды сохранения приводит к появлению стандартногодиалога выбора файла. Этот диалог используется системой SDT всякий раз,когда требуется выбрать файл (при открытии, сохранении и т.д.).
Заголовокдиалога соответствует выполняемой операции (в данном случае - SDT Save)(см. Рис. 32).Рис. 32. Стандартный диалог выбора файла3. Редактор SDL диаграмм предлагает сохранить диаграмму системы в файлеDemonGame.ssy. Суффикс *.ssy является стандартным для диаграммсистем. Завершите операцию, нажав кнопку OK. Диаграмма сохранена вфайле. Имя файла отображается в заголовке окна редактора. Проверьте, что вокне Организатора имя файла диаграммы системы изменилось с[unconnected] на DemonGame.ssy.
Два других символа в деревесистемы по-прежнему остаются [unconnected]. Они представляют собойсимволы блоков на диаграмме системы.879.2. Проверка синтаксиса диаграммы системы••••После выполнения упражнений данного урока вы должны научиться:Запускать Анализатор;Устанавливать настройки Анализатора;Работать с окном сообщений Организатора;Находить и исправлять синтаксические ошибки;9.2.1. Запуск АнализатораДля проверки синтаксической правильности созданной диаграммынужно использовать Анализатор. Анализатор полностью интегрирован всистемы SDT. Анализатор запускается из Организатора следующим образом.1.
Выберите диаграмму системы в Организаторе. Затем, выберите командуAnalyze из меню Generate Организатора.2. В случае если имеются измененные, но не сохраненные диаграммы, передзапуском Анализатора будет предложено сохранить измененные диаграммы.Диалог Save появляется в этом случае автоматически (см. рис. 16). Длясохранения всех измененных диаграмм, нажмите кнопку Save All.3.
После завершения диалога Save появляется диалог настройки Анализатора(Analyzer options) (см. Рис. 33).88Рис. 33. Диалог настройки Анализатора4. Для проверки синтаксиса диаграммы выберите установки как показано наРис. 33:• Macro expansion выключено• Syntactic analysis включено• Semantic analysis выключено• Выберите подходящее значение предельного числа сообщений обошибках (error limit).
Данная установка определяет, сколько сообщенийоб ошибках и предупреждений может быть выдано Анализатором передтем, как закончить обработку некорректной программы.5. Нажмите кнопку Analyze. Анализатор начинает обработку диаграммы.После окончания работы, Анализатор выведет сообщение "Analyzerdone" в область статуса.6. Для выдачи детальных сообщений в Организаторе предусмотреноспециальное текстовое окно Organizer Log. Обычно окно сообщенийпоявляется автоматически каждый раз, когда обнаружена информация типа89«предупреждение» или «сообщение об ошибке». Можно открыть окносообщений вручную, выбрав команду Organizer Log в меню ToolsОрганизатора, или нажав на специальную «горячую клавишу».9.2.2.
Где искать сообщения о синтаксических ошибкахВсе сообщения Анализатора попадают в специальное окно сообщений(Organizer Log). В конце списка сообщений выдается статус следующеговида:-------------------------------------------------Number of errors:xxxx+ Analysis completedЕсли диаграмма синтаксически корректна, строка с указанием числа ошибокбудет отсутствовать.1. Попробуйте внести синтаксические ошибки в диаграмму системы.Например, удалите одну из запятых в списке сигналов канала C1.2.
Сохраните диаграмму и повторите проверку синтаксиса.9.2.3. Как интерпретировать синтаксические ошибкиПри обнаружении синтаксической ошибки в списке сообщенийпоявляется текст вида:#SDTREF(SDL,/home/nick/course/demongame(1),131(25,50),3,8)ERROR 312 Syntax error in rule SIGNALLIST, symbolName found but one of the following expected:, ; commentResult Endgame;?Сообщение об ошибке имеет следующий смысл:1. Первая часть сообщения (#SDTREF ... ) представляет собой графическуюссылку на исходную диаграмму, указывающую файл, страницу, символ,номер строки и номер позиции в строке, где была обнаружена ошибка.2. Вторая часть сообщения (ERROR 312 ... ) содержит номер сообщения ипояснительный текст.903.
Заключительная часть сообщения (Result Endgame) и символ ?воспроизводят фрагмент, в котором произошла ошибка.Для исправления ошибки можно автоматически выбрать нужнуюдиаграмму и символ. Для этого нужно выполнить следующие действия:1. Выделите мышью текст сообщения об ошибке.2. Выберите команду Show Error в меню Tools Организатора.3.
В результате выполнения команды редактор SDL диаграмм показываетнужную диаграмму и делает текущим символ, содержащий ошибку.Исправьте ошибку.4. Для исправления следующий ошибки можно нажать еще раз «горячуюклавишу» Show Error. Система SDT автоматически покажет местоследующей ошибки (если таковые имеется).Окно сообщений можно очистить, выбрав команду Clear Log из меню Edit,9.3.
Диаграммы блоков9.3.1. Создание диаграммы блока из ОрганизатораПосле выполнения упражнений данного урока вы должны научиться:• Создавать диаграмму блока• Работать с несколькими диаграммами в редактореДля создания диаграммы блока из Организатора нужно выполнитьследующие операции:1. Перейти в окно Организатора и сделайте двойной щелчок по символуGameBlock.
Это приведет к появлению уже знакомого диалога Edit (см.рис. 7). Убедитесь в том, что настройка Show in editor включена. Нажмитекнопку OK. Это приведет к появлению диалога добавления страницы AddPage (Рис. 34).Рис. 34. Диалог добавления страницы912. Диалог добавления страницы служит для указания вида диаграммы блока:блок, содержащий процессы или блок, содержащий другие блоки. В диалогеможно явно ввести имя новой страницы. По умолчанию, система SDTпредлагает автоматическую нумерацию страниц (Autonumbered). Выберитевид страницы Process Interaction Page (блок, содержащий процессы) инажмите кнопку OK.3. Редактор SDL диаграмм открывает вновь созданную диаграмму блокаGameBlock на странице 1.
Палитра символов содержит другие элементы посравнению с окном редактирования диаграммы системы.На Рис. 35 показан окончательный вид блока GameBlock. Диаграммасодержит два символа процесса, пять каналов, три соединения и текстовыйсимвол, в котором находится определение сигнала.Рис. 35. Диаграмма блока GameBlockВам предстоит создать диаграмму GameBlock в соответствии с Рис. 35.Ниже представлена дополнительная информация о редактировании новыхсимволов.929.3.1.1.1 Имя процесса и число экземпляров процессаПри создании символа процесса кроме имени процесса нужно дополнительноввести число экземпляров процесса.
Число экземпляров процесса вводитсянепосредственно после имени процесса и заключается в круглые скобки.9.3.1.1.2 Межпроцессные каналыПосле выделения символа процесса появляются два «ушка».«ушко для связипо порождениюпроцессов«ушко» длямежпроцессорныхканаловРис. 36. Два «ушка» в символе процесса• Левое «ушко» используется для создания каналов между процессами.• Правое «ушко» используется для задания связи по порождению ("отецсын").СоединенияПри соединении канала к символу рамки, помимо имени канала и спискасигналов, необходимо задать соединение межпроцессного канала смежблочным каналом на родительской диаграмме (диаграмме системы). Длязадания имени межблочного канала используется дополнительное текстовоеполе с внешней стороны рамки (см. Рис.