Uploaded by Даут Резяпов

ПСРВ 14 этапов

advertisement
1. Описание задачи
В работе рассматривается автомат по продаже выпечки. Данный автомат
обеспечивает выдачу выпечки в зависимости от их вида, выбранного
клиентом. Также автомат должен обеспечить прием денежных средств и в
случае необходимости выдать сдачу.
Автомат состоит из следующих устройств:
− Панель управления – служит для взаимодействия с клиентом и выполнения
сервисных команд;
− Автомат – устройство для выдачи;
− Устройство хранения– устройство для хранения;
− Сканер денежных средств – устройство для определения номинала и
подлинности введённой клиентом купюры или монеты;
− Устройство хранения и выдачи денежных средств – устройство для
хранения введённых клиентом денежных средств, а также подсчета и
выдачи сдачи.
При работе автомата возможны ситуации, при которых возникают
неисправности. К возможным неисправностям относятся поломки составных
частей автомата, переполнение устройства хранения денежных средств. При
возникновении любой неисправности система отправляет уведомление
оператору, который вызывает техника для их устранения.
2. Модель прецедентов
В системе присутствует три актера: клиент, оператор и автомат. Клиент
инициирует прецедент «Запуск автомата». Оператор инициирует прецедент
«Устранение неисправностей».
Рисунок 1 – Модель прецедентов
1.1 Прецедент «Запуск автомата»
Актер. Клиент.
Предусловие. Автомат ожидает клиента.
Описание. Клиент выбирает выпечку и вводит денежные средства,
автомат начинает работу. В случае возникновение неисправности автомат
отправляет сообщение оператору.
Альтернативы.
Клиент
не
запускает
автомат,
система
функционирует.
Постусловие. Автомат работает и выполняет свои функции.
не
1.2 Прецедент «устранение неисправностей»
Актер. Оператор.
Предусловие. Оператор находится на рабочем месте, в автомате
произошла ошибка – неисправен сканер денежных средств, устройство
хранения и выдачи денежных средств или устройство хранения. Также
неисправностью может считаться отсутствие выпечки или электроэнергии.
Система посылает оператору сообщение о необходимости устранить
проблему.
Описание. Оператор получает запрос и нажимает кнопку вызова
специалиста, в течение некоторого времени специалист устраняет неполадку.
Альтернативы. Система не отправляет сообщение, оператор не
вызывает специалиста.
Постусловие. Неисправность устранена, система находится в состоянии
«Ожидание клиента»
1.3 Абстрактные прецеденты
Анализ
данных
прецедентов
показывает,
что
есть
общие
последовательности, которые допустимо вынести в абстрактные прецеденты,
а затем включить в новые, более простые варианты исходных прецедентов.
Выделим следующие абстрактные прецеденты:
●
Остановить автомат;
●
Распознать денежные средства;
●
Выдать сдачу;
●
Приготовить выпечку к выдаче;
Отношения между ними представлены ниже:
Рисунок 2 – Модель прецедентов с абстрактными прецедентами
1.4 Абстрактный прецедент «Остановить автомат»
Актер. Автомат.
Предусловие. Автомат работает.
Описание. Автомат заканчивает выдачу и прекращает свою работу.
Альтернативы. Выпечка не выдана. Автомат продолжает работу.
Постусловие. Автомат ожидает нового клиента.
1.5 Абстрактный прецедент «Распознать денежные средства»
Актер. Сканер денежных средств.
Предусловие. Клиент ввел денежные средства.
Описание. Сканер распознает введение денежные средства и в случае
необходимости выдается сдача, инициируя прецедент «Выдать сдачу». В
случае, если введённых денежных средств достаточно, инициируется
прецедент «Приготовить выпечку к выдаче»
Альтернативы. Клиент не вводит денежные средства, система не
функционирует.
Постусловие. Автомат работает и выполняет свои функции.
1.6 Абстрактный прецедент «Выдать сдачу»
Актер. Устройство хранения и выдачи денежных средств.
Предусловие. Сканер денежных средств распознал денежные средства.
Описание. В случае необходимости клиенту выдается сдача
Альтернативы. Нет необходимости выдать сдачу
Постусловие. Автомат работает и выполняет свои функции.
1.7 Абстрактный прецедент «Приготовить выпечку к выдаче»
Актер. Устройство выдачи.
Предусловие. Сканер денежных средств распознал денежные средства.
Описание. Автомат готовит выпечку к выдаче при условии её наличия.
Альтернативы. Выбранной выпечки нет, он не готовится к выдаче.
Постусловие. Автомат работает и выполняет свои функции.
1.8 Конкретный прецедент «Запуск автомата»
Актер. Клиент.
Предусловие. Автомат ожидает клиента.
Описание. Клиент выбирает выпечку, вводит денежные средства,
автомат начинает работу. В случае возникновение неисправности автомат
отправляет сообщение оператору. При вводе клиентом денежных средств
инициируется абстрактный прецедент «Распознать денежные средства»
Альтернативы.
Клиент
не
запускает
автомат,
система
функционирует.
Постусловие. Автомат работает и выполняет свои функции.
не
3. Статическая модель предметной области
В
статической
модели
отражаются
статические
отношения,
существующие в системе автомата. Для начала рассмотрим физические
классы предметной области (рис.3).
Рисунок 3 – Концептуальная модель предметной области
Класс «Панель управления» является составным классом, содержащим
классы «Дисплей» и «Клавиатура», причем одна панель управления содержит
один дисплей и одну клавиатуру, с помощью которых клиент взаимодействует
с автоматом.
Класс «Сканер денежных средств» является составным классом,
содержащим классы «Купюроприемник» и «Монетоприемник». Один сканер
денежных средств содержит один купюроприемник и один монетоприемник.
Выделим все внешние устройства как классы внешних устройств ввода
или вывода, связанные с автоматом.
Рисунок 4 - Диаграмма контекста классов для автомата
4. Разбиение на объекты
Чтобы подготовиться к динамическому моделированию, рассмотрим
программные объекты в системе автомата.
Поскольку объект «Сканер денежных средств» получает управляющие
воздействия от внешних объектов и передает информацию внешним объектам,
то некоторые его компоненты – это объекты интерфейса ввода/вывода.
Аналогично, объекты класса «Автомат» содержат интерфейсы ввода и
вывода, с помощью которых организуется их взаимодействие с системой.
Взаимодействие между клиентом и автоматом происходит посредством
интерфейса ввода и интерфейса вывода панели управления автоматом.
Помимо объектов, которым соответствуют физические устройства и
объектов интерфейса, необходимо выделить управляющие и сущностные
объекты. Текущее состояние системы находится в зависящем от состояния
объекте «Выпечка».
Поскольку запросы от клиентов поступают асинхронно, возникает
необходимость в создании управляющего объекта «Диспетчер». Данный
объект будет принимать и отправлять запросы, обновлять состояние системы.
5 Динамическое моделирование
5.1Диаграмма кооперации для прецедента «Запуск автомата».
Е1: Клиент отправляет запрос на интерфейс панели управления;
Е2: Интерфейс панели управления отправляет запрос на обслуживание
диспетчеру;
Е3: Диспетчер обновляет состояние объекта «Выпечка»;
Е4: Объект Диспетчер отправляет запрос на обслуживание ЭВМ;
Е5: Объект ЭВМ отправляет запрос на интерфейс устройства сканер
денежных средств;
Е6: Интерфейс устройства сканер денежных средств отправляет ответ
ЭВМ;
Е7: Объект ЭВМ отправляет запрос на интерфейс объекта устройство
хранения и выдачи денежных средств;
Е8: Интерфейс объекта устройство хранения и выдачи денежных
средств отправляет ответ ЭВМ;
Е9: Объект ЭВМ отправляет запрос старта на интерфейс устройства
автомат;
Е10: Интерфейс устройства автомат отправляет подтверждение старта
объекту ЭВМ.
Рисунок 5 – Диаграмма кооперации для прецедента запуск автомата.
5.2Диаграмма кооперации для прецедента «Остановка автомата».
R1: Интерфейс устройства автомат отправляет сигнал об окончании
работы объекту ЭВМ;
R2: ЭВМ отправляет запрос на изменение состояние объекта выпечка
диспетчеру;
R3: Диспетчер обновляет состояние объекта выпечка;
R4: Объект Диспетчер отправляет сообщение об остановке устройству
ЭВМ;
R5: Объект ЭВМ отправляет сигнал отключения на интерфейс
устройства автомата.
R6: Объект ЭВМ отправляет сообщение об отключении на интерфейс
панели управления.
Рисунок 6 – Диаграмма кооперации прецедента остановка автомата
5.3Диаграмма
кооперации
для
прецедента
«Устранение
неисправности».
T1: ЭВМ отправляет на интерфейс панели управления сообщение о
неисправности;
T2: Интерфейс панели управления уведомляет оператора;
T3: ЭВМ отправляет на интерфейс устройства и хранения денежных
средств запрос на возврат денежных средств;
T4: ЭВМ отправляет сигнал отключения на интерфейс устройства
сканер денежных средств.
Рисунок 7 – Диаграмма кооперации прецедента устранение
неисправности
5.4Диаграмма кооперации для прецедента «Распознать денежные
средства».
Y1: Клиент вводит денежные средства в сканер денежных средств;
Y2: Интерфейс устройства сканер денежных средств отправляет ЭВМ
сигнал о поступлении денежных средств;
Y3: ЭВМ отправляет на интерфейс панели управления сообщения о
введённой сумме.
Рисунок 8 – Диаграмма кооперации прецедента распознать денежные
средства
5.5Диаграмма кооперации для прецедента «Выдать сдачу».
U1: ЭВМ отправляет сигнал на выдачу денежных средств на интерфейс
устройства хранения и выдачи денежных средств;
U2: Интерфейс устройства хранения и выдачи денежных средств
отправляет ЭВМ сигнал о выдачи денежных средств;
U3: ЭВМ отправляет на интерфейс панели управления сообщения о
выданной сумме.
Рисунок 9 – Диаграмма кооперации прецедента выдать сдачу
5.6Диаграмма кооперации для прецедента «Приготовить выпечку к
выдаче»
I1: Клиент выбирает выпечку на панели управления;
I2: Интерфейс панели управления передает сообщение о выбранной
выпечке ЭВМ;
I3: ЭВМ отправляет запрос диспетчеру на изменение состояния объекта
выпечка;
I4: Диспетчер изменяет текущее состояние объекта выпечка;
I5: ЭВМ отправляет запрос устройству автомат на приготовление
выпечки к выдаче;
I6: ЭВМ передает текущее состояние объекта выпечка на интерфейс
панели управления;
I7: Устройство автомат передает сигнал о завершении приготовлении
выпечки к выдаче ЭВМ;
I8: ЭВМ передает сообщение о завершении приготовлении на интерфейс
панели управления.
Рисунок 10 – Диаграмма кооперации прецедента приготовить выпечку
к выдаче
6 Модель состояний
Модель возможных состояний системы представлена на рисунке 11.
Ниже приведены краткие описания каждого состояния:
1)
Автомат остановлен – система не выполняет своих функций.
2)
Автомат работает – автомат производит прием денежных средств
и выдачу.
3)
Автомат неисправен – при возникновениях неполадок устройств
система оповещает оператора о возникшей неисправности и находится в
данном состоянии до тех пор, пор, пока неисправность не будет устранена.
Рисунок 11 – Диаграмма состояний верхнего уровня объекта
«Автомат»
Состояние «Автомат работает» представляет из себя сложное состояние,
из которого можно выделить следующие подсостояния:
1)
Ожидание клиента – как только автомат был включен, система
ожидает клиента;
2)
Приготовление выпечки – после того, как новый клиент выбрал
выпечку, автомат начинает его готовить к выдаче;
3)
Выпечка готова – система переходит в данное состояние после
завершения приготовления выпечки к выдаче автоматом, и находится в нем,
пока клиент не заберет выпечку.
Диаграмма состояний с выделенными подсостояниями приведена на
рисунке 12.
Рисунок 12 – Диаграмма состояний с выделенными подсостояниями
7
Консолидация диаграмм кооперации
Произведем консолидацию диаграмм кооперации все прецедентов.
Данная
диаграмма
покажет
взаимодействие
всех
объектов.
Консолидированная диаграмма кооперации представлена на рисунке 13.
%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bhtml%3D1%3B%22%20edge%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22686%22%20y%3D%22626%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22736%22%20y%3D%22626%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E
Рисунок 13 – Консолидированная диаграмма кооперации
8
Разбиение на подсистемы
На данном шаге производится разбиение системы на подсистемы.
Интерфейс панели управления выделяется в подсистему Панели управления.
Объект-координатор «Диспетчер» помещается в своей подсистеме, поскольку
не зависит от других частей. «ЭВМ» и интерфейсы внешних устройств
выделяются в подсистему «Управление автоматом».
Подсистема координирования «Диспетчер» является подсистемой
координирования. Подсистема оператора Панели управления – подсистема
оператор
управления
(подсистема
автоматом
пользовательского
является
ввода/вывода).
управляющей
Подсистема
подсистемой.
Ниже
представлена общая схема разбиения системы на подсистемы.
Рисунок 14 – Разбиение на подсистемы
Уточним структуру подсистемы Управления автоматом. В ее состав
входят интерфейсы внешних устройств, управляющая ЭВМ, и программный
управляющий объект, зависящий от состояния. Структура подсистемы
представлена на рисунке ниже.
Рисунок 15 – Структура подсистемы управления автоматом
9 Разбиение системы на задачи
Рассмотрим
разбиение
на
задачи.
Для
этого
необходимо
проанализировать все объекты на диаграммах кооперации и применить
критерии выделения задач. Сделаем это для каждой диаграммы по очереди. На
рисунке ниже представлена уточненная статическая модель системы.
В распределенной системе управления автоматом имеется по одному
экземпляру управляющей системы «Управление автоматом». Но, если
трактовать систему как нераспределенную, можно кое-что упростить. В
данном случае система управления автоматом отображается на один
процессор или сильно связанную многопроцессорную конфигурацию с общей
памятью.
Важным аспектом нераспределенного решения является то, что
сущностный объект «Выпечка» доступен всем автоматам, ровно как и
координатору, то есть его можно расположить в централизованном хранилище
данных.
Рисунок 16 – Уточненная статическая модель нераспределенной системы
9.1Выделение задач в подсистеме панели управления
В случае нераспределенного решения, панель управления – подсистема,
которая состоит из нескольких объектов «Панель управления». Каждая панель
управления имеет устройство ввода и устройство вывода. Задача «Панель
управления» активизируется по запросу оператора. Объекты «Дисплей панели
управления» и «Устройства ввода панели управления» становятся задачами
асинхронного ввода и вывода.
9.2Выделение задач в подсистеме диспетчера
Перейдем к архитектуре задач в подсистеме координирования. Объект
«Диспетчер» выделяется в самостоятельную координирующую задачу,
которая активизируется при получении запросов от панели управления.
Бывает, что различные экземпляры задач одновременно посылают запросы на
панель управления. Также возможно, что сообщения с нескольких панелей
управления одновременно придут диспетчеру. В таком случае необходимо
создать задачу-монитор ресурса, которая сможет реализовать обработку
параллельных запросов. Назовем данную задачу «Монитором панели
управления».
Данные выделяются в сущность абстракции данных – План работы.
Таким образом, подсистема координирования будем содержать
следующие задачи:
−
Диспетчер;
−
Монитор панели управления.
9.3Выделение задач в подсистеме управления автоматом
Рассмотрим
архитектуру
задач
«Управление
автоматом»
для
нераспределенного случая.
Объект «интерфейс устройства ввода панели управления» получает
входную информацию от актера. Затем данные передаются в координатор.
После обработки данные поступают в объект «ЭВМ». Объект «ЭВМ» можно
выделить в самостоятельную задачу.
Задача
«Управление
автоматом»
активизируется
прерыванием,
возникающим при поступлении данных. Задача «Управление внешними
устройствами» активизируется асинхронными сообщениями объекта «ЭВМ».
Интерфейсы
устройств
становятся
асинхронными
задачами
интерфейсов устройств ввода/вывода. В нераспределенном варианте система
управления разбивается на следующие задачи:
−
Управление автоматом;
−
Интерфейс сканера денежных средств;
−
Интерфейс устройства хранения и выдачи денежных средств;
−
Интерфейс устройства автомат.
Ниже представлена схема, отображающая архитектуру задач системы
управления автоматом.
Рисунок 17 – Архитектура задач в нераспределенной системе
9.4Интерфейсы задач
Рассмотрим, как определяются интерфейсы задач. В случае интерфейсов
обмена сообщениями между параллельными задачами возможен либо слабо
связанный, либо сильно связанный обмен. Необходимо исследовать только
интерфейсы между объектами, выделенными в самостоятельные задачи.
Кроме того, следует точно описать сообщения, включая их имена и параметры.
Рассмотрим интерфейс между панелью управления и асинхронным
устройством
ввода
панели
управления.
Интерфейс является
сильно
связанным, так как панель управления активируется в момент прихода
сообщений с устройства ввода. Интерфейс между асинхронным устройством
вывода Дисплей панели управления и панелью управления также является
сильно связанным. Задача Дисплей панели управления до прихода сообщений
от панели управления не активна, и, следовательно, должна быть
активизирована в момент прихода сообщения.
Интерфейс
между Панелью
управления
и
Монитором панели
управления является слабо связанным, так как несколько Панелей управления
одновременно могут посылать сообщения Монитору и при этом не должны
блокироваться.
Интерфейс между Монитором панели управления и диспетчером
должен быть сильно связанный. Диспетчер активируется в момент прихода
сообщения от панели управления.
Интерфейс между задачами Управления автоматом и Диспетчером
должен
быть
сильно
связанным,
при
этом
Управление
автоматом
активируется в момент обновления состояния Диспетчером. Интерфейс между
задачами Диспетчер и ЭВМ должен быть слабо связанным для исключения
возможности взаимной блокировки.
Рассмотрим интерфейсы задач внутри управляющей подсистемы.
Интерфейс между задачей Управление автоматом и ЭВМ должен быть сильно
связанным,
при
этом
задача
ЭВМ
активируется
управляющих сообщений от Управления автоматом.
при
поступлении
Интерфейсы между ЭВМ и задачами интерфейсов должны быть сильно
связанными, так как активируются только в момент прихода сообщений.
Интерфейсы задач отображены на рисунке ниже.
Рисунок 18 – Интерфейсы задач в нераспределенной системе
9.5Проектирование класса абстрагирования данных
Для хранения данных о работе создадим класс абстракции данных –
План работы. План работы системы содержит параметры работы автомата –
скорость работы, параметры подачи. Поскольку есть только один экземпляр
указанного класса, мы вправе прибегнуть к централизованному хранилищу.
Чтобы
определить
операции
класса
необходимо понять, как к нему обращаются.
абстрагирования
данных,
Диспетчер передает объекту Управление автоматом план работы.
Управление автоматом записывает данные в План работы. В процессе работы
системы объект Управление автоматом обновляет данные в Плане работы.
В случае распределенной системы каждая подсистема управления
автоматом будет иметь свой локальный план работы, а в подсистеме
координирования будет находиться сводный план работы.
Рисунок 19 – Класс абстрагирования данных для нераспределенной
системы
9.6Обсуждение альтернативных архитектур
Вместо описанной архитектуры мы могли бы ввести для каждого
автомата План работы, Диспетчер, объекты интерфейсов внешних устройств.
При наличии одного процессора такое решение не желательно из-за слишком
больших накладных расходов.
Но в многопроцессорной среде для каждого автомата имеется свой
процессор, на котором будут выполняться экземпляры задач «Управление
автоматом» и задачи интерфейсов внешних устройств.
10 Проект распределенной системы управления
Физическая
конфигурация
распределенной
системы
управления
автоматами состоит из нескольких узлов, соединенных локальной сетью. В
такой среде необходимо установить дисциплину, согласно которой все
коммуникации между распределенными подсистемами происходят путем
обмена сообщениями. Общая архитектура распределенного ПО показана на
рисунке ниже, где представлено несколько экземпляров подсистемы
управления автоматом (по одной на автомат), по одному экземпляру
подсистем
координатора
и
оператора.
Все
коммуникации
между
подсистемами осуществляются посредством слабо связанного обмена
сообщениями.
В распределенной конфигурации нет разделяемой памяти, а значит,
Координатор и экземпляры подсистемы управления автоматом не могут
напрямую обратиться к объекту абстрагирования данных «План работы».
Один из способов решить проблему - погрузить такой объект в серверную
задачу. Вместо того, чтобы вызывать операцию объекта абстрагирования
данных, клиентская задача отправит синхронное сообщение с ответом задаче
«Сервер» плана работы. Но при этом сервер может стать узким местом,
поскольку у него есть довольно много клиентов.
Альтернативное решение – применение репликации данных. Каждый
экземпляр подсистемы управления автоматом хранит собственный локальный
объект «Локальный план работы». Есть такой объект и у Координатора, только
в нем содержатся состояния и планы работы всех автоматов, и называется он
«Сводный план работы». Эти классы абстрагирования данных изображены
ниже.
Рисунок 20 – Диаграмма классов для распределенной системы
Рисунок 21 – Структура распределённой системы
10.1 Структура подсистемы координирования
Подсистема координирования состоит из двух задач и объекта,
скрывающего информацию – монитора ресурсов, диспетчера и сводного плана
работы. Диспетчер через монитор панели управления получает с панелей
управления
запросы
на
обслуживание
и
выводит
информационные
сообщения. Диспетчер обновляет сводный план работ, а также передает
локальные планы работ в подсистемы управления автоматом. Помимо этого,
диспетчер обновляет состояние подсистем управления автоматами.
Рисунок 22 – Структура распределенной системы. Архитектура задач
подсистемы координирования распределенной системы
Рисунок 23 – Структура распределенной системы. Интерфейсы задач
подсистемы координирования распределенной системы
10.2 Структура подсистемы управления автоматом
Подсистема управления автоматом состоит из следующих задач:
−
Управление автоматом;
−
Интерфейс сканера денежных средств;
−
Интерфейс устройства хранения и выдачи денежных средств;
−
Интерфейс устройства автомат.
Также в данной подсистеме находится объект абстракции данных локальный план работ.
Подсистема
координирования
обновляет
состояние
объекта
«Управление автоматом» и передает ему локальный план работ. Объект
«Управление автоматом» передает сущности «Локальный план работ» план
работ. Затем объект «Управление автоматом» передает объекту «ЭВМ»
управляющее сообщение, а он передает различные сообщения интерфейсами
внешних устройств. Структура подсистемы представлена на рисунке ниже.
Рисунок 24 – Структура распределенной системы. Архитектура задач
подсистемы управления автоматом
Рисунок 25 - Структура распределенной системы. Интерфейсы задач
подсистемы управления автоматом
10.3 Интерфейсы подсистем
После определения интерфейсов задач во всех трех подсистемах можно
обновить
архитектуру
распределенной
программы
с
целью
показа
интерфейсов подсистем.
Рисунок 26 – Структура распределенной системы. Интерфейсы подсистем.
11 Разработка скрывающих информацию классов
Классы были определены на этапе разбиения системы на объекты,
теперь речь пойдет о проектировании их операций. В этом разделе мы
разработаем классы, скрывающие информацию.
11.1 Проектирование классов интерфейсов устройств
Класс интерфейса устройства скрывает истинный интерфейс с
физическим устройством, предлагая вместо него виртуальный интерфейс. Для
каждого типа устройств ввода/вывода имеется отдельный интерфейсный
класс. Состав операций, поддерживаемых таким классом, зависит от функций,
которые должен поддерживать объект интерфейса. Классы интерфейса
устройств изображены ниже:
Рисунок 27 – Классы интерфейсов устройств
11.2 Проектирование классов, зависящих от состояния
В системе есть только один зависящий от состояния класс «Управление
автоматом», который инкапсулирует диаграмму состояний, реализованную в
виде таблицы переходов, описанную в разделе «Модель состояний».
Поскольку задача существует в нескольких экземплярах, то и экземпляров
класса будет несколько – по одному для каждого автомата. Ниже представлена
спецификация класса.
Рисунок 28 – Класс зависящих от состояния управляющих объектов
12 Разработка детального проекта системы
В предыдущих разделах работы были определены задачи, их
интерфейсы, а также скрывающие информацию классы. Теперь необходимо
выполнить детальное проектирование системы. В данный процесс входит
проектирование
объектов-разъемов
и
составных
задач,
в
которые
вкладываются скрывающие информацию объекты.
12.1 Проектирование объектов-разъемов
Интерфейсы задач в распределенной подсистеме управления автоматами
имеют концептуальный характер: они показывают тип обмена сообщениями слабо или сильно связанный. На этапе детального проектирования интерфейсы описываются более точно с помощью объектов-разъемов, как это
показано ниже. Так, объекту «Управление автоматом» поступают слабо
связанные сообщения. Данный интерфейс отражается на объект-разъем
очередь сообщений объекта «Управление автоматом». Объект «Управление
автоматом»
передает
соответственно
диспетчеру
отображается
слабо
связанные
сообщения,
что
на объект-разъем «Очередь сообщений
диспетчера».
Диспетчер передает и получает слабо связанные сообщения от
подсистемы «Панель управления», соответственно, данные интерфейсы
отображаются на объекты-разъемы «Очередь сообщений диспетчера» и
«Очередь сообщений Панели управления». Также диспетчер передает слабо
связанные сообщения объекту-разъему «очередь сообщений ЭВМ».
Рисунок 29 – Объекты разъемы системы управления автоматом
12.2 Проектирование составных задач
Рассмотрим теперь проектирование составной сгруппированной задачи
Управление автоматом, чтобы показать вложенные в нее объекты,
скрывающие информацию. Объекты, описывающие каждый автомат,
размещаются внутри соответствующего объекта «Управление автоматом».
Это зависящие от состояния объекты «Управление автоматом», «задача
ЭВМ», и интерфейсы внешних устройств: Интерфейс Сканера денежных
средств, Интерфейс устройства хранения и выдачи денежных средств,
интерфейс устройства «Автомат». Объект «Управление автоматом» передает
диспетчеру сообщения, что соответственно отображается на объект-разъем
«Очередь сообщений диспетчера».
Диспетчер передает и получает сообщения от подсистемы «Панель
управления», соответственно, данные интерфейсы отображаются на объектыразъемы «Очередь сообщений диспетчера» и «Очередь сообщений Панели
управления». Так же диспетчер передает сообщения объекту-разъему
«очередь сообщений ЭВМ».
Рисунок 30 – Детальный проект подсистемы Управление автоматом
13 Конфигурирование целевой системы
На
этапе
отображение
конфигурирования
подсистем на
целевой
физические
узлы.
системы
производится
Одна из
возможных
конфигураций такова: по одному узлу для каждого экземпляра Управляющей
подсистемы управления автоматом (один узел для каждого автомата), по
одному узлу для каждого экземпляра подсистемы оператора панели
управления (один узел для каждого автомата) и один узел для подсистемы
координирования Диспетчер. Следовательно, если есть N автоматов, то
физическая конфигурация будет состоять из N + 3 узлов. Такой вариант
изображен на диаграмме развертывания ниже:
Рисунок 31 - Диаграмма развертывания системы управления
автоматами (распределенный вариант)
При развертывании нераспределенного варианта системы все автоматы
отображаются на один узел управляющей подсистемы управления автоматом,
и, таким образом, вся система будет состоять всего из трех узлов.
14. Анализ производительности нераспределенной системы
В данном разделе будет произведен анализ производительности
нераспределенного
варианта
системы
управления
автоматом
с
использованием теории планирования в реальном времени.
14.1 Сценарий для анализа производительности
Рассмотрим одну конкретную конфигурацию системы управления
автоматом, а затем произведем анализ худшего с точки зрения теории
планирования случая. Возьмем следующий худший случай:
−
Прерывания от панели управления поступают с частотой один раз
в минуту.
14.2 Последовательности событий
14.2.1 Последовательность «Запуск автомата»
A0: Интерфейс «Устройство ввода панели управления» получает и
обрабатывает прерывание;
A1: Интерфейс «Устройство ввода панели управления» отправляет
запрос старта системы на «Монитор ресурсов» – Монитор панели управления;
А2: Монитор панели управления передает запрос старта диспетчеру;
A3: Диспетчер обновляет данные в хранилище «План работы»
А4: Диспетчер обновляет состояние объекта «Управление автоматом»;
А5: Объект Управление автоматом отправляет сообщение о старте
системы контроллеру ЭВМ;
А6: Контроллер ЭВМ отправляет сообщение о старте системы на
интерфейс устройства сканер денежных средств;
А7: Интерфейс устройства сканера денежных средств отправляет
подтверждение старта контроллеру ЭВМ;
А8: Контроллер ЭВМ отправляет сообщение о старте системы на
интерфейс объекта устройство хранения и выдачи денежных средств;
А9: Интерфейс устройства хранения денежных средств отправляет
подтверждение старта контроллеру ЭВМ;
А10: Контроллер ЭВМ отправляет сообщение о старте на интерфейс
устройства автомат;
А11: Интерфейс устройства автомат отправляет подтверждение старта
контроллеру ЭВМ.
14.2.2 Последовательность «Остановка системы»
B0: Интерфейс устройства автомат принимает и обрабатывает
прерывание;
B1: Интерфейс устройства автомат отправляет сигнал об окончании
работы объекту ЭВМ;
B2: ЭВМ отправляет запрос на изменение состояние объекта план работ;
B3: Диспетчер обновляет состояние объекта план работ;
B4: Объект Диспетчер отправляет сообщение об отключении на монитор
панели управления;
B5: Монитор панели управления передает сообщение на интерфейс
дисплея панели управления;
B5а: Интерфейс дисплея панели управления выводит сообщение на
экран.
14.2.3 Последовательность «Распознать денежные средства»
C0: Интерфейс устройства сканер денежных средств получает и
обрабатывает прерывание;
С1: Интерфейс устройства сканер денежных средств отправляет ЭВМ
сигнал о поступлении денежных средств;
С2: ЭВМ отправляет диспетчеру сообщения о введённой сумме;
С3: Диспетчер передает на монитор панели управления введённую
сумму;
C4: Монитор панели управления передает сообщение на интерфейс
дисплея панели управления.
С4а: Интерфейс дисплея панели управления выводит сообщение на
экран.
14.2.4 Последовательность «Выдать сдачу»
D0:
Зависящий
от состояния объект «Управление автоматом»
отправляет сообщение о выдаче денежных средств ЭВМ;
D1: ЭВМ отправляет сигнал на выдачу денежных средств на интерфейс
устройства хранения и выдачи денежных средств;
D2: Интерфейс объекта устройство хранения и выдачи денежных
средств отправляет ответ ЭВМ.
14.2.5 Последовательность «Приготовить выпечку к выдаче»
E0: Интерфейс устройства ввода панели управления получает и
обрабатывает прерывание;
E1: Интерфейс устройства ввода панели управления передает сообщение
о выбранной выпечке диспетчеру;
E2: Монитор панели управления передает сообщение диспетчеру;
E3: Диспетчер обновляет объект план работ;
E4: Диспетчер обновляет состояние объекта Управление автоматом;
Е5: Управление автоматом читает план работ;
Е6: Объект управление автоматом посылает управляющее сообщение
контроллеру ЭВМ;
E7: ЭВМ отправляет запрос интерфейсу устройства автомат на
приготовление выпечки к выдаче;
E8: ЭВМ передает текущее состояние объекта выпечка Диспетчеру;
Е9: Диспетчер передает сообщение на монитор панели управления;
Е10: Монитор панели управления отправляет сообщение на интерфейс
дисплея панели управления;
E10а: Интерфейс дисплея панели управления выводит сообщение на
экран.
Рисунок 31 – Диаграмма последовательности
14.3 Назначение приоритетов
Параметры задач в нераспределенной системе управления автоматом
приведены в таблице ниже. Время ЦП для каждой задачи включает затраты на
контекстное переключение. Затраты на обработку сообщений поровну
разделены между задачей-отправителем и задачей-получателем. Периоды всех
задач, участвующих в данной последовательности обработки событий,
одинаковы: они определяются поступлением внешнего события, послужившего началом последовательности. Некоторые задачи рассматриваются так,
словно представляют собой разные задачи, поскольку они встречаются в
разных последовательностях.
Заметим также, что периоды асинхронных задач интерфейса устройств
(все они управляются прерываниями) кратны друг другу, то есть эти задачи
могут быть готовы к активизации практически одновременно. Поскольку
прерывания нужно обрабатывать максимально быстро, данным задачам
следует назначить наивысшие приоритеты. Но тогда будет нарушено правило
частотной монотонности.
Задачи, управляемые прерываниями, исполняются с более высоким
приоритетом, чем остальные задачи в данной последовательности. Из-за этого
всю совокупность задач нельзя привести к одной эквивалентной задаче с тем
же периодом, но потребляющей большее время ЦП. Придется проектировать
их как разные задачи с одинаковым периодом.
Таблица 1 – Параметры задач
Задача
Приоритет
Время
Период, T
работы, C
Коэффициент
использования
ЦП, U
Последовательность «Запуск автомата»
Интерфейс устройства
1
4
200
0,02
2
4
200
0,02
3
2
200
0,01
Диспетчер(1.1)
4
2
200
0,01
Диспетчер(1.2)
5
2
200
0,01
ввода панели управления
Интерфейс устройства
ввода панели управления
Монитор панели
управления
Управление автоматом
6
4
200
0,02
Контроллер ЭВМ (1.1)
7
2
200
0,01
Интерфейс устройства
8
6
200
0,03
Контроллер ЭВМ (1.2)
9
2
200
0,01
Интерфейс устройства
10
6
200
0,03
Контроллер ЭВМ (1.3)
11
2
200
0,01
Интерфейс устройства
12
10
200
0,05
-
46
200
0,23
сканера денежных
средств
хранения денежных
средств
автомат
Общее
Последовательность «Распознать денежные средства»
Интерфейс сканера
13
6
100
0,06
14
6
100
0,06
ЭВМ
15
2
100
0,02
Диспетчер
16
2
100
0,02
Монитор панели
17
2
100
0,02
18
4
-
22
денежных средств
Интерфейс сканера
денежных средств
управления
Интерфейс дисплея
0,04
панели управления
Общее
100
0,22
Последовательность «Выдать сдачу»
Управление автоматом
19
4
100
0.02
ЭВМ
20
2
100
0,02
Интерфейс устройства
21
6
100
0,06
-
12
100
0,10
хранения и выдачи
денежных средств
Общее
Последовательность «Приготовить выпечку к выдаче»
Интерфейс устройства
22
4
200
0,02
23
4
200
0,02
24
2
200
0,01
Диспетчер(4.1)
25
2
200
0,01
Диспетчер(4.2)
26
2
200
0,01
Управление
27
4
200
0,02
28
4
200
0,02
ЭВМ(4.1)
29
2
200
0,01
ЭВМ(4.2)
30
2
200
0,01
Диспетчер(4.3)
31
2
200
0,01
Монитор панели
32
2
200
0,01
33
4
200
0,02
-
34
200
0,2
ввода панели управления
Интерфейс устройства
ввода панели управления
Монитор панели
управления(4.1)
автоматом(4.1)
Управление
автоматом(4.2)
управления(4.2)
Интерфейс дисплея
панели управления
Общее
Последовательность «Остановка системы»
Интерфейс устройства
автомат
34
10
200
0,05
Интерфейс устройства
35
10
200
0,05
ЭВМ(5.1)
36
2
200
0,01
Диспетчер(5.1)
37
2
200
0,01
Диспетчер(5.2)
38
2
200
0,01
Монитор панели
39
2
200
0,01
40
4
200
0,02
-
32
200
0,15
автомат
управления
Интерфейс дисплея
панели управления
Общее
14.4 Планирование в реальном времени для нераспределённой
архитектуры
Анализ выполняется для каждой последовательности, так как критично
время, требующееся для завершения именно последовательности, а не каждой
задачи в отдельности. Нужно принять во внимание вытеснение задачами с
более высоким приоритетом, а также блокировку низкоприоритетными
задачами.
Вытеснение иногда возникает из-за задач в других последовательностях
событий, имеющих более короткий период и более высокий приоритет. Они
способны вытеснять любую задачу несколько раз. Причиной вытеснения
бывают также более приоритетные задачи с большими периодами, например,
высокоприоритетные
задачи,
управляемые
прерываниями,
которые
принадлежат последовательностям событий с длинными периодами. Но
такого рода вытеснения не могут происходить более одного раза. Затраты
времени
на
блокировку
связаны
с
низкоприоритетными
захватившими ресурс, который нужен высокоприоритетной задаче.
задачами,
14.5 Последовательность «Запуск автомата»
Задачи входящие в последовательность: «Интерфейс ввода панели
управления»,
«Монитор
панели
управления»,
«Диспетчер»,
«ЭВМ»,
«Интерфейс сканера денежных средств», «Интерфейс устройства хранения и
выдачи денежных средств», «Интерфейс устройства автомат».

