Лекция 5 Модель классов предметной области (1)

Содержание

Слайд 2

Полюса ассоциации

Концепция полюса ассоциации – одна из важнейших в UML. Полюс ассоциации

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

Слайд 3

Имена полюсов

Имена полюсов ассоциаций обязательны для установления ассоциации между двумя объектами одного

Имена полюсов Имена полюсов ассоциаций обязательны для установления ассоциации между двумя объектами
и того же класса.
Имена полюсов позволяют унифицировать несколько ссылок на один и тот же класс. При построении диаграмм классов следует корректно использовать имена полюсов ассоциаций и не выводить отдельный класс для каждой ссылки.

Слайд 4

Имена полюсов

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

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

Слайд 5

Упорядочение

Достаточно часто объекты у полюса не имеют никакого выраженного порядка. В этом

Упорядочение Достаточно часто объекты у полюса не имеют никакого выраженного порядка. В
случае их можно рассматривать как множество.
Упорядочение является внутренним свойством ассоциации. Упорядоченность множества объектов можно указать при помощи слова {ordered}, которое ставиться около соответствующего полюса ассоциации.

Слайд 6

Упорядочение

Упорядочение

Слайд 7

Мультимножества и последовательности

Бинарная ассоциация обычно позволяет создать между парой объектов не более

Мультимножества и последовательности Бинарная ассоциация обычно позволяет создать между парой объектов не
одной связи. Однако указав около полюса ассоциации слова {bag} или {sequence}, вы можете разрешить создание множества связей между двумя объектами.
Мультимножество (bag) – это совокупность элементов в которой допускается наличие дубликатов.
Последовательность (sequence) – это упорядоченная совокупность элементов, в которой также допускается наличие дубликатов. Последовательность это упорядоченное мультимножество, тогда как упорядоченность может быть применено к обычному множеству.

Слайд 8

Мультимножества и последовательности

Мультимножества и последовательности

Слайд 9

Конструирование модели классов

Конструирование модели классов предметной области выполняется в следующей последовательности:
Выявить классы
Подготовить

Конструирование модели классов Конструирование модели классов предметной области выполняется в следующей последовательности:
словарь данных
Выявить ассоциации
Выявить атрибуты объектов и связей
Организовать и упростить классы при помощи наследования
Проверить наличие маршрутов для наиболее вероятных запросов
Перейти к следующей итерации и уточнить модель
Пересмотреть уровень абстрагирования
Сгруппировать классы в пакеты.

Слайд 10

Выявление классов

К объектам относятся физические сущности, такие как дома, люди, машины, а

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

Слайд 11

Выявление классов

Идея состоит в том, чтобы отразить в модели классов понятия.
Постарайтесь выбрать

Выявление классов Идея состоит в том, чтобы отразить в модели классов понятия.
конкретные классы таким образом, чтобы избежать подсознательного подавления деталей в попытке подогнать реальность под предлагаемую структуру.

Слайд 12

Пример с банкоматом

В результате выделения понятий из постановки задачи о банкомате из

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

Слайд 13

Удаление лишних классов

Теперь нужно отбросить ненужные и некорректные классы, используя следующие критерии:
Избыточные

Удаление лишних классов Теперь нужно отбросить ненужные и некорректные классы, используя следующие
классы. Если два класса выражают одно и то же понятие, нужно оставить тот, название которого лучше всего сущность понятия.
Несущественные классы. Если класс имеет весьма слабое отношение к задаче.
Нечеткие классы. Класс должен быть четко определен. Некоторые понятия могут иметь нечеткие границы или слишком широкую область охвата.
Атрибуты. Названия, характеризующие главным образом индивидуальные объекты, следует сделать атрибутами.
Операции. Если название описывает операцию, которая применяется к объектам и она не рассматривается сама по себе, его следует исключить из списка классов.
Роли. Название класса должно отражать его внутреннюю природу, а не роль, которую он играет в ассоциации.
Конструкции относящиеся к реализации. Аналитическая модель не должна содержать конструкций, не принадлежащих к реальному миру.
Производные классы. Как правило, классы которые могут быть выведены из других классов, не следует включать в модель.

Слайд 14

Удаление лишних классов

Удаление лишних классов

Слайд 15

Словарь данных

Сами по себе слова допускают слишком много интерпретаций, поэтому для всех

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

Слайд 16

Пример

Пример

Слайд 17

Выявление ассоциаций

Далее вы должны Выявить ассоциации между классами.
Ассоциации часто соответствуют глаголам состояния

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

Слайд 18

Пример

Пример

Слайд 19

Удаление лишних ассоциаций

Теперь необходимо отбросить ненужные или некорректные ассоциации:
Ассоциации между классами, которые

Удаление лишних ассоциаций Теперь необходимо отбросить ненужные или некорректные ассоциации: Ассоциации между
были удалены на предыдущих этапах.
Несущественные, или относящиеся к реализации ассоциации.
Действия. Ассоциация должна описывать структурное свойство области приложения, а не кратковременное событие.
Тернарные ассоциаций. Большинство n-арных ассоциаций можно выразить через бинарные.
Производные ассоциации. Отбросьте те ассоциации, которые могут быть выражены через другие ассоциации. Выбрасывайте и те ассоциации, выражаемые как ограничения на атрибуты.

Слайд 20

Семантика ассоциаций

Неправильно названные ассоциации. Названия важны для понимания модели в целом, а

Семантика ассоциаций Неправильно названные ассоциации. Названия важны для понимания модели в целом,
потому выбирать их следует очень осторожно.
Названия полюсов ассоциаций. Названия полюсов ассоциаций нужно указывать везде где они имеют смысл.
Квалифицированные ассоциации. Обычно название идентифицирует объект в рамках некоторого контекста. Большинство названий не является уникальными в масштабах всей системы. Квалификатор позволяет отличать друг от друга объекты, находящиеся у полюса ассоциации с кратностью «много».
Кратность. Это параметр ассоциаций указывать нужно, но не старайтесь определить его точно на первом этапе моделирования. Кратность часто изменяется в процессе анализа.
Недостающие ассоциации. Добавьте все недостающие ассоциации, которые вам удастся обнаружить.
Агрегация. Важна для некоторых видов приложений, в частности для описания деталей механизмов и спецификаций материалов. Не тратьте слишком много времени на определение типа ассоциации. Выберете то, что сразу вам покажется правильным и двигайтесь дальше.

Слайд 21

Пример

Пример

Слайд 22

Выявление атрибутов

Атрибуты обычно присутствуют в описании задачи в виде существительных, участвующих в

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

Слайд 23

Удаление лишних атрибутов

Объект. Если важной чертой элемента является независимое существование, то этот

Удаление лишних атрибутов Объект. Если важной чертой элемента является независимое существование, то
элемент – объект.
Квалификаторы. Если значение атрибута зависит от конкретного контекста, то его можно переформулировать в виде квалификатора.
Имена. Имена лучше моделировать как квалификаторы, а не как атрибуты.
Идентификаторы. Не следует включать в модель атрибут, единственным назначением которого является идентификация.
Атрибуты ассоциаций. Если существование значения атрибута требует существование связи, соответствующее свойство является атрибутом ассоциации, а не одного из классов, которые он связывает.
Имя файла: Лекция-5-Модель-классов-предметной-области-(1).pptx
Количество просмотров: 26
Количество скачиваний: 0