Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Реактивные системыВыводы Теперь становится понятно, откуда взялись абстракции, используемые при моделировании структуры систем реального времени.
При проектировании сложных СРВ далеко не сразу разделяют программную и аппаратную части. Вначале, как правило, создается единая модель системы. Например, многоуровневые модели сетевых протоколов, которые при разработке телекоммуникационных систем часто используют в качестве исходных моделей, эволюционизирующих в модели архитектуры СРВ, не содержат указаний на то, какая их часть должна быть реализована программно, а какая - аппаратно. Декомпозицию программно-аппаратных систем удобно проводить с помощью модельных абстракций, которые подходят как для ПО, так и для аппаратуры. Композитные компоненты UML незаменимы при разработке структурно сложных СРВ, в частности, сложных телекоммуникационных систем. Однако на практике встречается много структурно простых СРВ. Такие системы могут быть глубоко встроенными в аппаратуру и управлять одной-двумя "железками", имея всего несколько программных компонент и небогатый внешний интерфейс. При этом системы могут быть достаточно сложны - например, реализовывать сложные математические алгоритмы. Однако при разработке таких систем, наверное, "городить огород" с UML-компонентами, портами, соединителями и пр. не стоит… Композитная компонента UML 2.0 является частным случаем структурного классификатора (structured classifier) - конструкции, предназначенной для блочной декомпозиции различных типов. В данном курсе рассматривались еще несколько UML-сущностей, которые, на самом, деле являются структурными классификаторами - это кооперация и класс. Таким образом, и компонента, и кооперация, и класс, а также их роли, могут показываться на диаграммах композитных структур. Роли внутри структурного классификатора соединяются соединителями, но вот порты используются только для компонент. Структурные классификаторы, соответствующие ролям, сами, в свою очередь, могут раскрываться через другие роли и так далее… Авторы UML привнесли в версию стандарта 2.0 блочную декомпозицию из ROOM, обобщив ее на другие виды структурных конструкций. На мой взгляд, это сильно ослабило выразительную силу механизма блочной декомпозиции для компонент, а также сильно запутало его для изучения: разобраться, что такое роль и структурный классификатор - непросто…
Выше были рассмотрены средства моделирования UML 2.0 структуры СРВ. Теперь перейдем к моделированию поведения СРВ. Рассмотрим класс СРВ под названием реактивные системы (reactive systems). Такие системы обладают следующими свойствами.
Считая, что первые четыре свойства в достаточной мере очевидны, рассмотрим лишь последнее свойство - зависимость поведения системы от истории. Вот пример. Пусть некоторый человек едет в переполненном автобусе. Другой человек ему наступает на ногу. Первый делает вид, что не замечает, досадливо морщась. Когда тот же человек наступает ему на ногу во второй раз, первый может заметить вслух, что пора бы прекратить это делать. Но когда это же происходит в третий раз, в автобусе происходит скандал. В моменты, непосредственно предшествующие "наступанию" на ногу - внешнему событию для компоненты "Потерпевший" - данная компонента находилась в трех разных состояниях, напрямую зависящих от предыдущих событий. И ее реакция на одно и то же событие в этих состояниях разная. Итак, в компонентах реактивных систем целесообразно заводить различные состояния, фиксирующие определенный момент в истории их жизни. И обработка одних и тех же внешних событий компонентами в этих состояниях будет различной. Среди СРВ встречается большое количество реактивных систем. Однако, не все СРВ таковы. Например, какой-нибудь шифратор сетевых сообщений просто обрабатывает входной поток внешних сообщений, шифруя их и выдавая дальше, в сеть. В нем может быть всего несколько состояний: старт, нормальная работа, завершение работы, переполнение. Нет никакой прерываемости, отсутствует зависимость от истории, взаимодействие с окружением синхронное. Реактивные системы, равно как и диаграммы состояний и переходов (state transition diagrams), которые вошли в UML под названием диаграмм конечных автоматов, ввел Дэвид Харел в 80-х годах прошлого века. С результатами Харела можно ознакомиться в книге. Впоследствии, основываясь на этих идеях, компания x-Logic реализовала, пожалуй, самое мощное средство проектирования систем реального времени на основе конечных автоматов. В настоящий момент эта компания куплена шведской компанией Telelogic AB (http://www.telelogic.com) - одним из крупнейших производителей средств UML-моделирования.
Дата добавления: 2014-02-26; просмотров: 564; Нарушение авторских прав Мы поможем в написании ваших работ! |