Санкт-Петербургский государственный университет
Опубликован: 04.12.2007 | Доступ: свободный | Студентов: 2740 / 336 | Оценка: 4.30 / 3.65 | Длительность: 16:28:00
ISBN: 978-5-94774-823-9
Лекция 6:

Визуальное моделирование систем реального времени, часть I

< Лекция 5 || Лекция 6: 1234 || Лекция 7 >

Выводы

Теперь становится понятно, откуда взялись абстракции, используемые при моделировании структуры систем реального времени.

  1. Аппаратные узлы и провода перешли в композитные компоненты и соединители.
  2. Разъемы и аппаратные интерфейсы, а также сервисные точки многоуровневых сетевых моделей перешли в порты и интерфейсы.
  3. Принцип блочной декомпозиции был "навеян" модульностью аппаратуры и укрепившимися в телекоммуникациях многоуровневыми моделями сетевых протоколов.

При проектировании сложных СРВ далеко не сразу разделяют программную и аппаратную части. Вначале, как правило, создается единая модель системы. Например, многоуровневые модели сетевых протоколов, которые при разработке телекоммуникационных систем часто используют в качестве исходных моделей, эволюционизирующих в модели архитектуры СРВ, не содержат указаний на то, какая их часть должна быть реализована программно, а какая - аппаратно. Декомпозицию программно-аппаратных систем удобно проводить с помощью модельных абстракций, которые подходят как для ПО, так и для аппаратуры.

Композитные компоненты UML незаменимы при разработке структурно сложных СРВ, в частности, сложных телекоммуникационных систем. Однако на практике встречается много структурно простых СРВ. Такие системы могут быть глубоко встроенными в аппаратуру и управлять одной-двумя "железками", имея всего несколько программных компонент и небогатый внешний интерфейс. При этом системы могут быть достаточно сложны - например, реализовывать сложные математические алгоритмы. Однако при разработке таких систем, наверное, "городить огород" с UML-компонентами, портами, соединителями и пр. не стоит…

Композитная компонента UML 2.0 является частным случаем структурного классификатора (structured classifier) - конструкции, предназначенной для блочной декомпозиции различных типов. В данном курсе рассматривались еще несколько UML-сущностей, которые, на самом, деле являются структурными классификаторами - это кооперация и класс. Таким образом, и компонента, и кооперация, и класс, а также их роли, могут показываться на диаграммах композитных структур. Роли внутри структурного классификатора соединяются соединителями, но вот порты используются только для компонент. Структурные классификаторы, соответствующие ролям, сами, в свою очередь, могут раскрываться через другие роли и так далее… Авторы UML привнесли в версию стандарта 2.0 блочную декомпозицию из ROOM, обобщив ее на другие виды структурных конструкций. На мой взгляд, это сильно ослабило выразительную силу механизма блочн ой декомпозиции для компонент, а также сильно запутало его для изучения: разобраться, что такое роль и структурный классификатор - непросто…

Реактивные системы

Выше были рассмотрены средства моделирования UML 2.0 структуры СРВ. Теперь перейдем к моделированию поведения СРВ.

Рассмотрим класс СРВ под названием реактивные системы (reactive systems). Такие системы обладают следующими свойствами.

  1. Организованы в виде параллельно работающих компонент.
  2. Постоянно взаимодействуют с окружением, причем это взаимодействие может носить асинхронный, непредсказуемый характер.
  3. Обладают прерываемостью, т. е. должны быть готовы обрабатывать запросы наивысшего приоритета.
  4. Их реакция на внешние запросы имеет строгие временные ограничения.
  5. Сценарии работы таких систем зависят от их предыдущего поведения (истории).

Считая, что первые четыре свойства в достаточной мере очевидны, рассмотрим лишь последнее свойство - зависимость поведения системы от истории. Вот пример. Пусть некоторый человек едет в переполненном автобусе. Другой человек ему наступает на ногу. Первый делает вид, что не замечает, досадливо морщась. Когда тот же человек наступает ему на ногу во второй раз, первый может заметить вслух, что пора бы прекратить это делать. Но когда это же происходит в третий раз, в автобусе происходит скандал… В моменты, непосредственно предшествующие "наступанию" на ногу - внешнему событию для компоненты "Потерпевший" - данная компонента находилась в трех разных состояниях, напрямую зависящих от предыдущих событий. И ее реакция на одно и то же событие в этих состояниях разная6Идея данного примера взята из [6.5]..