Время выполнения данной задачи: суммарное время выполнения
всех задач данной последовательности равно 𝐶𝑐 = 46 мс, коэффициент
использования ЦП: 𝑈𝑐 =

𝐶𝑐
𝑇𝐶
= 0,23.
Время вытеснения более приоритетными задачами с меньшими
периодами. Задачи данной последовательности могут по два раза вытесняться
задачами последовательности «Распознать денежные средства» и «выдать
сдачу», имеющие время выполнения 22 и 12 мс соответственно. Таким
образом, время вытеснения равно 𝐶𝑃𝐴 = 2 ∗ (22 + 12) = 68 мс, а коэффициент
использования ЦП 𝑈𝑃𝐶 =

𝐶𝑃𝐶
𝑇𝐶
= 0,34.
Время вытеснения более приоритетными задачами с меньшими
периодами. Данная последовательность имеет наименьший период, поэтому
таких вытеснений нет.
Сложив все вычисленные значения, получаем, что суммарное
затраченное время равно 𝐶 = 𝐶𝐶 + 𝐶𝑃𝐶 + 𝐶𝐵𝐶 = 46 + 68 + 0 = 112 мс, а
коэффициент использования равен 𝑈 = 𝑈𝐶 + 𝑈𝑃𝐶 + 𝑈𝐵𝐶 = 0,23 + 0,34 + 0 =
0,57.
Согласно обобщенной теореме о верхней границе коэффициента
использования и обобщенной теореме о времени завершения, задачи в
последовательности событий «Запуск системы» всегда укладываются в срок.
14.6 Последовательность «Распознать денежные средства»
Задачи, входящие в последовательность: «Монитор панели управления»,
«Диспетчер», «ЭВМ», «Интерфейс сканера денежных средств». Время
выполнения данной задачи: суммарное время выполнения всех задач данной
последовательности равно 𝐶𝐷 = 22 мс, коэффициент использования ЦП: 𝑈𝐷 =
𝐶𝐷
𝑇𝐷
= 0,22.

