Лекции по предмету проектирование асоиу
Скачать 0.94 Mb.
|
21 МЕТОДОЛОГИЯ UML: ДИАГРАММЫ ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ, КЛАССОВ, ПОСЛЕДОВАТЕЛЬНОСТИ 21.1 Диаграммы вариантов использования Диаграмма вариантов использования – это исходное концептуальное представление или концептуальная модель системы в процессе ее проектирования и разработки. Создание диаграммы вариантов использования имеет следующие цели: • определить общие границы и контекст моделируемой предметной области на начальных этапах проектирования системы; • сформулировать общие требования к функциональному поведению проектируемой системы; • разработать исходную концептуальную модель системы для ее последующей детализации в форме логических и физических моделей; • подготовить исходную документацию для взаимодействия разработчиков системы с ее заказчиками и пользователями. Назначение данной диаграммы состоит в следующем: проектируемая программная система представляется в форме так называемых вариантов использования, с которыми взаимодействуют внешние сущности – актеры. Актером называется любой объект, субъект или система, взаимодействующая с моделируемой бизнес-системой извне. Вариант использования служит для описания сервисов, которые система предоставляет актеру. Другими словами каждый вариант использования определяет набор действий, совершаемый системой при диалоге с актером. При этом ничего не говорится о том, каким образом будет реализовано взаимодействие актеров с системой и собственно выполнение вариантов использования. В самом общем случае, диаграмма вариантов использования представляет собой граф специального вида, который является графической нотацией для представления конкретных вариантов использования, актеров и отношений между этими элементами. При этом отдельные элементы диаграммы заключают в прямоугольник, который обозначает границы проектируемой системы. В то же 67 время отношения, которые могут быть изображены на данном графе, представляют собой только фиксированные типы взаимосвязей между актерами и вариантами использования, которые в совокупности описывают сервисы или функциональные требования к моделируемой системе. Базовыми элементами диаграммы вариантов использования являются вариант использования и актер. Вариант использования – внешняя спецификация последовательности действий, которые система или другая сущность могут выполнять в процессе взаимодействия с актерами. Содержание варианта использования может быть представлено в форме дополнительного пояснительного текста, который раскрывает смысл или семантику действий при выполнении данного варианта использования. Такой пояснительный текст получил название текста-сценария или просто сценария. Отдельный вариант использования обозначается на диаграмме эллипсом, внутри которого содержится его краткое имя в форме существительного (рисунок 24.1, а) или глагола (рисунок 24.1, б) с пояснительными словами. Сам текст имени варианта использования должен начинаться с заглавной буквы. Имя (name) – строка текста, которая используется для идентификации любого элемента модели. Рисунок 24.1 – Графическое обозначение варианта использования Актер – согласованное множество ролей, которые играют внешние сущности по отношению к вариантам использования при взаимодействии с ними. Стандартным графическим обозначением актера на диаграммах является фигурка «человечка», под которой записывается имя актера (рисунок 24.2). Рисунок 24.2 – Графическое обозначение актера 68 Имена актеров должны начинаться с заглавной буквы и следовать рекомендациям использования имен для типов и классов модели. При этом символ отдельного актера связывает соответствующее описание актера с конкретным именем. Поскольку в общем случае актер всегда находится вне системы, его внутренняя структура никак не определяется. Для актера имеет значение только его внешнее представление, т.е. то, как он воспринимается со стороны системы. Актеры взаимодействуют с системой посредством передачи и приема сообщений от вариантов использования. Сообщение представляет собой запрос актером сервиса от системы и получение этого сервиса. Это взаимодействие может быть выражено посредством ассоциаций между отдельными актерами и вариантами использования. Кроме этого, с актерами могут быть связаны интерфейсы, которые определяют, каким образом другие элементы модели взаимодействуют с этими актерами. Отношение – семантическая связь между отдельными элементами модели. Между элементами диаграммы вариантов использования могут существовать различные отношения, которые описывают взаимодействие экземпляров одних актеров и вариантов использования с экземплярами других актеров и вариантов. Один актер может взаимодействовать с несколькими вариантами использования. В этом случае этот актер обращается к нескольким сервисам данной системы. В свою очередь один вариант использования может взаимодействовать с несколькими актерами, предоставляя для всех них свой сервис. В языке UML имеется несколько стандартных видов отношений между актерами и вариантами использования: • ассоциации; • включения; • расширения; • обобщения. 69 При этом общие свойства вариантов использования могут быть представлены тремя различными способами, а именно – с помощью отношений включения, расширения и обобщения. Отношение ассоциации служит для обозначения специфической роли актера при его взаимодействии с отдельным вариантом использования. На диаграмме вариантов использования, так же как и на других диаграммах, отношение ассоциации обозначается сплошной линией между актером и вариантом использования (рисунок 24.3). Рисунок 24.3 – Отношение ассоциации между актером и вариантом использования Включение – это разновидность отношения зависимости между базовым вариантом использования и его специальным случаем. При этом отношением зависимости является такое отношение между двумя элементами модели, при котором изменение одного элемента (независимого) приводит к изменению другого элемента (зависимого). Отношение включения устанавливается только между двумя вариантами использования и указывает на то, что заданное поведение для одного варианта использования включается в качестве составного фрагмента в последователь- ность поведения другого варианта использования. Графически данное отношение обозначается как отношение зависимости в форме пунктирной линии со стрелкой, направленной от базового варианта использования к включаемому варианту использования. При этом данная линия помечается стереотипом < Рисунок 24.4 – Отношение включения между вариантами использования Семантика этого отношения определяется следующим образом. Процесс выполнения базового варианта использования включает в себя как собственное подмножество последовательность действий, которая определена для 70 включаемого варианта использования. При этом выполнение включаемой последовательности действий происходит всегда при инициировании базового варианта использования. Отношение расширения определяет взаимосвязь базового варианта использования с другим вариантом использования, функциональное поведение которого задействуется базовым не всегда, а только при выполнении дополнительных условий. Отношение расширения между вариантами использования обозначается как отношение зависимости в форме пунктирной линии со стрелкой, направленной от того варианта использования, который является расширением для базового варианта использования. Данная линия со стрелкой должна быть помечена стереотипом < Рисунок 24.5. – Отношение расширения между вариантами использования Семантика отношения расширения определяется следующим образом. Если базовый вариант использования выполняет некоторую последовательность действий, которая определяет его поведение, и при этом имеется точка расширения на экземпляр другого варианта использования, которая является первой из всех точек расширения у базового варианта, то проверяется логическое условие данного отношения. Если это условие выполняется, исходная последовательность действий расширяется посредством включения действий другого варианта использования. Следует заметить, что условие отношения расширения проверяется лишь один раз – при первой ссылке на точку расширения, и если оно выполняется, то все расширяющие варианты использования вставляются в базовый вариант. Два и более актера могут иметь общие свойства, т.е. взаимодействовать с одним и тем же множеством вариантов использования одинаковым образом. Такая общность свойств и поведения представляется в виде отношения 71 обобщения с другим, возможно, абстрактным актером, который моделирует соответствующую общность ролей. Графически отношение обобщения обозначается сплошной линией со стрелкой в форме не закрашенного треугольника, которая указывает на родительский вариант использования (рисунок 24.6). Эта линия со стрелкой имеет специальное название – стрелка-обобщение. Рисунок 24.6. – Отношения обобщения между вариантами использования Отношение обобщения между вариантами использования применяется в том случае, когда необходимо отметить, что дочерние варианты использования обладают всеми особенностями поведения родительских вариантов. При этом дочерние варианты использования участвуют во всех отношениях родительских вариантов. В свою очередь, дочерние варианты могут наделяться новыми свойствами поведения, которые отсутствуют у родительских вариантов использования, а также уточнять или модифицировать наследуемые от них свойства поведения. 21.2 Диаграммы классов Диаграмма классов – диаграмма языка UML, на которой представлена совокупность декларативных или статических элементов модели, таких как классы с атрибутами и операциями, а также связывающие их отношения. Диаграмма классов предназначена для представления статической ст руктуры модели системы в терминологии классов объектно- ориентированного программирования. При этом диаграмма классов может содержать интерфейсы, пакеты, отношения и даже отдельные экземпляры классификаторов, такие как объекты и связи. Класс – абстрактное описание множества однородных объектов, имею- щих одинаковые атрибуты, операции и отношения с объектами других классов. 72 Графически класс изображается в виде прямоугольника, который дополнительно может быть разделен горизонтальными линиями на разделы или секции (рисунок 24.7). В этих секциях могут указываться имя класса, атрибуты и операции класса. Рисунок 24.7 – Варианты графического изображения класса на диаграмме классов Имя класса должно быть уникальным в пределах пакета, который может содержать одну или несколько диаграмм классов. Имя указывается в самой верхней секции прямоугольника, по центру секции, полужирным шрифтом и должно начинаться с заглавной буквы. Класс может иметь или не иметь экземпляров или объектов. В зависимости от этого в языке UML различают конкретные и абстрактные классы. Конкретный класс – класс, на основе которого могут быть непосредст- венно созданы экземпляры или объекты. Абстрактный класс – класс, который не имеет экземпляров или объектов. Для обозначения имени абстрактного класса используется курсив. Атрибут – содержательная характеристика класса, описывающая множество значений, которые могут принимать отдельные объекты этого класса. Операция – это сервис, предоставляемый каждым экземпляром или объектом класса по требованию своих клиентов, в качестве которых могут выступать другие объекты, в том числе и экземпляры данного класса. Совокупность операций характеризует функциональный аспект поведения всех объектов данного класса. Каждой операции класса 73 соответствует отдельная строка, которая состоит из квантора видимости операции, имени операции, выражения типа возвращаемого операцией значения и, возможно, строка-свойство данной операции. Интерфейс – именованное множество операций, которые характеризуют поведение отдельного элемента модели. Интерфейс в контексте языка UML является специальным случаем класса, у которого имеются операции, но отсутствуют атрибуты. Для обозначения интерфейса используется специальный графический символ окружность или стандартный способ – прямоугольник класса со стереотипом < Кроме внутреннего устройства классов важную роль при разработке проектируемой системы имеют различные отношения между классами, которые также могут быть изображены на диаграмме классов. Базовые отношения, изображаемые на диаграммах классов: • отношение ассоциации; • отношение обобщения; • отношение агрегации; • отношение композиции. Отношение ассоциации соответствует наличию произвольного отношения или взаимосвязи между классами. Обозначается сплошной линией со стрелкой или без нее и с дополнительными символами, которые характеризуют специальные свойства ассоциации. Рисунок 24.8 – Отношение ассоциации между классами Отношение обобщения является обычным таксономическим отношени- ем или отношением классификации между более общим элементом (родителем или предком) и более частным или специальным элементом (дочерним или 74 потомком). Применительно к диаграмме классов данное отношение описывает иерархическое строение классов и наследование их свойств и поведения. На диаграммах отношение обобщения обозначается сплошной линией с треугольной стрелкой на одном из концов (рисунок 24.9). Стрелка указывает на более общий класс (класс-предок или суперкласс), а ее начало – на более специальный класс (класс-потомок или подкласс). Рисунок 24.9 – Отношение обобщения классов От одного класса-предка одновременно могут наследовать несколько классов-потомков, что отражает таксономический характер данного отношения. В этом случае на диаграмме классов для подобного отношения обобщения указывается несколько линий со стрелками. Отношение агрегации используется, если один из классов представляет собой сущность, которая включает в себя в качестве составных частей другие сущности. Раскрывая внутреннюю структуру системы, отношение агрегации показывает, из каких элементов состоит система, и как они связаны между собой. Графически отношение агрегации изображается сплошной линией, один из концов которой представляет собой не закрашенный внутри ромб. Этот ромб указывает на тот класс, который представляет собой «целое», или класс- контейнер. Остальные классы являются его «частями» (рисунок 24.10). Рисунок 24.10 – Отношение агрегации классов Отношение композиции – частный случай отношения агрегации. Это отношение служит для спецификации более сильной формы отношения «часть- целое», при которой составляющие части тесно взаимосвязаны с целым. Особенность этой взаимосвязи заключается в том, что части не могут выступать в отрыве от целого, т.е. с уничтожением целого уничтожаются и все его составные части. 75 Графически отношение композиции изображается сплошной линией, один из концов которой представляет собой закрашенный внутри ромб. Этот ромб указывает на тот класс, который представляет собой класс-композит. Остальные классы являются его «частями» (рисунок 24.11). Рисунок 24.11 – Отношение композиции классов 21.3 Диаграммы последовательности Диаграмма последовательности – диаграмма, на которой показаны взаимодействия объектов, упорядоченные по времени их проявления. На диаграмме последовательности неявно присутствует ось времени, что позволяет визуализировать временные отношения между передаваемыми сообщениями. С помощью диаграммы последовательности можно представить взаимодействие элементов модели как временной график жизни всей совокупности объектов, связанных между собой для реализации варианта использования программной системы, достижения бизнес-цели или выполнения какой-либо задачи. На диаграмме последовательности изображаются объекты, которые непосредственно участвуют во взаимодействии, при этом никакие статические связи с другими объектами не визуализируются. Для диаграммы последователь- ности ключевым моментом является динамика взаимодействия объектов во времени. При этом диаграмма последовательности имеет как бы два измерения. Одно – слева направо в виде вертикальных линий, каждая из которых изображает линию жизни отдельного объекта, участвующего во взаимодейст- вии. Второе измерение диаграммы последовательности – вертикальная временная ось, направленная сверху вниз. Каждый объект графически изображается в форме прямоугольника и располагается в верхней части своей линии жизни (рисунок 24.12). Внутри прямоугольника записываются собственное имя объекта со строчной буквы и имя класса, разделенные двоеточием. При этом вся запись подчеркивается, что 76 является признаком объекта, который, как указывалось ранее, представляет собой экземпляр класса. Крайним слева на диаграмме изображается объект – инициатор моделируемого процесса взаимодействия (рисунок 24.12 а). Правее – другой объект, который непосредственно взаимодействует с первым. Таким образом, порядок расположения объектов на диаграмме последовательности определяется исключительно соображениями удобства визуализации их взаимодействия друг с другом. Рисунок 24.12 – Эементы диаграммы последовательности Начальному моменту времени соответствует самая верхняя часть диаграммы. При этом процесс взаимодействия объектов реализуется посредством сообщений, которые посылаются одними объектами другим. Сообщения изображаются в виде горизонтальных стрелок с именем сообщения и образуют определенный порядок относительно времени своей инициализации. Другими словами, сообщения, расположенные на диаграмме последовательности выше, передаются раньше тех, которые расположены ниже. При этом масштаб на оси времени не указывается, поскольку диаграмма последовательности моделирует лишь временную упорядоченность взаимодействий типа «раньше-позже». 77 Линия жизни объекта – вертикальная линия на диаграмме последова- тельности, которая представляет существование объекта в течение определен- ного периода времени. Линия жизни объекта изображается пунктирной вертикальной линией, ассоциированной с единственным объектом на диаграмме последовательности. Линия жизни служит для обозначения периода времени, в течение которого объект существует в системе и, следовательно, может потенциально участвовать во всех ее взаимодействиях. Если объект существует в системе постоянно, то и его линия жизни должна продолжаться по всей рабочей области диаграммы последовательности от самой верхней ее части до самой нижней. |