
- •6. Обзор нотации uml
- •6.1. Диаграммы uml
- •6.2. Диаграммы прецедентов
- •6.3. Нотация uml для классов и объектов
- •6.4. Диаграммы классов
- •6.5. Диаграммы взаимодействия
- •6.6. Диаграммы состояний
- •6.7. Пакеты
- •6.8. Диаграммы параллельной кооперации
- •6.9. Диаграммы развертывания
- •6.10. Механизмы расширения uml
заранее заданное. Если в интерактивной системе недостаточно быстрая реакция способна лишь вызвать недовольство, то в системе реального времени последствия бывают катастрофическими. Например, в системе управления воздушным движением это может привести к столкновению самолетов в воздухе. Необходимое время реакции зависит от приложения: иногда оно измеряется миллисекундами, иногда – секундами, а иногда – даже минутами.
4. Управление в реальном масштабе времени. Часто системе реального времени приходится принимать управляющие решения на основе входных данных, без участия человека. Так, автомобильная система круиз-контроля, призванная поддерживать постоянную скорость машины, должна управлять дросселем в зависимости от текущей скорости.
Однако могут быть и некритичные по времени компоненты. Например, система сбора данных в реальном времени должна принимать информацию сразу, иначе она будет потеряна, но анализ полученных сведений допустим и позже.
5. Реактивные системы [20] управляются событиями и должны реагировать на внешние стимулы. Обычно реакция системы зависит от ее текущего состояния, то есть не только от самого внешнего стимула, но и от того, что происходило в системе раньше.
6. Обзор нотации uml
В методе COMET используется нотация из унифицированного языка моделирования UML, которая объединила нотации, предложенные Бучем [16], Джекобсоном [21], Рамбо [16] и Харелом [20]. Представим краткий обзор нотации UML.
Co временем нотация UML расширялась, и теперь в ней поддерживается много различных диаграмм.
6.1. Диаграммы uml
В нотации UML поддерживаются девять видов диаграмм:
– диаграммы прецедентов;
– диаграммы классов;
– диаграммы объектов, являющиеся вариантом диаграмм классов в применении к экземплярам. В методе COMET вместо них работают консолидированные диаграммы кооперации;
– диаграммы кооперации;
– диаграммы последовательности;
– диаграммы состояний;
– диаграммы деятельности (в COMET не используются);
– диаграммы компонентов (в COMET не используются).
– диаграммы развертывания.
6.2. Диаграммы прецедентов
Актер (actor) инициирует прецедент. Прецедент (use case) описывает последовательность взаимодействий между актером и системой. Актер изображается на диаграмме прецедентов в виде фигуры человечка, система – в виде прямоугольника, прецедент – в виде эллипса внутри этого прямоугольника. Коммуникационные ассоциации связывают актеров с теми прецедентами, в которых они участвуют. Между прецедентами могут быть отношения include (включает) и extend (расширяет). Пример диаграммы прецедентов представлен на рис.6.1.
6.3. Нотация uml для классов и объектов
Классы и объекты изображаются в UML прямоугольниками, как показано на рис.6.2.
Рис. 6.1. Диаграммы прецедентов в нотации UML
В прямоугольнике класса всегда вписано имя класса. Дополнительно могут быть указаны атрибуты и операции класса. Когда присутствуют все три элемента, то в верхней секции прямоугольника находится имя класса, в средней – атрибуты, а в нижней – операции.
Для того чтобы отличить класс (тип) от объекта (экземпляра типа), имя объекта подчеркивается. Объект может обозначаться как anObject,anotherObject:Class или :Class. Классы и объекты встречаются в разных диаграммах UML.
Рис. 6.2. Объекты и классы в нотации UML
6.4. Диаграммы классов
На такой диаграмме классы изображаются в виде прямоугольников, а статические (постоянные) отношения между ними – в форме дуг. Поддерживаются три основных типа отношений между классами (рис. 6.3):
– ассоциации. Ассоциация между двумя классами (бинарная ассоциация) изображается в виде линии, соединяющей прямоугольники классов. У нее есть имя и, возможно, стрелка, поясняющая, в каком направлении следует это имя читать. На каждом конце ассоциации проставляется кратность – число, свидетельствующее, сколько экземпляров одного класса связано с одним экземпляром другого класса. Дополнительно на каждом конце ассоциации может присутствовать стрелка, указывающая направление навигации вдоль данной ассоциации.
Допустимы следующие кратности ассоциации: ровно один (1), присутствие экземпляра класса необязательно (0..1), нуль или более (*), один или более (1..*) и точное задание числа экземпляров классов (m..n), где m и n - числа;
– иерархии агрегирования и композиции. Это отношения вида целое/часть. Отношение композиции (изображается закрашенным ромбом) накладывает более сильные ограничения на экземпляры классов, чем отношение агрегирования (показывается незакрашенным ромбом). Ромб одной вершиной примыкает к прямоугольнику класса, являющегося частью в отношении вида «часть/целое»;
– иерархия обобщения/специализации. Это отношение вида «является». Обобщение изображается в виде стрелки, ведущей от подкласса (потомка) к суперклассу (родителю), причем стрелка упирается в прямоугольник суперкласса.
Видимость определяет, доступен ли элемент класса вне самого класса (рис. 6.4). Показывать видимость на диаграмме необязательно. Открытая видимость, изображаемая символом + (плюс), означает, что элемент виден извне класса.
Закрытая видимость, отмеченная знаком – (минус), свидетельствует о том, что элемент виден только внутри класса, в котором он определен, а от других классов скрыт. Защищенная видимость, показываемая знаком #, говорит о том, что элемент виден внутри класса, в котором определен, а также во всех подклассах этого класса.
Рис. 6.3. Нотация UML для связей на диаграмме классов
Рис. 6.4. Нотация UML для обозначения видимости на
диаграмме классов