Время блокировки задачами с более низким приоритетом. Задача
Диспетчер (хранилище План работы) может занимать критическую секцию на
10мс, при этом задача распознать денежные средства будет блокирована.
Следовательно, время блокирования равно 𝐶𝐵𝐷 = 10 мс, а коэффициент
использования 𝑈𝐵𝐷 =

𝐵𝐷
𝑇𝐷
= 0,10.
Время вытеснения более приоритетными задачами с меньшими
периодами. Данная последовательность имеет наименьший период, поэтому
таких вытеснений нет.
Сложив все вычисленные значения, получаем, что суммарное
затраченное время равно 𝐶 = 𝐶𝐷 + 𝐶𝑃𝐷 + 𝐶𝐵𝐷 = 22 + 0 + 10 = 32 мс, а
коэффициент использования равен 𝑈 = 𝑈𝐷 + 𝑈𝑃𝐷 + 𝑈𝐵𝐷 = 0,22 + 0 + 0,10 =
0,32.
Согласно обобщенной теореме о верхней границе коэффициента
использования и обобщенной теореме о времени завершения, задачи в
последовательности событий «Запуск системы» всегда укладываются в срок.
14.7 Последовательность «Выдать сдачу»
Задачи,
входящие
в
последовательность:
«ЭВМ»,
«Интерфейс
устройства хранения и выдачи денежных средств». Время выполнения данной
задачи: суммарное время выполнения всех задач данной последовательности
равно 𝐶𝐸 == 8 мс, коэффициент использования ЦП: 𝑈𝐸 =