Итак, в компонентах реактивных систем целесообразно заводить различные состояния, фиксирующие определенный момент в истории их жизни. И обработка одних и тех же внешних событий компонентами в этих состояниях будет различной.

Среди СРВ встречается большое количество реактивных систем. Однако, не все СРВ таковы. Например, какой-нибудь шифратор сетевых сообщений просто обрабатывает входной поток внешних сообщений, шифруя их и выдавая дальше, в сеть. В нем может быть всего несколько состояний: старт, нормальная работа, завершение работы, переполнение. Нет никакой прерываемости, отсутствует зависимость от истории, взаимодействие с окружением синхронное.

В следующей лекции будет рассмотрено, как поведение реактивных компонент моделируется с помощью диаграмм конечных автоматов UML 2.0.

Реактивные системы, равно как и диаграммы состояний и переходов (state transition diagrams), которые вошли в UML под названием диаграмм конечных автоматов, ввел Дэвид Харел в 80-х годах прошлого века. С результатами Харела можно ознакомиться в книге [6.15]. Впоследствии, основываясь на этих идеях, компания x-Logic реализовала, пожалуй, самое мощное средство проектирования систем реального времени на основе конечных автоматов. В настоящий момент эта компания куплена шведской компанией Telelogic AB (http://www.telelogic.com) - одним из крупнейших производителей средств UML-моделирования.

Контрольные вопросы

  1. Дайте определение системе реального времени.
  2. Расскажите о структурном подобии СРВ аппаратуре и вытекающих отсюда следствиях.
  3. Перечислите основные абстракции моделирования структуры СРВ.
  4. Что такое блочная декомпозиция? Чем она отличается от других видов декомпозиции?
  5. Чем экземплярная блочная декомпозиция отличается от блочной декомпозиции типов? Приведите свои примеры.
  6. Опишите функциональность нескольких уровней какого-нибудь сетевого стандарта.
  7. Что такое композитная компонента?
  8. Что такое роль компоненты, каковы ее свойства? Как с помощью ролей описывается композитная компонента?
  9. Что такое интерфейс?
  10. Какие примитивы взаимодействия компонент могут входить в интерфейс? Что значит, что компонента реализует интерфейс с сообщениями?
  11. Какие примитивы взаимодействия используются для асинхронного общения ПО-компонент? А для синхронного?
  12. Приведите свой собственный пример двустороннего интерфейса.
  13. Расширьте понятие согласованности двусторонних интерфейсов - (подсказка: важно, чтобы компонента умела обрабатывать все запросы, которые ей приходят через интерфейс).
  14. Что такое порт? Зачем он нужен и почему нельзя обойтись только интерфейсами?
  15. Чем порт отличается от экземпляра порта?
  16. Что такое совместимость портов?
  17. Что такое согласованность интерфейсов? Что такое согласованность двухсторонних интерфейсов?
  18. Что такое соединитель? Как вы думаете, почему соединители "многие-ко-многим" не используются при моделировании СРВ, в то же время связи "многие-ко-многим" активно используясь при моделировании баз данных?
  19. Что такое делегирующий соединитель?
  20. Расскажите, какие элементы аппаратных и телекоммуникационных систем перешли в абстракции моделирования СРВ.
  21. Перечислите признаки реактивной системы.
  22. Приведите свой пример зависимости поведения системы или компоненты системы от истории. А также обратные примеры, когда такой зависимости нет, но компонента или система тем не менее, обрабатывает некоторый поток внешних событий.
  23. Дайте свой пример СРВ, которая не является реактивной.
< Лекция 5 || Лекция 6: 1234 || Лекция 7 >
Ольга Зырянова
Ольга Зырянова

Здравствуйте, не могу найти ссылку на скачивание курса  «Визуальное моделирование: теория и практика»

 

Номер платежа 6400454020565

Анна Митюрёва
Анна Митюрёва

http://www.intuit.ru/studies/courses/1041/218/info

С мобильного приложения доступ есть, а через сайт не отображается. Печально =(