-
Notifications
You must be signed in to change notification settings - Fork 7
exam12 5
☕ Проектирование сложных взаимосвязей данных с использованием диаграмм объектов (UML Object Diagram)
🍤Выполнила: Чуйко В.М. ИДБ-19-05
💯Проверил: Белобородов Д.М. ИДБ-19-05
Диаграмма объектов (Object Diagram) в языке моделирования UML предназначена для демонстрации совокупности моделируемых объектов и связей между ними в фиксированный момент времени. Диаграмма объектов описывает конкретные экземпляры объектов и напрямую соотносится с диаграммой классов, которая даёт общее представление о конфигурации системы. Диаграммы объектов более конкретны, чем диаграммы классов.
В унифицированном языке моделирования (UML) объектная диаграмма фокусируется на определенном наборе объектов и атрибутов, а также на связях между этими экземплярами. Взаимосвязанный набор диаграмм объектов дает представление о том, как ожидается, что произвольный вид системы будет развиваться с течением времени.
Каждый объект и ссылка на диаграмме объектов представлены спецификацией экземпляра. Это может показать классификатор объекта (например, абстрактный или конкретный класс) и имя экземпляра, а также атрибуты и другие структурные особенности с использованием слотов. Каждый слот соответствует одному атрибуту или функции и может включать значение для этого объекта.
Имя в спецификации экземпляра необязательно содержит имя экземпляра, разделитель ':' и необязательно одно или несколько имен классификаторов, разделенных запятыми. Содержимое слотов, если таковые имеются, указано под названиями в отдельном разделе атрибутов. Ссылка отображается сплошной линией и представляет собой экземпляр ассоциации.
При использовании UML, рисуются диаграммы объектов с использованием какого-либо другого типа диаграммы, например, классов. Экземпляр объекта может называться спецификацией экземпляра или просто экземпляром. Связь между экземплярами обычно называется связующим звеном. Другие объекты UML, такие как символ агрегации или композиции (ромб), также могут отображаться на диаграмме объектов.
Диаграммы объектов являются производными от диаграмм классов, поэтому диаграммы объектов зависят от диаграмм классов. Также они представляют собой экземпляр диаграммы классов. Диаграммы объектов также представляют статический вид системы, но этот статический вид представляет собой моментальный «снимок» системы в определенный момент.
Диаграммы объектов используются для отображения набора объектов и их взаимосвязей в виде экземпляра.
Цель диаграммы должна быть четко понята, чтобы реализовать ее практически. Назначение диаграмм объектов аналогично назначениям диаграмм классов. Разница в том, что диаграмма классов представляет собой абстрактную модель, состоящую из классов и их взаимосвязей, а объектная диаграмма представляет экземпляр в конкретный момент. Это означает, что объектная диаграмма ближе к фактическому поведению системы.
Цель диаграмм объектов состоит в том, чтобы захватить статический вид системы в определенный момент.
Назначение объектной диаграммы:
- Прямое и обратное проектирование.
- Объектные отношения системы
- Статический вид взаимодействия.
- Понимание поведения объектов и их взаимосвязей с практической точки зрения.
Объектная диаграмма – это экземпляр диаграммы классов. Это подразумевает, что объектная диаграмма состоит из экземпляров объектов, используемых в диаграмме классов.
Таким образом, обе диаграммы состоят из одних и тех же базовых элементов, но в разной форме. В диаграмме классов элементы представлены в абстрактной форме для представления схемы, а в диаграмме объектов элементы представлены в конкретной форме для представления объекта реального мира. Чтобы охватить конкретную систему, количество диаграмм классов ограничено. Однако, если рассматривать диаграммы объектов, то может быть неограниченное количество экземпляров, которые уникальны по своей природе. Рассматриваются только те экземпляры, которые оказывают влияние на систему.
Из приведенного выше обсуждения ясно, что диаграмма одного объекта не может охватить все необходимые экземпляры или, скорее, не может указать все объекты системы. Следовательно, решение таково:
- Анализ системы, выявление экземпляров с самыми важными данными и ассоциациями.
- Рассмотрение только тех экземпляров, которые будут охватывать функциональность.
- Оптимизация количества экземпляров.
Прежде чем приступить к построению диаграммы, необходимо решить следующие вопросы:
- Объектная диаграмма должна иметь осмысленное название, указывающее на ее назначение.
- Необходимо определить наиболее важные элементы.
- Связь между объектами должна быть прояснена.
- Значения различных элементов должны быть зафиксированы для включения в диаграмму объектов.
👉Пример 1. Следующая диаграмма представляет собой экземпляр системы в конкретный момент покупки. Она имеет следующие объекты:
- Покупатель.
- Заказ.
- Специальный заказ.
- Обычный порядок.
Объект customer (C) связан с тремя объектами order (O1, O2 и O3). Эти объекты порядка связаны с объектами специального порядка и обычного порядка (S1, S2 и N1). У клиента есть следующие три заказа с разными номерами (12, 32 и 40) на рассматриваемое конкретное время. Клиент может увеличить количество заказов в будущем, и в этом случае диаграмма объектов будет отражать это. Если наблюдаются объекты order, special order и normal order, то вы обнаружите, что они имеют некоторые значения. Для заказов значения равны 12, 32 и 40, что подразумевает, что объекты имеют эти значения для определенного момента (здесь моментом считается конкретное время совершения покупки), когда экземпляр захвачен. То же самое верно для объектов специального заказа и обычного заказа, количество заказов которых равно 20, 30 и 60. Если учитывается другое время покупки, то эти значения изменятся соответствующим образом.
Следующая схема объекта была составлена с учетом пунктов, упомянутых выше.
👉Пример 2. Собственный пример, основанный на теме ВКР: Проектирование и создание средств информационной поддержки процессов жизненного цикла разработки национальных стандартов.
Диаграмма представляет собой экземпляр системы в конкретный момент создания национального стандарта. Она имеет следующие объекты:
- Разработчик.
- Федеральный орган.
- Технический комитет.
Объект Разработчик (Р) связан с двумя объектами: Федеральный орган (Ф) и Технический комитет (Т). Эти объекты порядка связаны с объектами Уведомления о разработке (У) и Внесения замечаний (В). У разработчика есть две потребности: чтобы его проект национального стандарта разместили на официальном сайте Росстандарта (получить уведомление (У)) и внесли замечания в проект (В).
Диаграмма последовательности моделирует взаимодействие объектов на основе временной последовательности. Она показывает, как одни объекты взаимодействуют с другими в конкретном прецеденте.
На рисунке ниже показан пример диаграммы последовательностей, основанный на теме ВКР: Проектирование и создание средств информационной поддержки процессов жизненного цикла разработки национальных стандартов.
Прецеденты полезны и для прямого, и для обратного проектирования. При прямом проектировании мы, по сути, осуществляем "перевод" с UML на некий язык программирования. И тестировать созданное приложение следует, основываясь именно на потоках событий, описываемых прецедентами. Обратное проектирование предполагает перевод с языка программирования на язык UML-диаграмм. Такими вещами приходится заниматься в силу ряда причин:
- С целью поиска ошибок и чтобы убедиться в адекватности дизайна.
- Когда отсутствует документация.
При разработке ВКР будет разработана сложная система проектирования.
Сложной можно назвать такую систему, которая не укладывается в картину "один объект в одном классе/объекте", это:
- циклические ссылки в классах/объектах на себя (образуют иерархии).
- произвольные наборы атрибутов объектов (образуют no-SQL базы данных или просто бардак).
- множественные наследования (любая структура ролевой модели доступа).
Для того, чтобы на основе существующего объекта создать слегка измененные, но похожие на него объекты необходимо создать прототип. Прототип — быстрая, черновая реализация будущего объекта. Далее будет разобран пример создания прототипов на языке JavaScript.
В JavaScript объекты имеют специальное скрытое свойство Prototype, которое либо равно null, либо ссылается на другой объект. Этот объект называется «прототип»:
Прототип дает много возможностей. Когда необходимо прочитать свойство из object, а оно отсутствует, JavaScript автоматически берет его из прототипа. В программировании такой механизм называется «прототипным наследованием». Многие интересные возможности языка и техники программирования основываются на нем.
В качестве примера учета родственных отношений будет рассмотрена задача учета населения.
В задачах, опирающихся на системы персонального учета, часто возникает потребность вычисления отношения родственных отношений. Например, это может потребоваться для формирования справки о совместно проживающих членах семьи, в которой присутствует графы «родственные отношения», а также множества других подобных документов.
Пример модели данных для представления родственных отношений приведена на рисунке.
👉Пример 1. Диаграммы объектов можно представить как моментальный снимок работающей системы в определенный момент. Рассмотрим пример движущегося поезда. Если сделать снимок движущегося поезда, получится его статическое изображение, имеющее следующие параметры:
- Состояние поезда на данный момент.
- Определенное количество пассажиров в вагоне, которое изменится, если снимок будет сделан в другое время.
Здесь мы можем представить, что движущегося бегущего поезда – это объект, имеющий вышеуказанные значения. И это верно для любой реальной простой или сложной системы.
👉Пример 2. При сдаче студентами ВКР (в Microsoft Word), на кафедре направления "Информационные системы и технологии" производится проверка работ на соответствие оформления требованиям кафедры. Для того, чтобы удобно и быстро следовать этим требованиям при выполнении работы, можно и НУЖНО следовать заранее подготовленным стилям, можно сказать, приписывать объекты классам. Работа не будет принята без соответствия, поэтому, чтобы не навести хаос, указывая стили конкретным объектам (абзацам, словам, спискам и буквам), необходимо следовать заранее подготовленным стилям.
В двух словах, можно сказать, что объектные диаграммы используются для:
- Создание прототипа системы.
- Обратного инжиниринга.
- Моделирования сложных структур данных.
- Понимания системы с практической точки зрения.