№62006
А.А. Шевченко
Концепции моделирования: технологии и решения
Построение информационных систем требует выбора концепции анализа и проектирования, сам же выбор — является базовым этапом указанного процесса. В статье рассматриваются основные концепции: объектно-ориентированная, процедурнофункциональная, логико-ориентированная, а также их синтез в рамках решения прикладных задач. Рассмотрены технологии построения как объектных, так и агентных моделей предметной области. Оценка возможностей подходов и их сравнение проводится на практических примерах.
Основные положения
Основополагающим этапом проектирования любой информационной системы является выполнение корректной оценки предметной области решаемой задачи и выбор концепции анализа и проектирования. Фактически речь идет об определении одной из концепций системного анализа, которая будет применяться при моделировании системы. Значимость указанного процесса заключается в изначальном естественном введении ограничений на получаемые результаты — адекватность модели реальной системе, точность получаемых результатов, возможности «расширения» существующей модели и переноса ее шаблона на новые объекты (моделируемые системы) и т.д. Появление ограничений обусловлено, естественным образом, идеологическими возможностями той или иной концепции.
Неудачный выбор концепции (именно «неудачный», о «неправильном» выборе речь даже не идет) способен повлечь максимальные «издержки» на всех последующих этапах разработки информационной системы.
Для предотвращения неточностей трактовок в данной статье, дадим определения используемых в дальнейшем терминов.
Информационная система — модель системы реального мира, реализованная посредством аппаратных и программных средств.
Предметная область — область деятельности в реальном мире, которая содержит элементы системы, процессы их взаимодействия между собой, информационные потоки, различные функциональные подсистемы, а также внешние по отношению к исследуемой системе процессы, события и явления.
Концепция анализа и проектирования — метод построения модели предметной области при создании информационной системы. Заключается в моделировании объектов, процессов, взаимодействий и т. д. в целях решения некоторой задачи.
Реальная цель — цель, которая является основной при функционировании реальной системы («de facto»).
Заявленная цель — официально декларируемая цель («de juro»). Заявленная цель может отличаться от реальной.
Задача (проблема) — цель или их набор, которых требуется достичь.
Логика — набор правил и алгоритмов, определяющих поведение или функционирование систем или их отдельных элементов.
Процесс — последовательность действий (операций), приводящая к получению некоторого результата.
Агент — автономная система (элемент системы), взаимодействующая с окружающей средой посредством набора датчиков и средств воздействия. Датчики позволяют агенту собирать информацию об окружающем его мире, а средства воздействия —
Ивб 2006
изменять окружающую среду. (Подробнее агенты и их поведение будут рассмотрены ниже.)
Следует отметить, что концепции программирования являются частными случаями концепций анализа и проектирования, их главное предназначение — получение программной реализации моделей систем, объектов, процессов и логики.
В качестве основного примера, на котором будет проходить рассмотрение возможностей различных концепций анализа и проектирования, а также основанных на них технологий моделирования, выберем задачу организации движения на пересечении двух автомобильных дорог.
Рассмотрим пример, описание его предметной области и постановку задачи.
Цель — организация безопасного движения на пересечении двух дорог с одновременным обеспечением максимальной пропускной способности.
Предметная область — локальное управление транспортными потоками, движение автомобилей на перекрестке.
Рассмотрим задачи, являющиеся основными для указанного примера:
1) создать эффективную модель информационных потоков;
2) определить механизмы управления объектами (агентами);
3) определить факторы управления системой и его инструменты;
4) установить факторы, влияющие на поведение модели;
5) создать динамическую имитацию процесса;
6) создать подсистему визуализации;
7)на основе анализа работы модели создать систему оптимального управления системой.
Дадим определения используемых ниже терминов.
Дорога — особая территория для движения автомобилей, пешеходов и соблюдения Правил дорожного движения (ПДД).
Полоса движения — часть дороги, предназначенная для движения автомобилей в одном ряду.
Дорожная разметка (разметка) — особые обозначения, нанесенные на поверхность дороги и предназначенные для организации движения.
Пешеходный переход — элемент дорожной разметки, обозначающий территорию пешеходного перехода.
Дорожный знак — графическое или текстовое обозначение, предназначенное для явного указания правил движения.
Регулировщик — специально подготовленный специалист, жесты или действия которого служат указанием участникам дорожного движения.
Светофор — техническая конструкция, позволяющая управлять движением посредством цветовых и символьных обозначений.
Перекресток — пересечение двух и более дорог.
Сопряжение — место слияния двух и более дорог.
Развязка — несколько сопряжений дорог, позволяющих автомобилям изменить направление движения.
Выполним первый этап анализа предметной области, рассмотрев основные возможные решения задачи. Для этого необходимо проанализировать варианты технических решений и их конструктивные ограничения. Схема конструктивных элементов представлена на рис. 1.
Так, можно отметить, что в рамках рассматриваемой предметной области существуют два варианта организации пересечения дорог — одно- и многоуровневое. В дальнейшем схемы анализа будут привязаны к осуществленному выбору. При этом, для одноуровневого варианта существуют регулируемый и нерегулируемый способы организации движения. Возможные варианты пересечения дорог на одном уровне представлены на рис. 2.
Для многоуровневых дорожных развязок допустимо высокоскоростное и низкоско-
А.А. Шевченко
Концепции моделирования: технологии и решения
Ив62006
Рис. 1. Схема видов сопряжения и систем управления движением на пересечениях дорог
а) Х-образный перекресток
а) высокоскоростное
Рис. 3. Сопряжение дорог
с дополнительными съездами
Рис. 2. Варианты пересечения дорог на одном уровне
ростное сопряжение (рис. 3). Высокоскоростное сопряжение требует организации сопряжения дорог с малым углом «слияния», большого радиуса поворота и дополнительной полосы движения. Сам термин «высокоскоростное сопряжение» возникает по причине обеспечения движения автомобилей практически без снижения скорости.
Наибольший интерес представляет рассмотрение одноуровневых пересечений, так как в случае с многоуровневыми проблема сводится к задаче системы массового обслуживания (пример многоуровневой развязки приведен на рис. 4). Единственный аспект применения подобной модели будет рассмотрен в данной статье отдельно. Он связан с точностью реализации модели, поэтому возникает вопрос об адекватности модели реальной системе.
б) низкоскоростное
Нвб 2006
При рассмотрении возможных вариантов решения поставленной задачи, способы управления транспортными потоками рассматриваются отдельно. Это позволяет выделить для регулируемых одноуровневых развязок следующие способы: ручной и автоматизированный. Ручной — может быть реализован регулировщиком или путем ручного управления светофорами. Автоматизи-
рованный способ позволяет использовать «простую» автоматику (программа управления определяется изначально) или на основе анализа данных о текущем (и не только) состоянии системы.
Рассмотрим простейший вариант регулируемого пересечения дорог на одном уровне — Х-образный перекресток (рис. 5).
В качестве основных элементов системы выделим:
• дороги — проезжая часть, состоящая из одной или нескольких полос движения;
• пересечение дорог — «центр» перекрестка;
• дорожная разметка — линии, обозначающие полосы движения, и стоп-линии;
• светофор — устройство управления движением транспортных потоков.
В минималистической конфигурации задачи на перекрестке движутся только авто-
Линия
дорожной
разметки
Светофор
Рис. 5. Схема расположения объектов на перекрестке
А.А. Шевченко
Концепции моделирования: технологии и решения
И962006
Таблица 1
Состояния объекта «светофор» и правила движения
Сигнал светофора Значения сигнала Комментарий
Красный Остановка Транспорт останавливается перед стоп-линией, стоящий транспорт продолжает стоять, пешеходы остаются за пределами дороги или на разделительной линии
Желтый Предупреждение Через некоторое врямя произойдет изменение сигнала светофора
Зеленый Движение Транспорт или пешеходы имеют возможность движения в необходимом им направлении
мобили, и для описания движения автомобиля используется дискретная модель, т. е. автомобиль либо движется, либо стоит, скорость определяется в виде фиксированного значения.
Здесь необходимо упомянуть о важности определения уровня абстракции при решении задачи. Вопрос выбора степени детализации описания объектов и процессов системы требует отдельного рассмотрения, но в рамках приведенного примера можно ограничится лишь упоминанием о самом факте проблемы.
Выбор уровня абстракции определяет точность моделирования объектов, что в свою очередь является критическим при определении точности получаемых результатов. При этом эксперт, анализирующий задачу, встает перед дилеммой: «неточное описание ^ низкая стоимость проекта ^ быстрая разработка ^ простая реализация ^ низкая точность работы системы» или «детализированное описание ^ высокая стоимость проектирования ^ длительная разработка ^ проблема интеграции элементов ИС и ее тестирования ^ сложная реализация ^ высокая точность работы системы».
Светофоры, управляющие движением автомобилей позволяют выбрать один из трех видов сигналов: красный, желтый или зеленый. Правила движения для указанной схемы приведены в табл. 1.
Опишем процесс работы светофора. Каждый сигнал включается на некоторый интервал времени, при этом важен поря-
док следования сигналов и соответственно их продолжительность. В общем случае схема процесса выглядит следующим образом:
• красный сигнал горит Тг секунд,
• желтый сигнал между красным и зеленым — Ту1 секунд,
• зеленый сигнал — Тд секунд,
• желтый сигнал между зеленым и красным — Ту2 секунд.
В графической форме данная схема представлена на рис. 6.
________________Повтор цикла____________
Красный Желтый Зеленый Желтый
Г, Г* Т •в т*
Рис. 6. Схема работы светофора
Последовательность переключений сигналов светофора и их продолжительность называется циклом.
Для дальнейшей детализации модели необходимо определить параметры объекта «автомобиль»:
• тип транспортного средства (легковой автомобиль, грузовой, автобус и т. д.);
• состояние (движется, стоит);
• направление движения на перекрестке, или маршрут.
Нвб 2006
Первый параметр позволяет идентифицировать тип транспортного средства и для каждой группы задать индивидуальные характеристики.
Направление движения позволяет определить куда должен двигаться объект при достижении перекрестка.
Маршрут содержит набор направлений движения для каждого перекрестка при перемещении из точки старта в пункт назначения. За формирование маршрута отвечает человек или отдельный аналитический модуль, задачей которого является построение траектории движения и ее декодирование до состояния «направление движение — расстояние». При этом указанный процесс может происходить по критериям: минимальные затраты, минимальная длина маршрута, максимальная скорость передвижения.
Определив состав элементов системы «дорога — движущиеся объекты — управляющие структуры» и их параметры, следует приступить к рассмотрению возможностей модели.
Данная модель будет обладать следующими недостатками:
1) управлять скоростью движения автомобилей невозможно;
2) при Ту1 = Ту2 = 0 не обеспечивается безопасность движения (автомобиль, проехавший на зеленый сигнал до момента включения красного, может столкнуться с автомобилем, начавшим движение с другого направления при включении зеленого).
Завершив определение основных элементов, процессов и свойств системы, переходим к рассмотрению возможных решений при использовании различных концепций анализа и проектирования.
Рассмотрим объектно-ориентированную, процедурно-функциональную, логико-ориентированную концепции и использование агентных имитационных моделей для решения одной и той же задачи.
Концепции анализа и проектирования
Большинство авторов1 выделяют следующие концепции (табл. 2).
В силу ряда обстоятельств (развитие технологий баз данных и объектно-ориентированных языков программирования высокого уровня, взаимопроникновение и интеграция современных CASE-технологий и т.д.) большинство современных сред проектирования и моделирования в значительной степени объединяют логико-ориентированную и ориентированную на правила концепции. За счет этого становится возможным рассмотрение подобной «интегрированной концепции» как единой методологии.
Наиболее важным аспектом любой концепции является абстрагирование — выделение наиболее существенных характеристик некоторой системы или ее элемента, отличающих исследуемый объект от всех других типов объектов и определяющих его концептуальные границы с точки зрения аналитика (проектировщика). Данное опре-
Таблица2
Концепции анализа и проектирования, присущие им виды абстракций
Концепция Абстракция
Процедурно-ориентрованная Алгоритмы,процессы
Объектно-ориентированная Классы,объекты
Логико-ориентированная Цели, зачастую выраженные в терминах исчисления предикатов
Ориентированная на правила Правила «если ... , то ...»
Ориентированная на ограничения Инвариантные соотношения
1 Одним из первых данную классификацию ввел Гради Буч в работе «Объектно-ориентированный анализ и проектирование с примерами приложений на С++».
А.А. Шевченко
Концепции моделирования: технологии и решения
И962006
деление является уточнением термина «абстракция», приведенного Г. Бучем. Уточнение этой трактовки необходимо в силу специфики данной статьи.
Объектно-ориентированная концепция решения задачи
При использовании объектно-ориентированной концепции для решения задачи, описанной в рассматриваемом примере, потребуется выделить объекты и определить их параметры, методы, а также события системы.
Дополнительно при построении рабочей модели необходимо будет определить ряд новых свойств объектов. Их полный перечень приведен в табл. 3.
Основные объекты (дорога, разметка, светофор, транспортное средство) были выделены выше при описании Х-образного пере-
Объекты
крестка. Там же были приведены их свойства. Определим методы объектов (табл. 4).
Описав объекты и их свойства, приведем схему работы программной реализации полученной модели (рис. 7).
На основании приведенной схемы можно сделать вывод, что предыдущее описание объектов и их свойств, выполненное в соответствии с объектной концепцией, обладает следующими недостатками:
• управление тремя потоками затруднено из-за сложности синхронизации, вызванной независимостью потоков;
• отсутствует контроль коллизий.
Для выполнения контроля коллизий и решения проблемы синхронизации разработчик вынужден использовать единую базу данных состояний объектов, активных сообще-
Таблица 3
и их свойства
Объект Свойство Комментарий
Дорога Тип поверхности Тип участка Тип полосы Координаты (начало:конец) Асфальт, гравий и т.д. Определяет прямой участок дороги, скругление и т.д. Предназначена для движения (всех видов транспорта, только для автобусов, трамваев и пр.), стоянки и т.д. Начало и окончание данного участка дороги
Разметка Назначение Тип линии Координаты (начало:конец) Дорожный знак, пешеходный переход, линия разметки Сплошная, прерывистая и т.д. Начало и окончание данного фрагмента разметки
Светофор Состояние Режим управления Рабочий цикл Включен/выключен Ручной/автоматический Последовательность включения сигналов и их продолжительность
Транспортное средство Тип Состояние Направление движения (маршрут) Скорость Координаты (в терминах системы координат) Тип транспортного средства: легковой, грузовой, автобус и т.д. Движется/стоит Производит вычисление нового местоположения объекта с учетом его состояния (стоит/движется) и скорости Теоретическая скорость движения транспортного средства Местоположение объекта
Нвб 2006
Таблица 4
Объекты задачи и их методы
Объект Метод Комментарий
Светофор Запустить Включить Изменить режим Запускает таймер, управляющий процессом изменения состояний светофора Производит включение/выключение светофора Переводит светофор из режима автоматического функционирования в ручной
Транспортное средство Остановить Запустить Переместить Выполняет остановку Транспорт начинает движение Производит вычисление нового местоположения объекта с учетом его состояния (стоит/движется) и скорости
ний (указаний или проверок от одного объекта к другому). С ростом числа объектов и усложнением задачи возникает проблема проверки и обработки сообщений в силу дискретности времени системы. То есть на каждом цикле срабатывания таймера потока, необходимо определить наступило или нет новое событие и требуется ли синхронизация данных с другими потоками.
Процедурно-функциональная концепция решения задачи
При выборе данной концепции базой функционирования информационной сис-
темы или программного комплекса будет организация управления математической моделью системы (рис. 7) через обработку ее потоков. Основным видом потоков будут потоки времени системы и автомобилей, а также циклы работы светофоров.
Преимущество этого метода — возможность синхронизации потоков путем передачи необходимых данных в момент их возникновения.
Недостаток же подхода заключается в необходимости создания разработчиком собственных объектов (с определением их свойств и методов) при работе в объектно-ориенти-
Рис. 7. Схема работы программной реализации модели задачи
А.А. Шевченко
Концепции моделирования: технологии и решения
НвВ 2006
рованной среде программирования или использовании специализированного языка описания процессов или программирования, например, UML (Unified Modeling Language) в качестве инструмента моделирования и Microsoft VPL (Visual Programming Language) в качестве среды программирования.
Логико-ориентированная концепция решения задачи
Данная методология позволяет ориентироваться не на абстракции класс/объект или процесс/поток, а на описание правил поведения и логики достижения цели. Вспомним, что не были учтены некоторые значимые параметры, факторы и процессы системы и отдельных ее элементов, поэтому рассмотрим ситуацию с более сложной задачей.
Таким образом, возникают дополнительные требования к модели и ее новые свойства.
1. Интенсивность потоков в различных направлениях может быть различна.
2. Интенсивность потоков в различных направлениях может быть различна в разное время суток — присутствует суточная сезонность.
3. Автомобили обладают индивидуальными характеристиками: максимальная скорость, максимальное ускорение, ускорение торможения, масса, износ тормозов, износ двигателя и т. д.
4. Водители отличаются стилем вождения, скоростью реакции, потенциалом нарушения правил и т.д.
5. На перекрестке могут быть установлены светофоры с дополнительными сигналами (отдельные блоки на направления движения — стрелки, пешеходные светофоры и т. д.), регулирующие знаки и нанесена дорожная разметка.
6. В качестве подсистемы управления может выступать человек или автоматика.
7. Присутствует влияние окружающей среды (сухо, дождь, снег, гололед и т.д.).
8. Возможно интеллектуальное управление работой светофоров на основе ана-
лиза текущей ситуации, прогнозирования ее развития и последующего изменения алгоритма работы элементов управления.
9. Идет накопление статистики о работе системы (движении транспорта, очереди автомобилей, среднем времени ожидания у перекрестка и т.д.) и ее отображение.
Разработчику при создании модели следует ожидать следующих проблем.
1. Контроль коллизий.
2. Контроль коллизий в движении.
3. Учет перестроений автомобилей из ряда в ряд.
4. Управление процессами разгона и торможения.
5. Интеллектуальная настройка подсистемы управления.
6. Сбор статистики о работе системы.
Заметим, что при рассмотрении объектно-ориентированной концепции было указано на проблему масштабируемости задачи. В процедурно-функциональной концепции проблему будет представлять синхронизация данных между большим число независимых потоков управления, однако критическая ситуация наступит существенно позже, чем в объектной реализации. В логико-ориентированной концепции главной задачей будет создание автономных агентов (схема модели агента, используемого в рабочей задаче, представлена на рис. 8), а также общей очереди сообщений и базы данных, что позволит избежать проблем, указанных для прочих концепций. Выбор логико-ориентированного подхода при проектировании обладает следующими преимуществами:
• расширение модели достигается путем создания нового экземпляра некоторого агента модели;
• повышение производительности расчетов достигается путем разделения данных и задач модели на несколько систем
Нвб 2006
Рис. 8. Схема взаимодействия агента с внешней средой и выполняемая им обработка
обработки (компьютеров), т. е. организация кластерной схемы вычислений не представляет проблемы;
• возможно изменение схемы задачи, т. е. вместо управления движением на Х-об-разном перекрестке возможна реализация задачи анализа функционирования многоуровневой развязки, без изменения модели и ее элементов.
Агентные имитационные модели при решении задачи
Приведенные выше описания расширенных требований и условий предметной области свидетельствуют о необходимости реализации иной, отличной от рассмотренных, схемы реализации процесса решения задачи.
Основными проблемами в данной задаче являются:
• выделение автономных объектов и определение их свойств, событий, методов и правил поведения;
• определение автономных (внутренняя информация агента) и разделяемых (общие данные, с помощью которых реализован обмен) данных;
• создание эффективной системы хранения данных, сообщений и выдачи их по запросу (информационное хранилище);
• управление интерфейсом взаимодействия агентов с внешним миром и схемы принятия ими решений.
Рассмотрим последний фактор подробнее. Универсальная схема работы агента с точки зрения анализа данных представлена на рис. 9. Так, агент получает информацию с помощью датчиков (измерительных устройств), выполняет некоторую процедуру их обработки или анализа, а затем осуществляет передачу принятых решений в системы вывода или реализует воздействие на окружающую среду с помощью устройства управления.
Однако в приведенном примере присутствует аспект динамики системы, который связан с изменением окружающей среды и ее свойств посредством воздействия на нее различных процессов и взаимодействия агентов между собой. Таким образом, по схеме принятия решений и реакции на поступающие данные об изменениях среды можно выделить следующие типы агентов:
1) агент с отсутствием памяти данных (рис. 10);
2) агент с памятью последних поступивших данных (рис. 11);
Рис. 9. Универсальная схема подсистемы управления задачей
А.А. Шевченко
Концепции моделирования: технологии и решения
И962006
Рис. 10. Агент с отсутствием памяти данных
Рис. 11. Агент с памятью последних поступивших данных
3) агент, построенный на основе вариантов 1 или 2 с добавлением статистического модуля (рис. 12);
4) агент, построенный в соответствии с вариантом 3 и применением базы знаний и правил поведения (рис. 13).
Агент без памяти получает данные от датчиков, незамедлительно выполняет их
обработку и ожидает следующего пакета. Подобная схема обработки эффективна, если возможно использование одной четко определенной схемы принятия решений на основе единичного пакета данных.
Применение памяти позволяет агенту не только обрабатывать пакет данных, но и производить оценку динамики изменений состояния среды.
Система анализа поступающих данных
Полученные данные
Статистика
Используемые данные
Поступающие данные
/
/
Время
Прошлое Настоящее Будущее
Рис. 12. Агент с использованием системы формирования статистических показателей
ПРИКЛАДНАЯ ИНФОРМАТИКА ____ —
*— Неб 2006
База знаний
База данных (статистика)
Принятие решений
Система анализа поступающих данных
Полученные данные
Используемые данные
Поступающие данные
/
/
Время
Прошлое Настоящее Будущее
Рис. 13. Агент с применением базы знаний и подсистемы принятия решений
Применение системы формирования статистических показателей позволяет осуществлять принятие решений на основе сбора долгосрочной статистики о функционировании среды. Фактически, использование статистически формируемых показателей наделяет агента так называемым протоопытом, т.е. зачатками системы интеллектуальной оценки образов событий среды.
Применение базы знаний позволяет сохранять опыт о предыдущих попытках решения агентом некоторой задачи или действий в определенной ситуации. Сам модуль принятия решений, вероятнее всего, будет проектироваться разработчиком с использованием методов искусственного интеллекта, что наделяет каждого автономного интеллектуального агента характеристиками поведения, сходными с поведением биологического организма.
Итоги рассмотрения задачи
Рассмотрение нескольких концепций анализа и проектирования в рамках решения одной и той же задачи позволило выявить
несколько существенных вопросов, возникающих при построении информационных систем. Основные вопросы — создание эффективных масштабируемых моделей предметной области, корректный выбор концепции в соответствии с требованиями, предъявляемыми к системе.
Можно констатировать, что универсальной концепции не существует. Каждая из рассмотренных концепций обладает как положительными, так и отрицательными сторонами по таким критериям, как затраты на проектирование, точность получаемых результатов, адекватность получаемой модели реальной системе и т. д.
Основная задача проектировщика — с самого начала создать такое представление о решаемой задаче и о сущности предметной области, которые в дальнейшем позволят сделать верный выбор методологии анализа и проектирования. Обоснованное и корректное использование концепций и применение соответствующего им инструментария позволяет избежать ошибок на последующих стадиях реализации проектов.
А.А. Шевченко