5 курс
Варианты задания практикума «Формальные спецификации программ. Языки MSC и SDL»
III поток, 2003-04 учебный год
См. также:
Ниже перечислены варианты заданий.
Вариант 1. Будильник
Требуется разработать программное обеспечение встроенного микропроцессора для будильника. Будильник должен постоянно отображать текущее время (часы, минуты). Будильник должен иметь кнопку режима установки времени, кнопку режима установки времени срабатывания, а также две отдельные кнопки для установки часов и минут. Будильник должен иметь переключатель режима работы со следующими положениями: «ВЫКЛ», «ВКЛ». Дополнительно, будильник должен иметь кнопку сброса сигнала «СБРОС».
Для установки текущего времени нужно нажать на кнопку режима установки и, при нажатой кнопке, нажимать на кнопки установки часов и минут. При каждом нажатии на кнопки, устанавливаемое значение увеличивается на 1 единицу(1 час или 1 минуту соответственно). При достижении максимального значения производится сброс. Для установки времени срабатывания будильника нужно нажать на кнопку режима установки времени срабатывания и, держа кнопку нажатой, нажимать на кнопки установки часов и минут. Когда переключатель режима работы находится в положении «ВКЛ», при достижении времени срабатывания происходит подача звукового сигнала в течение 1 минуты. Сигнал можно прервать, нажав на кнопку «СБРОС». При этом сигнал должен быть возобновлен через 5 минут. При установке переключателя в положение «ВЫКЛ» звуковой сигнал не подается. При нажатии на кнопку режима установки времени, будильник должен отображать время срабатывания.
Вариант 2. Табло на станции метро
Требуется разработать новую систему отображения информации для станций московского метрополитена, далее в тексте – табло. Табло должно отображать текущее время (часы, минуты) и время, прошедшее с момента отправления последнего поезда (минуты, секунды). Дополнительная часть табло должна отображать конечную станцию назначения прибывающего поезда.
Все табло должны быть синхронизованы, т.е. текущее время отсчитывается (и устанавливается) из центральной службы времени.
Каждая станция самостоятельно определяет момент прибытия и отправления поездов при помощи датчиков, устанавливаемых на путях.
Вариант 3. Пункт проката видеокассет
Требуется разработать систему автоматизации для пункта проката видеокассет. Пункт должен выполнять следующие функции.
Пункт должен содержать каталог кассет, имеющихся в наличии в данный момент времени. Клиент, обратившийся в пункт, выбирает кассету по каталогу и забирает кассету на определенный срок. Срок проката оговаривается при выдаче кассеты. Клиент возвращает кассету и оплачивает прокат в зависимости от времени возврата и срока проката.
Пункт проката должен периодически обновлять ассортимент кассет, предлагаемых для просмотра. Пункт должен регулярно сдавать выручку инкассаторам.
Вариант 4. Электронный секундомер
Требуется разработать программное обеспечение встроенного микропроцессора для электронного секундомера, связанного с запоминающим устройством. Прибор должен выполнять следующие функции.
Секундомер имеет табло индикации времени и кнопки «Старт», «Стоп» и «Сброс». При нажатии на кнопку «Старт» включается отсчет и индикация времени на табло. При нажатии на кнопку «Стоп» текущее значение отсчета времени заносится в запоминающее устройство, при этом отсчет времени и его индикация на табло продолжаются. При нажатии кнопки «Сброс» отсчет времени прекращается, индикация на табло сбрасывается в начальное состояние, данные из запоминающего устройства выдаются на печать, запоминающее устройство сбрасывается.
Вариант 5. Учрежденческая мини-АТС
Требуется разработать программное обеспечение встроенного микропроцессора учрежденческой мини-АТС (автоматическая телефонная станция). АТС должна выполнять следующие функции. Абоненты АТС имеют коды 1-9. Код 0 зарезервирован. Каждый абонент подключен к АТС линией связи. АТС соединяет линии абонентов (осуществляет коммутацию линий).
Когда абонент поднимает трубку телефона, АТС получает сигнал «Трубка». В ответ АТС должна послать сигнал «Тон» абоненту. Абонент набирает номер абонента, с которым он хочет связаться. АТС проверяет готовность абонента.
Если абонент готов, АТС посылает ему сигнал «Вызов». При этом телефон абонента начинает звонить. Когда вызываемый абонент снимает трубку, АТС осуществляет коммутацию линии. При этом абоненты обмениваются сигналами «Данные», которые АТС должна передавать от одного абонента к другому.
Когда один из абонентов опускает трубку, АТС получает сигнал «Конец» и посылает другому абоненту сигнал «Тон».
Если абонент не готов (его линия занята), АТС посылает вызывающему абоненту сигнал «Занято». Когда абонент кладет трубку, АТС получает сигнал «Конец».
Вариант 6. Микроволновая печь
Требуется разработать встроенную систему управления микроволновой печью. Микроволновая печь представляет собой камеру, внутри которой расположен вращающийся столик. Для доступа в камеру имеется дверца. Нагрев продуктов производится при помощи излучателя. В камере имеется лампочка. Управление печью производится при помощи таймера и кнопки «ПУСК». Излучатель не должен включаться при открытой дверце. Лампочка зажигается при нажатии на кнопку «ПУСК». Одновременно включается излучатель и начинает вращаться столик. Дополнительно имеется кнопка отключения вращения столика.
При истечении интервала таймера печи излучатель отключается и подается звуковой сигнал о готовности продукта. Лампочка продолжает гореть до открывания дверцы.
Вариант 7. Телефонный аппарат
Требуется разработать программное обеспечение встроенного микропроцессора для телефонного аппарата учрежденческой мини-АТС. Аппарат подключен к линии связи, ведущей к мини-АТС. Телефонный аппарат должен выполнять следующие функции.
При включении трубки аппарат посылает сигнал «Трубка». При включенной трубке аппарат реагирует на сигналы «Тон» и «Занято» из линии (от АТС).
При получении сигнала «Тон» от АТС аппарат должен воспроизвести звуковой тон «Готов» в трубку. При получении сигнала «Занято», аппарат должен воспроизвести звуковой тон «занято» в трубку. При отключенной трубке эти сигналы игнорируются. На трубке имеются цифровые кнопки 0-9. После получения сигнала «Тон» нажатие кнопки с цифрой 1-9 осуществляет вызов абонента с данным кодом. После того, как АТС произвела коммутацию линии, два аппарата могут обмениваться данными. При получении сигнала «Данные» из линии аппарат должен воспроизвести данные, передаваемые с сигналом, в трубку. При получении данных из трубки, аппарат должен преобразовать их в сигнал «данные» и передать их в линию.
После выключения трубки, аппарат посылает в линию сигнал «Конец». При получении сигнала «Вызов» из линии, аппарат должен произвести звуковой сигнал «Вызов» (независимо от положения трубки).
Вариант 8. Банкомат
Требуется разработать программное обеспечение банкомата. Банкомат должен выполнять следующие функции.
Обслуживание клиента начинается с момента вставления пластиковой карточки в банкомат. После распознавания типа пластиковой карточки, банкомат выдает приглашение ввести персональный код. Персональный код представляет собой 4-значное число. Затем банкомат проверяет правильность введенного кода и предлагает выбрать операцию. Банкомат выполняет следующие операции: снять наличные со счета, выдать справку по счету.
При снятии наличных со счета банкомат предлагает указать нужную сумму, после чего запрашивает, нужно ли печатать справку по операции. Затем банкомат посылает запрос на снятие выбранной суммы центральному компьютеру банка и, в случае получения разрешения на операцию, выдает приглашение вынуть пластиковую карточку. После удаления карточки, банкомат выдает указанную сумму в лоток выдачи. Затем банкомат печатает справку по произведенной операции, если она была затребована клиентом.
При выдаче справки по счету банкомат посылает запрос центральному компьютеру банка и затем печатает полученные данные.
Вариант 9. Турникет
Требуется разработать программное обеспечение встроенного процессора турникета для московского Метрополитена.
Турникет должен выполнять следующие функции.
Турникет служит для взимания оплаты за проезд в форме жетонов установленного образца, приобретаемых в кассах метрополитена. Турникет должен пропускать пассажиров, опустивших жетонустановленного образца в приемное устройство. Турникет должен препятствовать походу пассажиров, которые не произвели оплату. Турникет также должен препятствовать проходу пассажиров в не предусмотренном направлении.
Турникет имеет приемник жетонов, устройство для перекрывания доступа и 3 оптических датчика для определения направления прохода пассажира.
Вариант 10. Автомат по продаже Coca-Cola
Требуется разработать программное обеспечение встроенного процессора автомата по продаже банок Coca-Cola для станций московского метрополитена.
Автомат должен выполнять следующие функции.
Автомат имеет отделение для хранения запаса банок Coca-Cola. Автомат должен принимать к оплате бумажные купюры и монеты (установленных образцов). Специальный индикатор должен высвечивать текущую сумму денег, принятых автоматом к оплате. После достижения заданной стоимости клиент должен нажать на кнопку и получить банку. Должна быть предусмотрена кнопка «ВОЗВРАТ» при нажатии на которую клиенту возвращаются все принятые от него к оплате деньги.
Вариант 11. Игральный автомат
Требуется разработать программное обеспечение встроенного микропроцессора для игрального автомата. Игральный автомат представляет собой прозрачный контейнер, наполненный призами. Внутри контейнера имеется хватательное устройство на передвижной платформе. Платформа может перемещаться вдоль и поперек контейнера. Захват может опускаться на дно контейнера и поднимать захваченный груз вверх. Начальное положение платформы - в передней правом углу контейнера. Захват поднят вверх. Передняя стенка контейнера представляет собой панель управления автоматом.
Игра происходит следующим образом. Игрок опускает жетон в приемник. Затем игрок должен поместить манипулятор в определенную точку контейнера, при помощи кнопок «Вперед» и «Стоп». Перемещение захвата вперед осуществляется при нажатой кнопке «Вперед». Движение останавливается при отпускании кнопки. Сразу после этого автоматически начинается движение захвата влево. Движение захвата останавливается при нажатии на кнопку «Стоп». Сразу после этого захват открывается, опускается вниз, закрывается (возможно, захватывая при этом приз), поднимается наверх, возвращается вправо до конца, возвращается назад до конца и открывает захват. Если был захвачен приз, то он попадает в лоток выдачи. На этом игра заканчивается.
Вариант 12. Холодильник
Требуется разработать программное обеспечение встроенного процессора холодильника. Холодильник должен выполнять следующие функции. Холодильник имеет камеру для хранения продуктов. Доступ в камеру осуществляется через дверцу. На передней панели холодильника имеется регулятор температуры, при помощи которого можно устанавливать максимальную допустимую температуру в холодильной камере.
Холодильник имеет мотор, используемый для понижения температуры в холодильной камере. С камерой связан индикатор температуры, который постоянно выдает текущее значение температуры в камере. При повышении температуры выше определенного предела, определяемого текущим положением регулятора, должен включаться мотор. При снижении температуры ниже некоторого другого значения, связанного с первым, мотор должен отключаться.
Если дверь холодильника открыта в течении слишком долгого времени, должен подаваться звуковой сигнал. Дополнительно, звуковой сигнал должен подаваться в любых нештатных ситуациях (например, при невозможности обеспечить требуемую температуру в течение интервала, больше чем некоторое максимальное значение, либо при поломке индикатора температуры).
Вариант 13. Магнитофон
Требуется разработать программное обеспечение встроенного микропроцессора кассетного магнитофона. Магнитофон выполняет следующие функции. Имеется отделение для кассеты и панель управления. На панели имеются следующие кнопки: «ПУСК», «СТОП», «ВПЕРЕД», «НАЗАД», «ЗАПИСЬ» и «ОТКРЫТЬ».
Пользователь управляет магнитофоном, нажимая кнопку «ПУСК» для начала воспроизведения кассеты и кнопку «СТОП» для остановки. При помощи кнопок «ВПЕРЕД» и «НАЗАД» можно установить требующееся место на кассете.
Для смены кассеты требуется нажать кнопку «ОТКРЫТЬ», вынуть старую кассету и вставить новую. При этом магнитофон должен быть выключен.
При одновременном нажатии на кнопки «ПУСК» и «ЗАПИСЬ» магнитофон начинает запись звука на кассету. При воспроизведении магнитофон должен производить те же самые звуки, которые были слышны при записи.
Вариант 14. Домофон
Требуется разработать программное обеспечение встроенного микропроцессора домофона. Требуется обеспечить выполнение следующих функций.
Домофон должен регулировать доступ в подъезд многоквартирного дома. В подъезде имеется дверь с замком. С наружной стороны двери установлена панель с кнопками на каждую квартиру, микрофон и динамик. В каждой квартире имеется кнопка «СВЯЗЬ», «БЛОКИРОВКА» и «ОТКРЫТЬ». Кроме того, в квартире имеется микрофон и динамик.
Жильцы могут открывать дверь ключом. Посетитель может нажать кнопку квартиры. В квартире раздается звонок. При нажатии кнопки «СВЯЗЬ» внутри квартиры устанавливается звуковое сообщение между квартирой и посетителем. Звуки, произносимые посетителем в микрофон, установленный в подъезде, должны быть слышны в динамике, установленном в квартире. При нажатии на кнопку «ОТКРЫТЬ» дверь в подъезд открывается.
Нажатие на кнопку «БЛОКИРОВКА» отключает подачу звонка в квартиру при нажатии на кнопку квартиры в подъезде. Повторное нажатие на кнопку «БЛОКИРОВКА» вновь включает подачу звонка.
Вариант 15. Кодовый замок
Требуется разработать программное обеспечение встроенного микропроцессора для кодового замка, регулирующего доступ в помещение.
Кодовый замок состоит из панели с кнопками (цифры 0..9, кнопка «Вызов»), электромеханического замка, звонка и системы коммутации. Панель с кнопками устанавливается с наружной стороны двери, замок устанавливается с внутренней стороны двери, звонок устанавливается внутри охраняемого помещения.
Нормальное положение замка - закрыто. Доступ в помещение осуществляется после набора кода доступа (4 цифры) (сигнал «открыть» замку). Закрытие двери осуществляется автоматически через определенный интервал времени. Кнопка «Вызов» используется для подачи звукового сигнала внутри помещения. Кнопка «Контроль» используется для смены кодов.
Смена кода доступа осуществляется следующим образом. При открытой двери нужно набрать код контроля (4 цифры) и новый код доступа. Для смены кода контроля нужно при открытой двери и нажатой кнопке «Вызов» набрать код контроля, после чего - новый код контроля.
Вариант 16. Контроль доступа I
Требуется разработать программное обеспечение встроенного процессора для устройства контроля доступа в охраняемые помещения.
Устройство должен выполнять следующие функции.
В устройстве имеется считыватель магнитных карт и панель с кнопками (цифры 0-9). На каждой магнитной карте записан индивидуальный код (4 цифры). Доступ в помещение осуществляется следующим образом. Магнитная карта вставляется в считывающее устройство и набирается индивидуальный код. Если набранный код совпал с кодом, записанным на магнитной карте, доступ разрешается (сигнал «Открыть» замку). Иначе зажигается световая индикация «Нет доступа».
Вариант 17. Стиральная машина
Требуется разработать программное обеспечение встроенного микропроцессора стиральной машины. Машина должна выполнять следующие функции.
В машине имеется бак для белья, клапаны для забора и слива воды, мотор, дверца для доступа в бак и емкость для моющего средства. Для управления машиной имеется единственная кнопка «ПУСК».
Для использования машины необходимо открыть дверцу, поместить белье в бак, поместить моющее средство в емкость, закрыть дверцу и нажать на кнопку «ПУСК». Машина автоматически определяет необходимое количество воды, моющего средства и время стирки. Машина должна открыть клапан для забора воды, набрать необходимое количество воды, затем закрыть клапан. Далее, машина должна впустить необходимое количество моющего средства. Затем в течение установленного времени должен работать мотор. Затем машина должна открыть сливной клапан и выпустить воду.
Вариант 18. Контроль доступа II
Требуется разработать программное обеспечение встроенного микропроцессора для системы контроля доступа в помещения. Система должна обеспечивать выполнение следующих функций. Имеется набор пунктов контроля (управляемых дверей). На каждом пункте контроля имеется считыватель магнитной карточки. Для прохода через пункт контроля необходимо вставить индивидуальную магнитную карточку в считыватель. Пункт контроля передает свой код и код, записанный на магнитной карточке на центральное устройство системы контроля. Центральное устройство обрабатывает запрос и присылает ответ «Да» или «Нет». Если пришел ответ «Да», пункт контроля разрешает проход (открывает дверь). Если пришел ответ «Нет», пункт контроля высвечивает сигнал «Нет доступа».
Вариант 19. Автоматическая камера хранения
Требуется разработать программное обеспечение встроенного микропроцессора автоматической камеры хранения для московских вокзалов. Камера хранения должна выполнять следующие функции.
Имеется набор ячеек хранения. В каждой ячейке имеется кодовый замок и приемник денег. В приемник помещается определенная сумма денег. В ячейку помещаются вещи, набирается секретный код и ячейка закрывается. Для изъятия вещей необходимо набрать код и открыть дверь. Система должна обеспечивать индикацию количества свободных ячеек и функцию аварийного вскрытия любой ячейки.
Вариант 20. Автоматический железнодорожный переезд
Требуется разработать встроенного микропроцессора оборудования для управления железнодорожным переездом.
Система должна обеспечивать выполнение следующих функций.
Имеется несколько железнодорожных путей и автомобильная дорога. Дорога пересекает пути. На дороге установлен шлагбаум. На путях имеются датчики, сигнализирующие о наличии поезда внутри некоторого охраняемого участка по обе стороны от переезда. При попадании поезда внутрь участка требуется закрыть шлагбаум. При выходе последнего поезда из участка требуется открыть шлагбаум.
Вариант 21. Ксерокс
На корпусе аппарата имеются кнопки «Вкл», «Пуск», «+» и «Сброс», а также табло индикации режима. Включение аппарата производится нажатием кнопки «Вкл», при этом на табло высвечивается индикация рабочего режима (аппарат готов к копированию) или аварийного режима (выполнение копирования невозможно), кроме того в рабочем режиме на табло высвечивается количество выполняемых копий (первоначально равно 1).
Для выполнения копирования необходимо обеспечить наличие бумаги в лотке подачи, закрыть крышку аппарата и нажать кнопку «Пуск», при этом аппарат должен находиться в рабочем режиме (нажатие кнопки «Пуск» при невыполнении хотя бы одного из этих условий игнорируется). По нажатию кнопки «Пуск» включается механизм продвижения очередного листа бумаги из лотка подачи и копирующий элемент. По завершению копирования соответствующие механизмы отключаются, готовая копия подается в лоток выдачи и количество экземпляров копирования на табло уменьшается на 1.
При возникновении различных аварийных ситуаций (кончился порошок, застряла бумага и т.д.) аппарат переходит в аварийный режим. В этом режиме игнорируются нажатия всех кнопок кроме «Вкл».
Нажатие кнопки «+» увеличивает количество копий на табло на 1. Нажатие кнопки «Сброс» устанавливает количество копий на табло равным 1.
Выключение аппарата производится повторным нажатием кнопки «Вкл», при этом гасится табло индикации.
Требования к заданиям по практикуму «Методы формальной спецификации программ: языки MSC и SDL». 2004 год
Задание 1. Фаза анализа требований. Сценарная модель системы
Исходные данные: начальная постановка задачи (в текстовом виде)
Требуется: построить сценарную модель системы. В состав сценарной модели должны входить следующие части:
Задание 2. Фаза анализа требований. Формализация сценарной модели
Исходные данные: начальная постановка задачи, сценарная модель системы.
Требуется: формализовать сценарную модель системы. Сценарная модель системы должна быть формализована в виде набора диаграмм взаимодействия на языке MSC. Диаграммы взаимодействия должны соответствовать сценариям, выделенным в сценарной модели. Объектами на диаграммах взаимодействия должны быть только агенты и сама анализируемая система. Диаграммы взаимодействия должны быть построены в виде MSC-диаграмм в системе SDT. Диаграммы должны удовлетворять синтаксису и семантике языка диаграмм взаимодействия.
Задание 3. Фаза анализа системы. Архитектурная модель системы
Срок сдачи задания: 21 апреля 2004
Исходные данные: начальная постановка задачи (в текстовом виде), сценарная модель системы и формальная сценарная модель системы в виде набора диаграмм взаимодействия
Требуется: построить архитектурную модель системы. Архитектурная модель системы должна быть представлена в виде диаграммы системы, диаграмм блоков и диаграмм процессов на языке SDL. Архитектурная модель должна быть реализована в системе SDT. Архитектурная модель должна удовлетворять синтаксису языка SDL (подтверждено протоколом синтаксического анализатора). В состав архитектурной модели должны входить следующие части:
Задание 4. Фаза проектирования: Построение исполняемой SDL модели
Срок сдачи задания: 5 мая 2004
Исходные данные: Исходные данные: начальная постановка задачи, сценарная модель системы, архитектурная модель системы, SDL диаграмма системы, SDL диаграммы блоков.
Требуется: построить детальную модель системы, т.е. привести формальные описания поведения всех процессов в системе на языке SDL-92. Требуется запустить детальную модель системы с монитором SDT.