Файл: Применение объектно-ориентированного подхода при проектировании информационной системы (Обзор и анализ основных принципов и особенностей объектно-ориентированного подхода).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 13.03.2024

Просмотров: 19

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

В нотации UML поддерживаются девять видов диаграмм:

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

2.1. Диаграммы прецедентов

Актер (actor) объявляет прецедент. Прецедент (use case) описывает последовательность взаимодействий между actor и системой. На диаграмме прецедентов Actor отображается в виде силуэта человека, система — в виде прямоугольника, а внутри этого прямоугольника эллипс — это прецедент. Actor связывается с прецедентами с помощью коммуникационных ассоциаций. Эти ассоциации могут иметь отношения extend (расширяет) и include (включает). Пример данной диаграммы представлен на рисунке 1.

Рисунок 1. Диаграммы прецедентов в нотации UML.

На рисунке 2 прямоугольниками показано как в UML изображаются классы и объекты. В прямоугольнике класса всегда вноситься имя этого класса. Дополнительно указываются атрибуты (параметры) и операции данного класса. Если присутствуют все три блока, то верхней части прямоугольника вписывают имя класса, в среднюю — атрибуты, а в нижнюю — операции. Чтобы отличить класс от объекта (экземпляра класса) его имя подчеркивается. Например объект может обозначаться как оbject, anotherObject:Class или :Class. Классы и объекты повсеместно встречаются в различных диаграммах UML

Рисунок 2. Объекты и классы в UML.

2.2. Диаграммы классов

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

Ассоциация, данная связь (бинарная ассоциация) между двух классов изображается в виде линий, соединяющей их прямоугольники. У нее имеется имя, и стрелка, объясняющая в каком направлении следует прочитать имя. На каждом конце ассоциативной связи отображается кратность — это число обозначающее, сколько экземпляров класса 'A' связано с одним экземпляром класса 'Б'. В дополнении, на каждом конце связи может присутствовать стрелка, указывающая вектор навигации вдоль текущей ассоциации. Возможны следующие кратности:


  • 1 - ровно один,
  • 0..1 - присутствие экземпляра класса необязательно,
  • * - нуль или более,
  • 1..* - один или более,
  • m..n - точное задание числа экземпляров классов;

Рисунок 3. Нотация UML для связей на диаграмме классов

Иерархия агрегирования и композиции, это отношения вида «часть-целое». Здесь закрашенным ромбом отображается отношение композиции, которая накладывает более сильные ограничения на экземпляры классов, чем отношение агрегирования, которые изображаются не закрашенным ромбом. Ромб одной из вершин примыкает к прямоугольнику класса, который в свою очередь является частью отношения вида «часть-целое».

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

Видимость означает, доступен ли экземпляр класса вне самого класса. Пример отображен на рисунке 4. Изображение видимости на диаграмме является необязательным. Символом «+» (плюс), отображается открытая видимость, и она означает, что элемент виден извне класса. Символом «-» отмечается закрытая видимость, она свидетельствует, что элемент скрыт от других классов, и виден только внутри которого он был определен. Символ «#», говорит о том, что используется защищенная видимость, и значит, что элемент виден внутри класса, и во всех подклассах этого класса.

Рисунок 4. Обозначение видимости на диаграмме классов

2.3. Диаграммы взаимодействия

В ULM существуют следующие виды диаграмм взаимодействия: диаграммы кооперации (collaboration diagram) и диаграммы последовательности (sequence diagram). Они эквивалентны семантически. Далее представлены главные свойства данных диаграмм.

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


Рисунок 5. Диаграмма кооперации в нотации UML

Существует второй вариант, как показать взаимодействие объектов – это использовать диаграмму последовательности (рисунок 6). Тут мы видим более точное и наглядное представление способа обмена объектов сообщениями. Диаграмма последовательности является двумерной. Вдоль горизонтальной оси мы видим объекты, которые принимают участие в процессе, по вертикальное же оси показано время. Линия, которая проходит от прямоугольника каждого объекта в направлении вниз, в виде пунктира – это так называемая линия жизни. Активизация – это промежуток времени, когда происходит выполнение операции. Во время данного периода линия жизни показывается двойной сплошной линией. В левом верхнем углу в диаграмме чаще всего показывается актер. Пересылка сообщений показана в виде помеченных горизонтальных линий. Важными являются только тот, кто отправляет и тот, кто получает сообщения. Каждое сообщение отсылается объектом-отправителем и получается объектом-получателем. В зависимости от того, вверху или внизу по шкале происходит обмен, время увеличивается или убывает. По вертикали расстояние не важно при обмене сообщениями.

Рисунок 6. Диаграмма последовательности в нотации UML

2.4. Диаграммы состояний

В UML диаграмма состояния называется диаграмма перехода состояний. В ней данные состояния представляются прямоугольниками со скругленными углами, а переходы — соединяющими дугами (рисунок 7). Дуга, исходящая из маленького закрашенного кружка, обозначает начальное состояние. Закрашенный кружок внутри не закрашенного показывает конечное состояние, но оно может быть не обязательным. Данную диаграмму можно подвергнуть иерархической декомпозиции, и в этом случае надсостояния разложатся на подсостояния.

