Мансуров Н. Н., Майлингова О. Л. - Методы формальной спецификации программ (1184226), страница 16
Текст из файла (страница 16)
Монитор SDL позволяетпредставлять основные события SDL системы в виде событий диаграмм117взаимодействия. Это позволяет визуализировать трассу SDL системы в видедиаграммы взаимодействия.После выполнения упражнений данного урока вы должны научиться:- включать и выключать генерацию диаграммы взаимодействия;- переходить от символов диаграммы взаимодействия к символам SDL;- выполнять отдельный SDL символ.10.5.1. Инициализация диаграммы взаимодействия1. Перезапустите исполняемую систему.2. Отключите графическую трассу для того, чтобы избежать появления окнаредактора SDL диаграмм.
Для этого нажмите на кнопку SDL Level : Show вгруппе Trace и убедитесь, что уровень детальности графической трассы(GR Trace) установлен в 0.3. Для включения генерации диаграмм взаимодействия нажмите кнопку MSCTrace : Start в группе Trace. Выполнение данной команды приводит кпоявлению дополнительного диалога для задания уровни детальностидиаграммы взаимодействия. Выберите 1 для генерации диаграммвзаимодействия с символами состояний. Завершите выполнение команды,нажав кнопку OK.Рис. 59. Выбор уровня детальности диаграммы взаимодействия1184.
Через несколько секунд появится редактор диаграмм взаимодействия, вкотором открыта диаграмма с именем”SimulatorTrace”.Надиаграмме присутствуют три объекта: процессы Main_1_1, Demon_1_2и процесс env_0 (представляющий собой окружение системы):Рис.
60. Начальный вид диаграммы взаимодействия10.5.2. Трассировка1. Пошлите сигнал Newgame из окружения системы. Посылка сигналапредставляется на диаграмме взаимодействия как сообщение от объектаenv_0 к объекту Main_1_1. На данном этапе, сообщение помеченозвездочкой на конце, означающей, что сообщение еще не принятопроцессом - получателем. (В ряде случаев появление звездочки можетозначать возникновение ошибки в спецификации, например, посылкасигнала несуществующему процессу). Заметим, что символ посылкисообщения, помеченный звездочкой, является расширением языкадиаграмм взаимодействия, принятым в системе SDT.2. Выполните очередной переход. На оси объекта процесса Main появляетсясимвол состояния Game_Off.
Данный символ означает, что процесс Mainзавершил переход и находится в соответствующем SDL состоянии.3. Выполните очередной переход. На данном переходе процесс Demonустанавливает таймер T.4. Выполните очередной SDL символ. Для этого нажмите на кнопкуSymbol в группе Execute на панели управления монитора. ПроцессMain принимает сигнал Newgame.
На диаграмме взаимодействия это119представляется как снятие звездочки. Обратите внимание на то, что точкипосылки и приема сообщения Newgame находятсяна разныхвертикальных уровнях, т.к. таймер T был установлен после того, как былопослано сообщение.5. Выполните следующий SDL символ (нажав на кнопку Symbol в группеExecute). Происходит создание экземпляра процесса Game. На диаграммевзаимодействия это представляется как появление нового объекта.Диаграмма взаимодействия на данный момент должна выглядетьследующим образом.Рис.
61. Вид диаграммы взаимодействия после создания процесса Game.6. Завершите текущий переход и выполните следующий переход, нажав двараза на кнопку Transition. Второй переход переводит процесс Game всостояние Losing.7. Выполните следующие три перехода. Происходит прием сигнала таймераT, а также прием и посылка сигнала Bump. Процесс Game находится в120состоянии Winning. Обратите внимание на представление обменасообщениями на диаграмме взаимодействия.8. Покажем, как на диаграмме взаимодействия представляется немедленныйприем сообщения. Пошлите сигнал Probe из окружения системы ивыполните следующий SDL символ.
Сначала появляется символсообщения, помеченный звездочкой, а затем отметка снимается, носимвол сохраняет горизинтальное положение.9. Завершите текущий переход. Система посылает сигнал Win своемуокружению.10.Пошлите сигнал Result из окружения системы и выполните очереднойпереход. На диаграмме взаимодействия появится сообщение Score спараметром 1.11.Завершите игру, послав сигнал Endgame и выполнив два перехода.Происходит остановка процесса Game.121Рис. 62. Окончательный вид диаграммы взаимодействия (1)122Рис. 63. Окончательный вид диаграммы взаимодействия (2)10.5.3.
Переход к SDL символам1. На диаграмме взаимодействия щелкните мышью на символ,соответствующий сообщению Bump.2. Выберите команду Info Window в меню Window редактора диаграммвзаимодействия. Появляется окно с дополнительной информацией овыбранном объекте.123Рис.64.Окно с дополнительной информацией о символедиаграммы взаимодействияНажмите на кнопку Show SDL Symbol . Появляется редактор SDLдиаграмм с отмеченным символом посылки или приема сигнала Bump:- Если щелчок мышью был произведен вблизи точки посылки сообщения,то будет показан соответствующий символ посылки сигнала;- Если щелчок мышью был произведен вблизи точки приема сообщения, тобудет показан символ приема сообщения.10.5.4.
Завершение трассировки1. Завершите генерацию диаграммы взаимодействия выбрав команду MSCTrace : Stop в группе Trace.2. Сохраните сгенерированную диаграмму взаимодействия в файле с именемSimulatorTrace.msc, выполнив команду Save из меню File редакторадиаграмм взаимодействия.3. Завершите работу с редактором диаграмм взаимодействия, выбравкоманду Exit из меню File.10.6. ЗаключениеВ данной главе был описан процесс построения исполняемых систем поспецификациям и их выполнение под управлением Монитора.
В результатевыполнения упражнений данной главы вы должны были научиться:- создавать исполняемую систему;вводить команды Монитора в текстовом виде;124определять SDL-символ, который будет исполняться следующим;читать текстовые и графические трассы Монитора;выполнять очередной переход;пользоваться кнопками графического интерфейса Монитора;посылать сигналы из окружения системы.- запускать Монитор исполняемой системы;перезапускать исполняемую систему;использовать возможность протоколирования внешних сигналов;добавлять новые кнопки на панель управления Монитором;выполнять все переходы в течение заданного интервала времени.- запускать систему из графического интерфейса Монитора;включать и выключать генерацию диаграммы взаимодействия;переходить от символов диаграммы взаимодействия к символамSDL;выполнять отдельный SDL символ.125.