Мансуров Н. Н., Майлингова О. Л. - Методы формальной спецификации программ (1184226), страница 11
Текст из файла (страница 11)
УсловияГрафический синтаксис:<decision area> ::= <decision symbol> contains <question>is followed by{ { <graphical answer part><graphical else part> }*| { <graphical answer part> {<graphical answer part>}+[ <graphical else part> ] }*<decision symbol> ::=<graphical answer part> ::= <flow line symbol>is associated with <graphical answer>is followed by <transition area><graphical else part> ::= <flow line symbol> is associated with<else answer>is followed by <transition area><graphical answer> ::= <range condition><else answer> ::= else6.5.11.
ТаймерыГрафический синтаксис:<timer definition> ::= timer <timer name> [ <sort list> ][ := <Duration ground expression> ]<set area> ::= <task symbol> contains <set><reset area> ::= <task symbol> contains <reset><set> ::= set <set statement><set statement> ::= ( [ <Time expression> ,] <timer name>[ ( <expression list>) ] )<reset> ::= reset ( <reset statement> )<reset statement> ::= <timer name> [ ( <expression list> ) ]<timer name> ::= <name><Time expression> ::= <expression><Duration expression> ::= <expression>66Рис.
14. Пример диаграммы процесса6.6. ДанныеОсновным механизмом описания данных в языке SDL являютсяалгебраические спецификации абстрактных типов данных. Абстрактный типданных – это тип данных, внутреннее устройство которого не определено.Вместо этого, для абстрактного типа данных задаются набор литералов,набор операторов и набор аксиом, которым эти операторы должныудовлетворять. Подробное рассмотрение алгебраических спецификацийабстрактных типов данных в данном пособии не предусмотрено.В языке SDL имеется набор предопределенных типов данных:Integer, Real, Natural, Boolean, Character, Duration, Time, Charstring, PId.Ниже приводится упрощенный синтаксис выражений в языке SDL.Графический синтаксис:<range condition> ::= { <closed range> | <open range> }{ , { <closed range> | <open range> } }*<closed range> ::= <constant> : <constant>67<open range> ::= <constant>| { = | /= | < | > | <= | >= } <constant><expression> ::= <sub expression><sub expression> ::= <operand0> | <sub expression> => <operand0><operand0> ::= <operand1> | <operand0> {or | xor } <operand1><operand1> ::= <operand2> | <operand1> and <operand2><operand2> ::= <operand3>| <operand2> {= | /= | > |>= | < | <= | in } <operand3><operand3> ::= <operand4> | <operand3> { + | - | // } <operand4><operand4> ::= <operand5> |<operand4>{*|/|mod|rem } <operand5><operand5> ::= [ - | not ] <primary><primary> ::= <name>| ( <expression> )6.7.
ЗаключениеВ данном разделе мы подробно рассмотрели основные возможности языкаспецификаций и описаний SDL.Мы рассмотрели основные структурные единицы языка SDL: систему,блок, процесс и процедуру. Мы также рассмотрели организациювзаимодействия процессов через посылки сигналов по статическиммаршрутам, состоящих из межблочных и межпроцессных каналов, связанныхсоединениями. Мы рассмотрели средства описания поведения процесса какрасширенного конечного автомата.Отметим, что некоторые возможности языка остались за рамками нашегорассмотрения:• Структурные типы- Определение структурных типов- Использование типизированных объектов- Наследование структурных типов- Специализация структурных типов- Специализация поведения процессов- Определения пакетов• Алгебраические спецификации абстрактных типов данных• Процедурные определения операторов абстрактных типов данных68Глава 7. Организатор системы SDTДанная часть пособия представляет собой практическое руководство поредактору SDL диаграмм системы SDT.
Предполагается, что все упражнения,описанные в данном разделе, будут проделаны на компьютере. В следующихглавах мы будем разрабатывать MSC и SDL спецификации примера"Игральный автомат".7.1. Пример "Игральный автомат"Внешнее поведение системы выглядит следующим образом. Системавоспринимает четыре типа входных сигналов: Newgame (новая игра),Endgame (конец игры), Probe (ход) и Result (счет). Первые два сигналаиспользуются для начала и окончание игры.
Одновременно может вестисьтолько одна игра, т.е. сигналы Newgame игнорируются в течение игры, асигналы Endgame игнорируются, если игра не началась.Сама игра очень простая. Состояние системы время от временименяется от выигрышного к проигрышному и обратно. Игрок долженугадать, в какой момент состояние выигрышное. Если игрок делает ход(посылает сигнал Probe) в тот момент, когда состояние системывыигрышное, он получает одно очко. Если игрок делает ход в момент, когдасостояние системы проигрышное, он теряет одно очко. Игрок может узнатьтекущий счет, послав сигнал Result.7.2. Запуск системы SDTМы предполагаем, что система SDT установлена на компьютере.Полный путь к директории, в которой находятся файлы системы SDT, заданв переменной $telelogic.
Полный путь к примерам, которые приводятся вупражнениях, задан в переменной $examples.Для работы с руководством нужно создать временную директорию:mkdir ~/demongameВ дальнейшем мы будем предполагать, что имя рабочей директориивыглядит именно так.Для запуска системы SDT нужно сделать следующее:1. Перейти в рабочую директорию:cd ~/demongame2. Выполнить командуsdt697.3. Работа с ОрганизаторомОрганизатор - это основная среда системы SDT, из которойосуществляется запуск всех остальных инструментов.После выполнения упражнений данного урока вы должны научиться:• Настраивать области Организатора;• Создавать дерево SDL системы в Организаторе;7.3.1. Окно ОрганизатораПосле запуска система SDT открывает окно Организатора (SDTOrganizer).Организатор выдает приветственное окно (SDT Welcome window).Это окно автоматически исчезает после выполнения любого действия вОрганизаторе (можно также нажать на кнопку Continue).Рис. 15.
Окно Организатора707.3.2. Настройка областей ОрганизатораПосле запуска системы Организатор создает 5 стандартных областей(см. Рис. 15):• Analysis Model («модель анализа»)• Used Files («используемые файлы»)• SDL System Structure («дерево системы»)• TTCN Test Specification («спецификации тестов»)• Other Documents («прочие документы»)В каждой из этих областей может находиться несколько диаграмм,использование областей не регламентировано.В верхней части окна Организатора находятся два символа,соответствующие системному файлу и рабочей директории для диаграмм.Назначение системного файла будет описано ниже. Рабочая директорияиспользуется для поиска диаграмм, а также для сохранения диаграмм.Удалите области Analysis Model, Used Files и TTCN TestSpecifications:1. Выберите область Analysis Model, щелкнув мышью насоответствующий символ в окне Организатора.2.
Выберите команду Remove из меню Edit Организатора.3. Подтвердите удаление области Analysis Model в дополнительномдиалоге, нажав мышью на кнопку Remove (см. Рис. 16).Рис. 16. Подтверждение удаления области4. Повторите шаги 1-3 для областей Used Files и TTCN TestSpecifications.Переименуйте оставшиеся области:1. Выберите область SDL System Structure2.
Выберите команду Edit в меню Edit.3. Введите новое имя области My first SDL system в диалоге Edit.Внимание: нельзя изменять текущий тип документа (Organizer) и егозначение (Area) (см. Рис. 17).71Рис. 17. Переименование области Организатора4. Завершите выполнение операции, нажав на кнопку OK.7.4. Работа с деревом SDL системыПосле выполнения упражнений данного урока вы должны научитьсяследующему:• Создавать новую диаграмму системы• Добавлять новые страницы к диаграмме• Редактировать диаграмму системы• Сохранять диаграммы• Работать с диалогами системы SDT• Работать с деревом SDL системы7.4.1.