Модель классов
Материал из Management Framework
Содержание |
Назначение
Модель классов - статическая структурная модель, описывающая структуру системы с точки зрения классов системы. Классы моделируются через описания их структуры (атрибутов, методов и зависимостей между ними).
Модель класса
Связи и зависимости
Взаимосвязи
Взаимосвязь — это особый тип логических отношений между сущностями, показанных на диаграммах классов и диаграммах объектов. В UML представлены следующие виды отношений:
- Ассоциации - показывает, что объекты одной сущности (класса) связаны с объектами другой сущности. Существует пять различных типов ассоциации. Наиболее же распространёнными являются двунаправленная и однонаправленная. Например, классы рейс и самолёт связаны двунаправленной ассоциацией, а классы человек и кофейный автомат связаны однонаправленной. Двойные ассоциации (с двумя концами) представляются линией, соединяющей два классовых блока. Ассоциации в большей степени имеют более двух концов и представляются линиями, один конец которых идет к классовому блоку, а другой к общему ромбику. В представлении однонаправленной ассоциации добавляется стрелка, указывающая на направление ассоциации. Ассоциации могут быть именованными, и тогда на концах представляющей её линии будут подписаны роли, принадлежности, индикаторы, мультипликаторы, видимости или другие свойства.
- Агрегация - это разновидность ассоциации, при отношении между целым и его частями. Как тип ассоциации, агрегация может быть именованной. Агрегация не может включать сразу несколько классов. Агрегация встречается, когда один класс является коллекцией или контейнером других. Причём по умолчанию, агрегацией называют агрегацию по ссылке, т.е. когда время существования содержащихся классов не зависит от времени существования содержащего их класса. Если контейнер будет уничтожен, то его содержимое — нет.
- Композиция — более строгий вариант агрегации. Известна так же как агрегация по значению. Композиция имеет жёсткую зависимость времени существования экземпляров класса контейнера и экземпляров содержащихся классов. Если контейнер будет уничтожен, то всё его содержимое будет также уничтожено. Целое композиции должно иметь мультипликатор 0..1 или 1, что показывает, что часть является частью только одного целого. В агрегации же может быть любой мультипликатор. Приведём наглядный пример. Двигатель является частью машины, следовательно здесь подходит композиция. В то же время, когда они представлены в базе данных, данная модель двигателя может быть у разных моделей машин, поэтому следует использовать агрегацию.
- Обобщение (наследование) - показывает, что один из двух связанных классов (подтип) является более частной формой другого (надтипа), который называется обобщением первого. На практике это означает что любой экземпляр подтипа является также экземпляром надтипа. Например: животные — супертип млекопитающих, которые в свою очередь супертип приматов и так далее. Эта взаимосвязь легче всего описывается фразой «А — это Б» (приматы — это млекопитающие, млекопитающие — это животные).
- Реализация — отношение между двумя элементами модели, в котором один элемент (клиент) реализует поведение, заданное другим (поставщиком).
- Зависимость - это отношение использования, при котором изменение в спецификации одного влечёт за собой изменение другого, причем обратное не обязательно.Существует несколько именованных вариантов. Зависимость может быть между экземплярами, классами или экземпляром и классом.
Визуализация
Модель классов визуализируется с помощью диаграммы классов. Существуют разные точки зрения на построение диаграмм классов в зависимости от целей их применения:
- концептуальная точка зрения — диаграмма классов описывает модель предметной области, в ней присутствуют только классы прикладных объектов;
- точка зрения спецификации — диаграмма классов применяется при проектировании информационных систем;
- точка зрения реализации — диаграмма классов содержит классы, используемые непосредственно в программном коде (при использовании объектно-ориентированных языков программирования).
Смотри также
Статья подготовлена на основе материала ru.wikipedia.org - Диаграмма классов
