Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Системы и приложения реального времени
Системы реального времени (рис. 1.1) – это параллельные системы с временными ограничениями. Они широко распространены в промышленных, коммерческих и военных приложениях. Термин «система реального времени» обычно относится к системе в целом, включающей приложение реального времени, операционную систему реального времени и подсистему ввода/вывода реального времени. В состав такой системы входят также драйверы специальных устройств, управляющие работой различных датчиков и приводов. Поскольку здесь речь идет в основном о проектировании приложений, мы будем пользоваться термином «приложение реального времени», а не «система реального времени». Однако в этом разделе приложения реального времени рассматриваются в более широком контексте систем реального времени.
Рис. 1.1. Система реального времени
Системы реального времени часто очень сложны, так как их работа связана с многочисленными независимыми потоками входных событий и продуцированием различной выходной информации. Частота поступления событий обычно непредсказуема, однако реагировать необходимо достаточно быстро, чтобы соблюсти временные ограничения, сформулированные в требованиях к программе. Нередко нельзя предугадать и порядок поступления событий. Кроме того, входная нагрузка может с течением времени значительно и неожиданно изменяться. Системы реального времени часто дополнительно подразделяются на системы с жесткими и слабыми временными ограничениями. Система с жесткими ограничениями обязана отреагировать на событие в пределах установленного временного интервала, в противном случае возможен аварийный отказ. Для систем со слабыми ограничениями выход за пределы допустимого интервала считается нежелательным, но все же не катастрофическим явлением. Программные системы реального времени имеют дополнительные характеристики, отличающие их от прочих систем: 1. Встраиваемые системы. Система реального времени часто является частью более крупной программно-аппаратной системы. Примером может служить контроллер робота, входящий в состав робототехнического комплекса, имеющего одну или несколько механических рук. Обычно программная система реального времени состоит из приложения реального времени, операционной системы реального времени и, возможно, дополнительного системного ПО: коммуникационных программ, программ промежуточного слоя или драйверов специальных устройств. 2. Взаимодействие с внешней средой. Как правило, система реального времени осуществляет такое взаимодействие без участия человека. Например, она может управлять механизмами или процессом производства, следить за протеканием химических реакций или поднимать тревогу. Для получения информации о внешней среде обычно требуются датчики, а для управления средой – приводы (см. рис. 1.1). 3. Временные ограничения. Системы реального времени обязаны тратить на обработку события время, не превышающее
25. ОБЗОР НОТАЦИИ UML В методе COMET используется нотация из унифицированного языка моделирования UML, которая объединила нотации, предложенные Бучем [3], Джекобсоном [8], Рамбо [3] и Харелом [7]. Представим краткий обзор нотации UML. Co временем нотация UML расширялась, и теперь в ней поддерживается много различных диаграмм.
2.1. Диаграммы UML В нотации UML поддерживаются девять видов диаграмм: – диаграммы прецедентов; – диаграммы классов; – диаграммы объектов, являющиеся вариантом диаграмм классов в применении к экземплярам. В методе COMET вместо них работают консолидированные диаграммы кооперации; – диаграммы кооперации; – диаграммы последовательности; – диаграммы состояний; – диаграммы деятельности (в COMET не используются); – диаграммы компонентов (в COMET не используются). – диаграммы развертывания.
Диаграммы прецедентов Актер (actor) инициирует прецедент. Прецедент (use case) описывает последовательность взаимодействий между актером и системой. Актер изображается на диаграмме прецедентов в виде фигуры человечка, система – в виде прямоугольника, прецедент – в виде эллипса внутри этого прямоугольника. Коммуникационные ассоциации связывают актеров с теми прецедентами, в которых они участвуют. Между прецедентами могут быть отношения include (включает) и extend (расширяет). Пример диаграммы прецедентов представлен на рис. 2.1. 2.3. Нотация UML для классов и объектов Классы и объекты изображаются в UML прямоугольниками, как показано на рис. 2.2.
Рис. 2.1. Диаграммы прецедентов в нотации UML В прямоугольнике класса всегда вписано имя класса. Дополнительно могут быть указаны атрибуты и операции класса. Когда присутствуют все три элемента, то в верхней секции прямоугольника находится имя класса, в средней – атрибуты, а в нижней – операции. Для того чтобы отличить класс (тип) от объекта (экземпляра типа), имя объекта подчеркивается. Объект может обозначаться как anObject, anotherObject: Class или : Class. Классы и объекты встречаются в разных диаграммах UML.
Рис. 2.2. Объекты и классы в нотации UML
Диаграммы классов На такой диаграмме классы изображаются в виде прямоугольников, а статические (постоянные) отношения между ними – в форме дуг. Поддерживаются три основных типа отношений между классами (рис. 2.3): – ассоциации. Ассоциация между двумя классами (бинарная ассоциация) изображается в виде линии, соединяющей прямоугольники классов. У нее есть имя и, возможно, стрелка, поясняющая, в каком направлении следует это имя читать. На каждом конце ассоциации проставляется кратность – число, свидетельствующее, сколько экземпляров одного класса связано с одним экземпляром другого класса. Дополнительно на каждом конце ассоциации может присутствовать стрелка, указывающая направление навигации вдоль данной ассоциации. Допустимы следующие кратности ассоциации: ровно один (1), присутствие экземпляра класса необязательно (0..1), нуль или более (*), один или более (1..*) и точное задание числа экземпляров классов (m..n), где m и n - числа; – иерархии агрегирования и композиции. Это отношения вида целое/часть. Отношение композиции (изображается закрашенным ромбом) накладывает более сильные ограничения на экземпляры классов, чем отношение агрегирования (показывается незакрашенным ромбом). Ромб одной вершиной примыкает к прямоугольнику класса, являющегося частью в отношении вида «часть/целое»; – иерархия обобщения/специализации. Это отношение вида «является». Обобщение изображается в виде стрелки, ведущей от подкласса (потомка) к суперклассу (родителю), причем стрелка упирается в прямоугольник суперкласса. Видимость определяет, доступен ли элемент класса вне самого класса (рис. 2.4). Показывать видимость на диаграмме необязательно. Открытая видимость, изображаемая символом + (плюс), означает, что элемент виден извне класса. Закрытая видимость, отмеченная знаком – (минус), свидетельствует о том, что элемент виден только внутри класса, в котором он определен, а от других классов скрыт. Защищенная видимость, показываемая знаком #, говорит о том, что элемент виден внутри класса, в котором определен, а также во всех подклассах этого класса.
Рис. 2.3. Нотация UML для связей на диаграмме классов
Рис. 2.4. Нотация UML для обозначения видимости на диаграмме классов
Диаграммы взаимодействия В UML есть два вида диаграмм взаимодействия: диаграммы кооперации (collaboration diagram) и диаграммы последовательности (sequence diagram). Семантически они эквивалентны. 2.5.1. Диаграммы кооперации. На диаграмме кооперации показывается, как объекты динамически общаются между собой, посылая и получая сообщения. Эта диаграмма представляет структурную организацию взаимодействующих объектов, изображаемых в виде прямоугольников и соединяющих их дуг. Помеченные стрелки рядом с дугами обозначают имя сообщения и направление его передачи между объектами. Отдельные сообщения в последовательности сообщений, отправляемых от одного объекта к другому, нумеруются. Нотация диаграмм кооперации представлена на рис. 2.5. Необязательное повторение обозначается символом *, свидетельствующим, что информация посылается более одного раза. Необязательное условие означает, что сообщение посылается только тогда, когда условие истинно.
Рис. 2.5. Диаграмма кооперации в нотации UML
2.5.2. Диаграммы последовательности. Другой способ показать взаимодействие объектов – воспользоваться диаграммой последовательности (рис. 2.6). На ней обмен объектов сообщениями представлен во времени более точно и наглядно. Диаграмма последовательности двумерна: участвующие объекты изображаются вдоль горизонтальной оси, а время откладывается вдоль вертикальной. От прямоугольника каждого объекта идет вниз вертикальная пунктирная линия, называемая линией жизни. Период, в течение которого объект выполняет операцию, именуется активизацией. На протяжении этого периода линия жизни изображается двойной сплошной линией. Актер обычно изображается в левом верхнем углу диаграммы. Помеченные горизонтальные линии представляют пересылку сообщений. Существенны только отправитель и получатель сообщения. Сообщение посылается объектом-отправителем объекту-получателю. Время возрастает в направлении сверху вниз. Расстояние по вертикали между сообщениями не имеет значения.
Диаграммы состояний В нотации UML диаграмма перехода состояний называется диаграммой состояний. На ней состояния представляются прямоугольниками со скругленными углами, а переходы – соединяющими их дугами (рис. 2.7). Начальное состояние обозначается дугой, исходящей из маленького закрашенного кружка. Может также присутствовать необязательное конечное состояние, изображаемое закрашенным кружком внутри незакрашенного (иногда его называют «бычий глаз»). Диаграмму состояний разрешается подвергнуть иерархической декомпозиции, так что надсостояние разлагается на подсостояния. Рядом с дугой, представляющей переход, находится условие перехода в виде: Событие [условие]/Действие. Событие вызывает переход в новое состояние. Если задано необязательное булевское условие, то переход осуществится, когда оно истинно. В результате перехода может быть выполнено необязательное действие. Дополнительно с состоянием иногда ассоциируются: – действие при входе в состояние; – деятельность, выполняемая во время нахождения внутри состояния; – действие при выходе из состояния.
Рис. 2.6. Диаграмма последовательности в нотации UML
Рис. 2.7. Диаграмма состояний в нотации UML надсостояние с последовательными подсостояниями
На рис. 2.7 показано надсостояние А, разложенное на два последовательных подсостояния – А1 и А2. В этом случае диаграмма в каждый момент времени может находиться только в одном состоянии, т.е. сначала будет вход в подсостояние А1, а затем – в подсостояние А2. На рис. 2.8 изображено надсостояние В, разложенное на два параллельных подсостояния – ВС и BD. Здесь объект, описываемый диаграммой, одновременно находится в каждом из подсостояний ВС и BD. Далее каждое параллельное подсостояние раскладывается на последовательные. Таким образом, вход в надсостояние В сопровождается одновременным входом в подсостояния В1 и В3.
Рис. 2.8. Нотация U ML для диаграммы состояний: надсостояние с параллельными подсостояниями
Пакеты В UML пакетом называется группа элементов модели, используемая, например, для представления системы или подсистемы. Такая группа изображается пиктограммой папки – большим прямоугольником, над которым находится прямоугольник поменьше (рис. 2.9). Пакеты бывают вложенными; между ними могут существовать отношения зависимости и обобщения/специализации. Пакеты способны содержать классы, объекты или прецеденты.
Рис. 2.9. Нотация UML для пакетов
Популярное:
|
Последнее изменение этой страницы: 2016-03-17; Просмотров: 1007; Нарушение авторского права страницы