Понятия и компоненты

 

Сущности представляются парами «тип, экземпляр». Таких пар несколько: «класс, объект», «ассоциация, связь», «параметр, значение», «операция, вызов процедуры». Для изображения элементов этих пар на диаграммах обобщение и конкретный экземпляр геометрически представляются одинаково.

Для всех типов диаграмм существует ряд общих элементов:

- строки - последовательности литералов, которые могут включать в себя практически любые символы, могут объединяться в параграфы, и среди строк выделяют:

- имена, которые располагаются в специально отведенных местах элементов диаграмм;

- пути, которые локализуют соответствующий элемент в иерархии описаний;

- метки, которые несут дополнительную информацию об элементе, располагаются вблизи объекта и составляют с ним единое целое;

- строки-характеристики, которые имеют заданный синтаксис и несут информацию об индивидуальных свойствах объекта, выражающуюся в присвоении атрибуту конкретного значения;

- типы – аналог класса, т.к. разница между типом и классом условна, но UML различает эти два понятия, определяя, что атрибуты, переменные и параметры могут принадлежать к определенному типу. Сами типы не определяются, хотя предполагается, что они могут быть и предопределенными, и пользовательскими. Можно создать специальный класс «ТуреЕхргеssion» и поместить туда все необходимые определения и правила.

Основные компоненты UML включают описание семантики UML, его графической нотации и дополнительных понятий, позволяющих расширить смысл основных понятий языка. Документация по UML содержит подробное описание этих компонентов и вместе с формальным описанием UML в виде семи pdf-файлов и представлена на сайте Rational Software (www.rational.com).

Изучение UML следует начинать с изучения его графических образов (Notition Guide). Система представляется в виде объединения нескольких проекций. Каждая проекция описывает определенный аспект разрабатываемой системы, а вместе они определяют систему во всей ее полноте. Эти проекции представляются диаграммами:

- диаграммы классов (class diagrams);

- диаграммы вариантов использования (use case diagrams);

- диаграммы взаимодействия (ineraction diagrams);

- диаграммы последовательности (seguence diagrams);

- кооперативные диаграммы (collaboration diagrams);

- диаграммы состояний (state diagrams);

- диаграммы деятельностей (activity diagrams).

- диаграммы реализации (implementation diagramms);

- компонентные диаграммы (component diagramms);

- диаграммы применения (развертывания) (deployment diagramms).

Назначение диаграмм следующее.

Диаграммы классов показывают статическую структуру системы. Диаграммы классов содержат набор статических (декларативных) элементов, таких как классы, типы и их связи, изображенных в виде графа. Диаграммы классов могут быть логически объединены в пакеты.

Назначение диаграммы вариантов использования следующее. Сложные системы многофункциональны и существует много вариантов использования функций (сценариев). Одно и то же действующее лицо (actor) редко использует все функции системы, поэтому все действующие лица условно делят на группы, в соответствии с типичными сценариями использования определенных функций. Для каждой группы можно составить свой объединенный групповой сценарий (use case), представляющий собой набор всех возможных сценариев применения той или иной части системы. Список всех групповых сценариев определяет функциональные требования к системе, с помощью которых может быть сформулировано техническое задание. Диаграммы вариантов использования представляют собой граф, с помощью которого показаны все типичные действующие лица и их взаимодействие с системой. Взаимодействие представлено сценариями применения.

Диаграммы взаимодействия делят на диаграммы последовательности и кооперативные диаграммы, на которых представлена временная последовательность использования объектов при реализации конкретного сценария и сообщений обмена.

Диаграммы последовательности показывают, в какой последовательности появляются объекты при выполнении операции (сценария) и какой поток сообщений при этом возникает. Диаграммы последовательности имеют две оси: вертикальная ось представляет время, горизонтальная ось - различные объекты.

На кооперативной диаграмме (collaboration diagrams) в виде графа изображаются объекты, участвующие в выполнении операции, их связь и последовательность появления. Сообщения, которыми обмениваются объекты, изображены в виде стрелок, чтобы отражать их временную последовательность, каждая стрелка пронумерована.

