|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Выделение задач в подсистеме ВентиляцииРассмотрим архитектуру задач Подсистемы Вентиляции для нераспределенного случая. На диаграмме кооперации Выбор Необходимой температуры (см. рис.5) нужно обратить внимание на объект интерфейса устройства, который получает входную информацию от актера, и затем проследить цепочку взаимодействий. Объект Интерфейс Пульта ДУ выделяется в самостоятельную задачу Интерфейс Пультов ДУ с помощью критерия асинхронного интерфейса устройства ввода. Применив инверсию задач, мы проектируем одну задачу, которая будет отвечать за все пульты, вместо того чтобы иметь по одной задаче на каждую вентиляцию. Задача Интерфейс Пультов ДУ активизируется прерыванием, возникающим при нажатии любой кнопки. Затем она считывает входную информацию от кнопки и посылает запрос Координатору Вентиляции, а сама тем временем готовится к приходу следующего прерывания. Координатору Вентиляции, который является объектом-координатором, получает сообщения от Интерфейс Пультов ДУ в данном прецеденте и от Планировщика в прецеденте Забор воздуха с улицы (см. рис.6). Он выделяется в координирующую задачу, активизируемую приходом сообщения Запрос Планировщика или Запрос Вентиляции. Состояние и План Движения Вентиляции - это пассивный объект абстрагирования данных, у которого нет своего потока управления. Разберем диаграмму состояний Управление Вентиляцией на рис.7. Здесь есть зависящий от состояния управляющий объект, который исполняет диаграмму состояний. На этапе анализа все аспекты физического объекта «вентиляция», связанные с управлением, были отображены на управляющий объект Управление Вентиляция (см. рис.7 и 9). Если имеется несколько вентиляции, то управляются они зависимо друг от друга при помощи одного пульта ДУ. В ходе разбиения на задачи каждый объект Управление Вентиляцией отображается на отдельную задачу Контроллер Вентиляции. Любая задача исполняет диаграмму состояний для своей Вентиляции, как показано на рис.7. Задача Контроллер Вентиляции взаимодействует с несколькими объектами интерфейса устройств вывода, которые работают непосредственно с внешней средой, в частности с датчиками, нагревательными и охлаждающими воздух устройствами. Все эти устройства пассивны (то есть не генерируют прерываний), следовательно, асинхронные задачи не нужны. Каждый запрос на вывод информации выполняется по требованию, поэтому не нужны и периодические задачи. Кроме того, вызывающая задача обязана дожидаться завершения вывода, поэтому нет необходимости и в пассивной задаче вывода. Таким образом, объект вывода на устройство не стоит выделять в самостоятельную задачу, он объединяется с задачей Контроллер Вентиляции в соответствии с критерием группировки задач. Например, если Контроллер Вентиляции инициирует действие Нагревание воздуха, он ждет ответа Система в пассивном состоянии, поскольку Вентиляция не может начать и нагревать и охлаждать одновременно. Рассмотрим выполнение задачи Контроллер Вентиляции подробнее. Она получает сообщение Достигнута температура, находясь в Активном состоянии (см. рис.8). Затем Контроллер Вентилции посылает сообщение объекту Состояние и Планирование Вентиляции, требуя Проверить Достигнута необходимая температура. Состояние изменяется только в том случае, если в соответствии с планом Вентиляция должна остановиться (прекратить работу) по достижении данной температуры. При этом объект Состояние и Планирование Вентиляции отправляет сообщение Температура достигнута, которое переводит Контроллер Вентиляции в Пассивное состояние и инициирует действие Стоп. Объекту Интерфейс Системы нагревания\охлаждения передается сообщение Стоп (см. рис.7). Контроллер Вентиляции выходит из этого состояния только при получении данных о текущей температуре от Интерфейса Датчиков и отличии этой температуры от заданной. Таким образом, Контроллер Вентиляции и Интерфейс Системы нагревания\охлаждения неспособны работать одновременно. Следовательно, на основе критерия группировки задач допустимо объединить объекты Интерфейс Системы нагревания\охлаждения и Интерфейс Датчиков с задачей Контроллер Вентиляции. Диспетчер Вентиляции (всего один экземпляр в нераспределенном решении) реализуется асинхронно по отношению к задаче Контроллер Вентиляции, так как запрос к Вентиляции может прийти в любой момент. Поэтому Диспетчер Вентиляции вычленяется в отдельную задачу-координатор, которая активизируется асинхронно по событию Запрос Температуры или Запрос Планировщика и обычно исполняется независимо от задачи Контроллер Вентиляции. Итак, в нераспределенной системе управления Вентиляциями Подсистема Вентиляции разбивается на четыре задачи: Интерфейс Пультов ДУ, Интерфейс Датчиков, Диспетчер и Контроллер Вентиляции. Имеется по одному экземпляру первых трех задач и столько экземпляров четвертой задачи, сколько есть Вентиляции. Все экземпляры задачи Контроллер Вентиляции идентичны и исполняют собственную копию диаграммы состояний Управление Вентиляции. Предварительная архитектура задач изображена на начальной диаграмме параллельной кооперации (рис.15). 9.2. Выделение задач в подсистеме датчиков Перейдем к архитектуре задач в Подсистеме Датчики, изображенной на рис.13. В подсистеме работает только 2 задачи – Задача Измерения текущей температуры и Задача измерения загрязненности воздуха. Обе используют реальные физические объекты Датчик Температуры и Датчик Загрязненности. Эти устройства могут работать синхронно. Поэтому целесообразно объединить описанные задачи в одну – Задача измерения температуры и загрязненности. 9.3. Выделение задач в подсистеме планировщика В случае нераспределенного решения Планировщик — это подсистема, которая состоит из одного объекта-координатора, выделенного в задачу. Задача Планировщик активизируется по запросу, в частности после получения Запроса Температуры, и выбирает действие, наиболее подходящее для его удовлетворения. Таким образом происходит выбор нагревать или охлаждать воздух. Поскольку речь идет о нераспределенном решении, очевидно, что Планировщик может напрямую читать Состояние и Планирование Вентиляции. Следовательно, различные экземпляры задачи Контроллер Вентиляции не обязаны посылать Планировщику сообщения. Архитектура задач для нераспределенного случая представлена на рис.15. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |