122.50K
Категория: ИнформатикаИнформатика

Диаграмма классов

1.

Вопрос №1
Диаграмма классов определяет типы объектов системы и
различного рода статические связи, которые существуют
между ними. Имеются два основных вида статических
связей:
• ассоциации (например, клиент может сделать заказ);
• подтипы (частный клиент является разновидностью
клиента).
На диаграммах классов изображаются также атрибуты
классов, операции классов и ограничения, которые
накладываются на связи между объектами.

2.

Вопрос №1
Построение диаграмм классов можно рассматривать в
следующих аспектах:
концептуальный аспект — диаграммы классов отображают
понятия изучаемой предметной области (моделируемой
организации). Концептуальная модель может иметь весьма
слабое отношение или вообще не иметь никакого отношения
к реализующему ее программному обеспечению, поэтому ее
можно рассматривать как не зависимую от средств
реализации.

3.

Вопрос №1
Построение диаграмм классов можно рассматривать в
следующих аспектах:
аспект спецификации — модель спускается на уровень ПО,
но рассматриваются только интерфейсы, а не программная
реализация классов (под интерфейсом здесь понимается
набор операций класса, видимых извне).

4.

Вопрос №1
Построение диаграмм классов можно рассматривать в
следующих аспектах:
аспект реализации — модель действительно определяет
реализацию классов ПО. Этот аспект наиболее важен для
программистов.
При построении диаграммы необходимо выбрать
единственный аспект. При чтении диаграммы следует
выяснить, в соответствии с каким аспектом она строилась.

5.

Вопрос №1
Подключен
ие к сети
1
Список имен
Список паролей
Список адресов
Проверить имя ()
Проверить
пароль ()
атрибут
ы
операц
ии
*
Пользовател
ь
Имя
Пароль
Если
Адрес ЭП
пароль
неверный,
Ассоциаци
Войти в сеть ()
то
я
ограничен
обобщени
ие
Множественнос
е
ть мнгозначная
Значени
е пароля
Имя
роли
Множественнос
ть
обязательная
класс
Гость
Опытный
пользователь
Имя
Пароль
Адрес ЭП
Имя
Пароль
Войти в сеть()
Передать файл
0…1
Сотрудник
Множественнос
ть
необязательная

6.

Вопрос №1
Построение диаграмм классов можно рассматривать в
следующих аспектах:
аспект реализации — модель действительно определяет
реализацию классов ПО. Этот аспект наиболее важен для
программистов.
При построении диаграммы необходимо выбрать
единственный аспект. При чтении диаграммы следует
выяснить, в соответствии с каким аспектом она строилась.

7.

Вопрос №1
Ассоциации представляют собой связи между экземплярами
классов.
С концептуальной точки зрения ассоциации представляют
собой концептуальные связи между классами.
Каждая ассоциация обладает двумя ролями; каждая роль
представляет собой направление ассоциации.
Роль может быть явно поименована с помощью метки.
Роль также обладает множественностью, которая показывает,
сколько объектов может участвовать в данной связи.

8.

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

9.

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

10.

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

11.

Вопрос №1
Обозначение атрибута может включать имя атрибута, тип и
значение, присваиваемое по умолчанию
<признак видимости> <имя>: <тип> = <значение по умолчанию>
Атрибуты всегда имеют единственное значение.

12.

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

13.

Вопрос №1
Полный синтаксис:
<признак-видимости> <имя> (<список-параметров>): <типвыражения-возвращающего-значение> {<строка-свойств>}
где признак-видимости может принимать одно из трех значений: "+"
(общий), "#" (защищенный) или "-" (секретный); имя представляет
собой символьную строку; список-параметров содержит
необязательные аргументы, синтаксис которых совпадает с
синтаксисом атрибутов; тип-выражения-возвращающего-значение
является необязательной спецификацией и зависит от конкретного
языка программирования; строка-свойств показывает значения
свойств, которые применяются к данной операции.

14.

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

15.

Вопрос №1
Обобщения
В рамках модели спецификации смысл обобщения
заключается в том, что интерфейс подтипа должен включать
все элементы интерфейса супертипа. Говорят, что интерфейс
подтипа согласован с интерфейсом супертипа.
Обобщение в аспекте реализации связано с понятием
наследования в языках программирования. Подкласс
наследует все методы и поля суперкласса и может
переопределять наследуемые методы.
English     Русский Правила