exam11 2 - stankin/design-part-1 GitHub Wiki

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

Реферат к лекции 11. Информационные системы как системы массового обслуживания.

Выполнил: Чешков Леонид, группа ИДБ-18-08

Проверила: Петруша Анна, группа ИДБ-18-08


Объектно-ориентированный подход. Общий смысл и определения.

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

Для начала нужно выделить такое определение как "класс". Класс - множество сущностей, которые объединены общими свойствами и т.д. Например класс "студент" включает в себя всех студентов, а вот уже каждый отдельный студент будет являться "объектом". Итак объект - отдельный элемент класса, определенная сущность. Объект - конкретное представление абстракции (класса). Какими бы свойствами не обладал объект он будет являться объектом класса. ❌ Всегда ли объекты входят в класс? См. семинар 2

Далее перейдем к методам, использующимся в данном подходе. Для упрощения работы пользователя используется инкапсуляция. Инкапсуляция это такое свойство, которое позволяет собрать данные и методы (методы работы с этими данными) в один класс и скрыть их от пользователя. Это позволяет показывать пользователю только определенные детали интерфейса. Для создания более сложных классов используется наследование. При наследовании класс берет части других классов. Существует два типа наследования: одиночное и множественное. Одиночное наследование - классы наследуют свойства только одного родительского класса. При множественном наследовании классы могут использовать свойства нескольких других классов. Этот способ более сложный и опасный из-за возможности возникновения ошибок. Для объединения объектов по точным свойствам используется типизация. Данный способ используется для выявления ошибок и вообще проверок и согласования на ранних стадиях.

Причем здесь методы, заимствованные из программирования? Что такое инкапсуляция на примере живого студента, к примеру?

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

Теперь рассмотрим непосредственно действующее лицо и UML диаграммы. Действующее лицо (Actor) - обычно находится вне системы и воздействует на объекты, но сам не подвергается воздействию. UML диаграммы - унифицированный язык моделирования для создание модели, описывающей объект. Рассмотрим несколько UML диаграмм с действующим лицом: -Диаграмма прецедентов (Use-case diagram); -Диаграмма активностей (Activity diagram); -Диаграмма последовательности (Sequence diagram); -Диаграмма развёртывания (Deployment diagram);

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

Actor — одна или множество логически связанных ролей, исполняемых при взаимодействии с сущностями (система, подсистема или класс). Участником может быть человек, роль человека в системе или другая система, подсистема или класс, которые представляют нечто вне сущности. Прецедент — показывает "что" именно выполняется. Actor может взаимодействовать сразу с несколькими системами/подсистемами и т.д., поэтому и его ролей может быть множество. В широком смысле ACtor скорее класс, т.к. это набор ролей, но непосредственно его роль может быть объектом.

Почему действующее лицо это *множество" ролей? Actor это вообще класс или объект?

Диаграмма последовательности

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

Диаграмма развёртывания

Диаграмма развертывания отображает графическое представление инфраструктуры, на которую будет развернуто приложение: топологию системы и распределение компонентов по ее узлам, а также соединения — маршруты передачи данных между узлами.

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

Использованные ресурсы:

https://evergreens.com.ua/ru/articles/uml-diagrams.html

https://okoff.github.io/oop/Лекции/2020-1/L1_11_20201126.pdf