Рисунок 7. Диаграмма состояний. Надсостояние с последовательными подсостояниями.

Над дугой, показывающей переход, изображают условие перехода в виде «Событие [условие] / Действие». Событие влечет за собой переход в новое состояние. Если существует необязательное булевое условие, то переход будет осуществлен, только если оно истинно. В конце перехода может быть выполнено какое-либо действие. Вместе со состоянием ассоциируются:


  • событие при входе в состояние,
  • действие, выполняемое во время нахождения внутри состояния,
  • событие при выходе из состояния;

На рисунке 7 изображено подсостоянние А, состоящих из двух последовательных подсостояний - А1 и А2. В данном случае диаграмма в определенный момент времени сможет находиться только в одном уникальном состоянии, то есть сначала будет выполнен вхож в подсостояние А1, а затем - в подсостояние А2. На рисунке 8 изображено надсостояние В, состоящих из двух параллельных подсостояний - ВС и BD. Здесь объект, описываемый диаграммой состояний, одновременно находится в каждом из подсостояний ВС и BD. Дальше оба параллельных подсостояний раскладываются на последовательные. В итоге, вход в надсостояние В сопровождается одновременным входом в подсостояния В1 и ВЗ.

Рисунок 8. Диаграмма состояний: надсостояние с параллельными подсостояниями

2.5. Пакеты

В нотации UML пакетом является группа элементов модели, которые используются в изображении системы или подсистемы. На рисунке 9 такая группа показана в виде большого прямоугольника, над которым находится прямоугольник поменьше — это так называется пиктограмма капки. Пакеты могут содержать классы, объекты, прецеденты. Они могут быть вложенными, также между ними может существовать отношения зависимости и обобщения или специализации.

Рисунок 9. Нотация UML для пакетов

2.6. Диаграммы параллельной кооперации

В нотации UML обычно объект либо задача показываются в форме прямоугольника с толстой границей. Активный объект обладает своим собственным потоком для управления и его исполнение происходит всегда параллельно с прочими объектами. В этом его главное отличие от объекта пассивного, который не наделен своим собственным потоком управления. Активизация пассивного объекта происходит только при условии, что другой объект (либо пассивный, либо активный) вызовет его операцию. Мы условно дадим имя активному объекту – задача, а пассивному – объект. Задачи обычно показываются на диаграммах параллельной кооперации, где можно наглядно показать параллелизм в системе. На подобной диаграмме задача представлена в виде прямоугольника с толстой границей. Пассивный объект показывается с помощью прямоугольника с тонкой гранью. На рисунке 10 показана также нотация для множества объектов, получающихся во время порождения нескольких объектов одного класса.


Рисунок 10. Пример активных и пассивных объектов

Интерфейс, с помощью которого происходит обмен сообщениями на диаграмме параллельной кооперации может представляться либо слабо связанным (loosely coupled), либо сильно связанным (tightly coupled).[4] В виде сильно связанном – производитель отправляет сообщение потребителю для моментального подтверждения. Существует два вида сильно связанных обменов. Первый вид, когда имеет место сильно связанный обмен сообщениями с ответом или сильно связанный обмен сообщениями не имеющий ответа. Нотация UML для нескольких видов обмена сообщениями представлена на рисунке 11.

Рисунок 11. Нотация UML для сообщений

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

Рисунок 12. Нотация UML для параллельной диаграммы кооперации

А на рисунке 13 мы видим узлы двух разных видов. Первый – банкомат, в этом случае каждый подобный клиент использует только один узел. Он подключен к банковскому серверу. Тот в сою очередь находится также в одном узле. В кубе, где мы видим узел, могут быть также представлены объекты, которые находятся в данном узле. Второй вид – вид, в котором, несколько клиентов и серверов имеют связь по локальной сети, а данная сеть так же представлена в виде узла. Данная нотация применима в таких случаях, когда к сети подключены более двух узлов-компьютеров.

Рисунок 13. Нотация UML для диаграммы развертывания

Здесь мы видим описание нотации UML, а также главные характеристики диаграмм. На диаграмме прецедентов показаны актеры и прецеденты использования. На диаграмме классов показаны сами классы, а также отношения, складывающиеся между ними. Диаграмма состояний представляет возможность построения модели класса, прибегая к помощи конечного автомата. Мы имеем два вида диаграмм взаимодействия. Первый – диаграммы кооперации, второй вид – диаграммы последовательности. На данных диаграммах можно увидеть динамику обмена сообщениями, которая происходит между объектами. Диаграммы развертывания показана физическая конфигурация системы. Они очень полезны, когда необходимо смоделировать распределенные приложения. На диаграммах параллельной кооперации показано описание архитектуры распределенных приложений, а также архитектуры задач.