Skip to content

ООП 05. Концепции информационного моделирования. Понятие атрибута. Типы атрибутов. Правила атрибутов. Понятие связи. Типы связей. Формализация связей. Композиция связей. Подтипы и супертипы. Диаграмма сущность связь.

Dmitriy Pisarenko edited this page Jun 15, 2023 · 3 revisions

С чего начинать разработку проекта:

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

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

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

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

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

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

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

Идентификатор – то, что чётко определяет конкретный объект. Может состоять из одного или нескольких атрибутов.

Изменение атрибута не приводит к изменению самого объекта – объект просто меняет «имя», но остаётся тем же самым.

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

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

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

  1. Один объект класса имеет одно единственное значение для каждого атрибута в любой момент времени. Значения всех атрибутов должны быть определены.
  2. Атрибут должен быть простым (не должен содержать никакой внутренней структуры). Сложный атрибут ⇒ новая сущность.
  3. Когда объект имеет составной идентификатор, каждый атрибут являющийся частью идентификатора, представляет характеристику всего объекта, а не его частей.
  4. Каждый атрибут, не являющийся указательным (частью идентификатора), должен характеризовать именно тот объект, который указан идентификатором, а не что-то другое.

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

Каждый атрибут необходимо описать.

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

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

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

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

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

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

image

Типы связей:

  • По множественности:
    • Один к одному <---------> (Муж - жена)
    • Один ко многим <--------->> (Преподаватель - студенты)
    • Многие ко многим <<--------->> (Студенты - учебные курсы)
  • По условности:
    • Условные (один может не участвовать)
    • Безусловные (оба участвуют)
    • Биусловные (оба могут не участвовать) Если со стороны объекта связь условная, то у стрелки с его стороны ставится У.(не у всех преподавателей могут быть студенты, ставим У у студента)

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

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

image-2

Когда мы должны использовать ассоциативный объект:

  1. Если связь имеет динамическое поведение
  2. Если жизненные циклы объектов не совпадают

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

image-3

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

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

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

В объектно-ориентированном анализе суперкласс - всегда абстрактное понятие. Мы не рассматриваем возможность создания объектов суперкласса.

image-4

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

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

На диаграмме сущность-связь сущности располагаются в прямоугольнике.

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

Выделяем имя сущности (желательно существительное).

Для имени указываем ключевой литерал.

Указываем атрибуты:

  • Привилегированный указывающий атрибут обозначаем “*”
  • Все остальные атрибуты - просто перечисляем с “-”.

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

Остальные правила и термины приведены выше.

Clone this wiki locally