𝐶𝐸
𝑇𝐸
= 0,12.
Время блокировки задачами с более низким приоритетом. Задача
Диспетчер (хранилище План работы) может занимать критическую секцию на
10мс, при этом задача распознать денежные средства будет блокирована.
Следовательно, время блокирования равно 𝐶𝐵𝐸 = 10 мс, а коэффициент
использования 𝑈𝐵𝐸 =
𝐵𝐸
𝑇𝐸
= 0,10.

Время вытеснения более приоритетными задачами с меньшими
периодами. Данная последовательность имеет наименьший период, поэтому
таких вытеснений нет.
Сложив все вычисленные значения, получаем, что суммарное
затраченное время равно 𝐶 = 𝐶𝐸 + 𝐶𝑃𝐸 + 𝐶𝐵𝐸 = 12 + 0 + 10 = 22 мс, а
коэффициент использования равен 𝑈 = 𝑈𝐸 + 𝑈𝑃𝐸 + 𝑈𝐵𝐸 = 0,12 + 0 + 0,10 =
0,22.
Согласно обобщенной теореме о верхней границе коэффициента
использования и обобщенной теореме о времени завершения, задачи в
последовательности событий «Запуск системы» всегда укладываются в срок.
14.8 Последовательность «Приготовить выпечку к выдаче»
Задачи, входящие в последовательность: «Интерфейс ввода панели
управления»,
«Интерфейс
«Монитор
сканера
панели
денежных
управления»,
средств»,
«Диспетчер»,
«Управление
«ЭВМ»,
автоматом»,
«Интерфейс устройства хранения и выдачи денежных средств», «Интерфейс
устройства автомат».

