Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Uml Book (Rus).doc
Скачиваний:
15
Добавлен:
11.08.2019
Размер:
58.74 Mб
Скачать

Глава 23. Время и пространство

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

Моделирование времени и пространства - важный элемент любой распреде­ленной системы или системы реального времени. Для визуализации, специфици­рования, конструирования и документирования таких систем UML предлагает различные средства, включая отметки времени, временные выражения, ограниче­ния и помеченные значения.

Проектирование систем реального времени и распределенных систем - труд­ная задача. Хорошая модель должна высветить все необходимые и достаточные пространственно-временные свойства системы.

Введение

Приступая к моделированию большинства программных систем, обычно исхо­дят из расчета на идеальность среды: предполагают, что для доставки сообщения требуется нулевое время, сетевых сбоев не бывает, рабочие станции никогда не вы­ходят из строя, а загрузка сети всегда равномерна. К сожалению, реальный мир устроен не так: сообщения доставляются с задержкой (а иногда и вовсе не до­ставляются), сеть «падает», рабочие станции «зависают» и загрузка сети далека от сбалансированной. Поэтому, рассматривая систему, которая должна работать в ре­альном мире, необходимо принимать во внимание как пространственные, так и вре­менные характеристики.

Система реального времени (Real time system) называется так потому, что она должна выполнять свои функции в строго определенный абсолютный или отно­сительный момент времени и затрачивать на это предсказуемое и зачастую огра­ниченное время. Среди подобных систем бывают такие, для которых требуемое Время реакции исчисляется нано- или миллисекундами. Но встречаются и систе­мы почти реального времени, для которых допустимое время реакции - порядка секунды и даже дольше.

Под распределенной системой (Distributed system) понимается такая система, компоненты (см. главу 25) которой могут быть физически размещены на различ­ных узлах (см. главу 26). Узлы могут представлять собой разные процессоры, монтированные в одном и том же корпусе, или разные компьютеры, находящиеся в противоположных точках земного шара.

Чтобы удовлетворить потребностям моделирования систем реального време­ни и распределенных систем, UML включает графическое представление для от­меток времени, временных выражений, временных ограничений и местоположе­ния, как показано на рис. 23.1.

Термины и понятия

Отметка времени (Timing mark) служит для обозначения момента времени, в который прозошло событие. Она изображается как выражение, зависящее от имени, присвоенного сообщению (которое, как правило, отлично от имени дей­ствия, инициируемого этим сообщением).

Временное выражение (Time expression) - это выражение, значением которого является абсолютное или относительное время. Временное ограничение (Timing constraint) - это семантическое утверждение об относительном или абсолютном времени. Графически временное ограничение изображается как любое другое ограничение - строкой, заключенной в скобки, и обычно связано с некоторым эле­ментом отношением зависимости. Местоположение (Location) - это размещение компонента в узле. Изображается оно помеченным значением, то есть строкой, за­ключенной в фигурные скобки и размещенной под именем элемента или в виде вло­женных в узел компонентов.

Время

Системы реального времени, как следует из самого названия, критичны по вре­мени. События (см. главу 20) в них могут происходить регулярно или спонтанно, но в любом случае время реакции на событие должно быть предсказуемо - либо по абсолютной продолжительности, либо относительно момента возникновения события.

Передача сообщений (см. главу 15) - это один из динамических аспектов сис­темы, поэтому при моделировании временных особенностей системы с помощью

UML можно каждому сообщению, принимающему участие во взаимодействии (см. там же), дать имя, которое будет использоваться как отметка времени. Обыч­но сообщениям, принимающим участие во взаимодействии, имена не присваива­ются. Как правило, при их изображении используется имя события, например .сигнала или вызова. При этом невозможно использовать имя события в записи выражения, поскольку одно и то же событие может быть причиной различных сообщений. Если имеет место такого рода неоднозначность, следует присвоить явное имя сообщению в отметке времени, чтобы в дальнейшем его можно было использовать во временном выражении. Отметка времени - это не что иное, как выражение, в котором встречается имя сообщения, принимающего участие во вза­имодействии. Если задано имя сообщения, то можно использовать любую из трех функций от этого сообщения - startTime, stopTime, executionTime. В свою очередь, эти три функции можно использовать для построения временных выраже­ний произвольной сложности, возможно, включающих веса или смещения, которые могут быть константами или переменными (если только эти переменные можно вы­числить в момент выполнения). Наконец, как показано на рис. 23.2, временное вы­ражение можно поместить внутрь временного ограничения (см. главу 6), чтобы опи­сать поведение системы во времени. Как и любые другие ограничения, их можно

Изобразить рядом с соответствующим сообщением или явно присоединить с помошью отношения зависимости.

|_______________________________

Примечание Стоит употреблять в выражениях именованные константы вместо явного упоминания времени, в особенности для сложных систем. Константы можно определить в одной части модели, а затем ис­пользовать в других местах. При этом будет проще модифици­ровать модель, если временные требования к системе изменятся.

Примечание Временные выражения можно применять и к операциям. К любой операции разрешается присоединить помеченное значение seman­tics (см. главу 9) и, используя временное выражение, специфициро­вать временную сложность операции. Временная сложность (Time complexity) применяется для моделирования минимального, макси­мального или среднего времени, в течение которого операция должна завершиться. Временная сложность операции, по существу, описы­вает ее временной бюджет, который можно использовать двумя спо­собами. Во-первых, назначая временной бюджет в ходе разработки а затем измеряя его на работающей системе, вы получаете возмож­ность сравнивать поведение задуманной и реализованной системы. Во-вторых, складывая результаты (спроектированные или реаль­ные) вычисления временных выражений для всех операций во взаимо­действии, можно получить временную сложность всей транзакции.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]