Назначение диаграммы состояний следующее. Любой объект системы может менять свое поведение в зависимости от происходящих внутренних или внешних событий, т.е. он может реагировать на события, меняя свое состояние.

Диаграммы состояний показывают последовательность состояний, в которых может оказаться объект в зависимости от происходящих событий. Диаграммы состояний описывают состояние только одного класса или объекта.

Назначение диаграммы деятельностей следующее. Во многих случаях наблюдают смену состояний объекта, вызываемую внутренними причинами. Внутри объекта выполняются последовательно или параллельно предопределенные длительные действия. Для такого типа систем применяют диаграммы деятельностей. Такая диаграмма предназначена для того, чтобы отразить переходы, вызванные внутренними процессами в противоположность внешним событиям. Диаграммы деятельностей используются для описания сложного поведения класса или сценария и представления сложных операций в виде последовательности параллельных и последовательных длительных действий.

Диаграммы реализации состоят из компонентных диаграмм и диаграмм применения (развертывания). Они, в отличие от диаграмм состояния, взаимодействия, использования и классов, являющихся логическими представлениями системы в процессе ее разработки, дают физическое представления системы. Компонентные диаграммы показывают взаимосвязи между компонентами программного обеспечения. Некоторые компоненты могут существовать только во время исполнения, связывания (linking) или компиляции.

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

Рассмотрим пример. Представим упрощенную модель автомобиля с массой m, как груз на пружине жесткости C. Груз движется с заданной постоянной горизонтальной скоростью V по дороге, имеющей профиль y=y(x), вторая производная которого известна. Предполагается, что колесо от дороги не отрывается, и колебания груза происходят только в вертикальной плоскости, как показано на рис 9.1.

 

Рис. 9.1

 

Составим уравнения движения автомобиля в подвижной системе координат (e,h), начало которой жестко связано с центром колеса. Ось e совместим с вертикальной осью подвески, а ось h расположена на расстоянии L от профиля дороги, т.е. L ‑ высота расположения центра тяжести груза при его относительном покое. При движении по неровности абсолютная вертикальная координата y1 начала подвижной координатной системы определяется выражением y1=y(x)+L+e.Переносное вертикальное w при постоянной скорости V, x=Vt определится по формуле

,

а переносная сила инерции груза Q определится по формуле

.

Получим уравнение

.

Способ задания профиля дороги поясняется на рис. 9.2. Горизонтальная часть участка y=0, 0£x£l1 сменяет участок подьема y=H1(1-exp(-g1x)), l1£x£l2, за которым следует спуск y=H2(exp(-g2x)), l2£x£l3. Затем профиль дороги повторяется.

 

Рис. 9.2

 

Длины l1, l2 и l3, коэффициенты подъема и спуска g1 и g2, высоты H1 и H2 являются задаваемыми величинами. Высота Hmax является предельно допустимой. Если автомобиль превышает эту высоту, то подаетя сигнал опасности и скорость автоматически уменьшается на заданную величину. Если тряска (модуль первой производной) превышает заданную величину, то также вырабатывается сигнал опасности и скорость автоматически уменьшается на заданную величину. Если на протяжении заданного интервала времени Т сигналы тревоги не вырабатываются, то автомтическая система управления повышает скорость на заданную величину.

Рассмотрим задачу создания тренажера для обучения водителя управлять движением автомобиля по дорогам с разными профилями. Водитель должен научиться выбирать скорость после получения соответствующих сигналов, двигаясь по дорогам с различным профилем (Hi, Hmax, gi, li) на различных автомобилях (m,С).

Вначале выделим в приоектируемой системе независимые компоненты - автомобиль и дорогу. Автомобиль представим как подвеску, движущуюся по закону

,

где Q(t) - некоторое заданное возмущение, зависящее от скорости движения.

Установим на подвеске датчик высоты центра тяжести, датчик вертикальной составляющей скорости, датчик «крутизны» дороги и систему управления скоростью. Система управления отображает сигналы тревоги, показывает «крутизну» дороги, позволяет снижать скорость на десять процентов нажатием кнопки «скорость» и автоматически повышает скорость, если сигнал тревоги отсутствует на протяжении времени Т.