Время выполнения данной задачи: суммарное время выполнения
всех задач данной последовательности равно 𝐶𝐹 = 34 мс, коэффициент
использования ЦП: 𝑈𝐹 =

𝐶𝐹
𝑇𝐹
= 17.
Время вытеснения более приоритетными задачами с меньшими
периодами. Задачи данной последовательности могут вытесняться задачами
последовательности «Распознать денежные средства» и «выдать сдачу»,
имеющие время выполнения 22 и 12 мс соответственно. Таким образом, время
вытеснения равно 𝐶𝑃𝐹 = (22 + 12) = 34 мс, а коэффициент использования
ЦП 𝑈𝑃𝐹 =

𝐶𝑃𝐹
𝑇𝐹
= 0,17.
Время вытеснения более приоритетными задачами с меньшими
периодами. Данная последовательность имеет наименьший период, поэтому
таких вытеснений нет.
Сложив все вычисленные значения, получаем, что суммарное
затраченное время равно 𝐶 = 𝐶𝐹 + 𝐶𝑃𝐹 + 𝐶𝐵𝐹 = 34 + 34 + 0 = 68 мс, а
коэффициент использования равен 𝑈 = 𝑈𝐹 + 𝑈𝑃𝐹 + 𝑈𝐵𝐹 = 0,17 + 0,17 + 0 =
0,34.
Согласно обобщенной теореме о верхней границе коэффициента
использования и обобщенной теореме о времени завершения, задачи в
последовательности событий «Запуск системы» всегда укладываются в срок.
14.9 Последовательность «Остановка системы»
Задачи, входящие в последовательность: «Монитор панели управления»,
«Диспетчер», «ЭВМ», «Управление автоматом».

Время выполнения данной задачи: суммарное время выполнения
всех задач данной последовательности равно 𝐶𝐻 = 32мс, коэффициент
использования ЦП: 𝑈𝐻 =

𝐶𝐻
𝑇𝐻
= 0,16.
Время вытеснения более приоритетными задачами с меньшими
периодами. Задачи данной последовательности не могут вытесняться
задачами других последовательностей, так как при остановке системы другие
последовательности блокируются.

Время вытеснения более приоритетными задачами с меньшими
периодами. Данная последовательность имеет наименьший период, поэтому
таких вытеснений нет.
Сложив все вычисленные значения, получаем, что суммарное
затраченное время равно 𝐶 = 𝐶𝐻 + 𝐶𝑃𝐻 + 𝐶𝐵𝐻 = 32 + 0 + 0 = 32 мс, а
коэффициент использования равен 𝑈 = 𝑈𝐹 + 𝑈𝑃𝐹 + 𝑈𝐵𝐹 = 0,16 + 0 + 0 =
0,16.
Согласно обобщенной теореме о верхней границе коэффициента
использования и обобщенной теореме о времени завершения, задачи в
последовательности событий «Запуск системы» всегда укладываются в срок.
Рисунок 32 – Диаграмма последовательности с временными отметками
Download