Мансуров Н. Н., Майлингова О. Л. - Методы формальной спецификации программ (1184226), страница 13
Текст из файла (страница 13)
Создание каналов к окружениюДля создания канала от блока к окружению системы (например, 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. Два «ушка» в символе процесса• Левое «ушко» используется для создания каналов между процессами.• Правое «ушко» используется для задания связи по порождению ("отецсын").СоединенияПри соединении канала к символу рамки, помимо имени канала и спискасигналов, необходимо задать соединение межпроцессного канала смежблочным каналом на родительской диаграмме (диаграмме системы).
Длязадания имени межблочного канала используется дополнительное текстовоеполе с внешней стороны рамки (см. Рис. 37).Символ соединенияРис. 37. Символ соединенияДля редактирования соединения нажмите кнопку мыши внутри нужноготекстового поля и введите имя канала.9.3.2. Создание диаграммы блока по существующей копии93В результате упражнений данного урока вы должны научиться следующему:• Создавать диаграмму по существующей копии• Сохранять диаграмму в новом файлеДиаграмму блока GameBlock вы создали, сделав двойной щелчокмышью по символу блока в Организаторе. Заметим, что команда Edit можетбыть выполнена также при двойном щелчке на символ блока в редактореSDL диаграмм (т.е. на диаграмме системы).ДлясозданияблокаDemonBlockвыполнитеследующуюпоследовательность операций:1.
Выберите символ блока DemonBlock в Организаторе или в редакторе.Сделайте двойной щелчок мышью по этому символу. Появится диалогредактирования Edit:Рис. 38. Диалог создания блока DemonBlockСоздадим блок путем копирования уже существующего файла. Имядиректории $examples/demongame. Имя файла, содержащего блокDemonBlock demonblock.sbk2. Убедитесь в том, что установка Copy existing file включена.3. Укажите файл, содержащий блок DemonBlock одним из следующихспособов:94- введите полный путь к файлу (включая директорию); либо- Нажмите на кнопку folder справа от текстового поля ввода.
Появитсястандартный диалог выбора файла с названием Select File to Copy BlockDemonBlock.- Для перемещения по директориям нужно сделать двойной щелчокмышью по директории. Файл demonblock.sbk должен появиться на левойпанели. Выберите этот файл и завершите операцию, нажав кнопку OK.4. Завершите диалог Edit, нажав на кнопку OK. Редактор откроет диаграмму втекущем окне редактирования.Рис. 39. Диаграмма блока DemonBlock5. Теперь, сохраните диаграмму (нажмите «быструю клавишу» Save).Появится диалог выбора файла.
Система SDT предложит имя файлаDemonBlock.sbk.6. Завершите операцию, нажав кнопку OK.9.4. Работа с несколькими диаграммами95Вы создали две SDL диаграммы. Обе диаграммы открыты в редактореSDL диаграмм, хотя показывается только одна из них.В редакторе имеется меню Diagrams, в котором находится список всехоткрытых диаграмм и отдельных страниц.1. Выберите меню Diagrams. Меню должно содержать две строки:Рис. 40. Меню открытых диаграммКаждая строка в меню соответствует одной диаграмме и странице, открытойв редакторе. Справа показано имя файла, в котором сохранена диаграмма.9.5.
Диаграммы процессов9.5.1. Создание диаграммы процессаВы создали все структурные элементы SDL системы. Теперь нужно описатьповедение системы, т.е. создать графы процессов.9.5.2. Редактирование диаграммы процесса DemonВ результате выполнения упражнений данного урока вы должны научиться:• Добавлять символы по двойному щелчку мыши;• Работать с буфером копирования;• Вставлять символы в участок;• Получать информацию о грамматике языка SDL;Диаграмма процесса Demon приведена на Рис. 41.96Рис.
41. Диаграмма процесса Demon1. Когда появится диалог добавления страницы, задайте тип новой страницыGraph Page.Рис. 42. Установка типа страницы для диаграммы процесса972. Редактор SDL диаграмм создает диаграмму процесса. Обратите внимание,что палитра символов выглядит иначе, чем при редактированиидиаграммы блока.Как показано на Рис. 41, диаграмма состоит из двух участков. Редакторможет автоматически соединять символы линиями при добавлении новыхсимволов к участку. Каждый символ на диаграмме содержит определенныйтекст.