ооп 5. Концепции информационного моделирования. Понятие атрибута. Типы атрибутов. Правила атрибутов. Понятие связи. Типы связей. Формализация связей. Композиция связей. Подтипы и супертипы. Диаграмма сущность связь. - keykranz/oop_ex GitHub Wiki

Концепции информационного моделирования.

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

Любая характеристика, которая нас заинтересовала, абстрагируется как атрибут.

Концепции информационного моделирования:

Разработка прикладного домена начинается с информационного моделирования. Информационное моделирование включает в себя:

  • Выделение сущностей, с которыми мы работаем 
  • Описание и анализ сущностей. Выделение их характеристик.
  • Графическое представление сущностей.

Понятие атрибута. Типы атрибутов. Правила атрибутов.

Атрибуты - характеристики сущностей, переменные-члены объектов (данные). Каждая характеристика, которая является общей для всех экземпляров класса, выделяется как отдельный атрибут.

Типы атрибутов:

  • Описательные атрибуты. Какая-то характеристика, внутренне присущая каждому объекту.
  • Указывающие атрибуты. Которые используются как идентификатор, или как часть идентификатора. (студент - имя фамилия)
  • Вспомогательные атрибуты. Для формализации связи одного объекта с другими объектами. Для активных объектов будем выделять время жизни. Атрибут состояния.

Правила атрибутов:

  • Один объект класса имеет одно единственное значение для каждого атрибута в любой момент времени. Не может быть атрибутов, значения которых не определены в какой-то момент жизни объекта.
  • Атрибут не должен содержать никакой внутренней структуры.
  • Когда объект имеет составной идентификатор, каждый атрибут являющийся частью идентификатора, представляет характеристику всего объекта, а не его части.
  • Каждый атрибут не являющийся частью идентификатора, представляет собой характеристику объекта указанного идентификатором, а не характеристику другого атрибута.

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

Каждый атрибут необходимо описать. Из описания атрибута должно стать понятно, зачем мы выделили этот атрибут:

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

Понятие связи. Типы связей. Формализация связей. Композиция связей.

Связь – это абстракция отношений, которые возникают между объектами.

Задаём связь из перспективы каждого участвующего объекта.

Каждой связи присваивается уникальный идентификатор, который состоит из буквы и номера.

Типы связей по множественности:

  • Один к одному <--------->
  • Один ко многим <--------->>
  • Многие ко многим <<--------->>

Типы связей по условности:

  • Условные (один может не участвовать)
  • Безусловные (оба участвуют)
  • Биусловные (оба могут не участвовать) Если со стороны объекта связь условная, то у стрелочки с его стороны ставится У.

Формализация связей:

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

Условная, биусловная или связь имеющая динамическое поведение, формализуется с помощью ассоциативного объекта!

На информационной модели некоторые связи могут быть следствием другой связи. Такие связи мы обозначаем как композицию связей и не формализуем на диаграмме.

Что нужно для связи

  • Идентификатор связи
  • Формулировка связи со стороны каждого участвующего объекта связи
  • Вид связи (один к одному, один ко многим, многие ко многим)
  • Формализация связи (или добавлением вспомогательного атрибута, или добавлением ассоциативного объекта)
  • Формулировка основания связи (зачем нам нужна эта связь)

Подтипы и супертипы. Диаграмма сущность-связь.

Подтипы и супертипы

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

В объектно-ориентированном анализе суперкласс - всегда абстрактное понятие, мы не рассматриваем возможность создания объектов суперкласса. Связь суперкласса с подклассами обозначается номером, начинающемся со 100 (101, 102, 103...).

Диаграмма сущность-связь

На диаграмме сущность-связь сущности располагаются в прямоугольнике. Каждой сущности присваиваем и уникальный для домена номер. Выделяем имя сущности (желательно существительное). Для имени указываем ключевой литерал. Указываем атрибуты: Привилегированный указывающий атрибут обозначаем '*' Все остальные атрибуты - просто перечисляем.

Между сущностями графически указываем связи. Остальные правила и термины приведены выше.

⚠️ **GitHub.com Fallback** ⚠️